Wednesday, May 28, 2008

Meta Data

Stefan Cordova
------
Simonyi has been writing and developing code for Microsoft Office for over 20 years. Now he wants to reinvent the way code is written using what he calls intentional programming. Simonyi left Microsoft in 2002 to work on intentional programming. Microsoft had been making significant strides with the .NET framework and Simonyi’s intentional programming was not very practical, much more disruptive, and required a radical change from existing programming models. Programming started out with the basic binary code of 1s and 0s and since has made significant gains using abstractions to write the code. Each year code gets more advanced by using more and more abstractions. Simonyi’s wants to completely change this process by having end users be the programming developers instead of the programming developers themselves. Those people that are trained experts in the field understand those processes better and would be better able to come up with a system than the programmers writing the code.

Intentional software invokes two main lines of criticism. The first is how do you represent intent. The second is the law of leaky abstractions. Intentional programming can be understood by the simple metaphor of making a bench. The benchmaker arrives with odd looking parts and asks each people what parts they like. He would ask questions such as what is the most important feature, what’s the next most important feature, what materials do you like and so on. After each answer the bench maker would then upload the new bench onto a screen to see if it satisfied the users. If the image was not right they would backtrack and answer the questions differently. Once the users were satisfied the benchmaker pressed the make button and out came a bench that everyone was satisfied with. Substitute software for benchmaking and you will understand intentional programming. Now users are able to work with a familiar language to them and alter the appearance on the screen without having to master the underlying code. The computer transforms that image or process you created and write the code for you.

This article was very interesting although I could have gone without the long history of Simonyi’s life and instead just focused more on intentional programming. This technology is really amazing and I hope that Simonyi can actually develop it. Our systems could be so much better if the end users who actually use those programs could develop the processes. People who have watched this project closely say that Simonyi is on the right track and that gives me hope that this new technology will be developed sooner rather than later.

Sara Supple
------
Charles Simonyi is a man who has constantly set out to change and evolve the world of programming as we have known it. Born in Hungary, he started his work on a relic computer run on vacuum tubes. Arriving in the US to attend Berkeley, he joined forces with a professor working for a company that did eventually fail, but led to Simonyi working with the famous Xerox PARC labs, and later becoming one of the greatest programmers with Microsoft. Specifically, Simonyi has worked to simplify the coding procedures, ultimately allowing everyday users to code their own programs using what he calls intentional programming/software. The idea is that generic tools will allow users to interact with the coding behind their programs and make changes as they see fit. Instead of programmers handing off their coding work to ‘worker bees’ like his earlier thesis had asserted, the code would go into a generator, “a program that takes in a set of relatively high-level commands and spits out more-detailed working code” (Technology Review). With this effort, it was Simonyi’s hope that programmers could focus on the creative process of their work, rather then wasting brain space with the minute and unnecessary details that coding required.

Simonyi’s work has attracted some negative associations, however. Programmers don’t believe it is possible to capture computer users’ intentions, which would be like trying to understand every individual’s brains intentions. The second argument is that programmers don’t like to be distanced from their code- the programs usually have their own way of doing things, and their personal creativity suffers.

I really can understand the relevance of this article. Dealing with code right now in my MIS 271 class, I can completely understand Simonyi’s reasoning for wanting to make the coding process easier to the every-day user. However, I also understand the arguments against Simonyi’s efforts. While it would be a great invention, when something goes wrong with the program (and it will, eventually) someone is going to have to go into the program to figure out what happened- and that takes place in the code. I also feel that if Simonyi were a typical entrepreneur with limited cash flow and a deadline to meet, his intentional software would no longer be an option. While he is busy perfecting his software to meet the needs of companies he is working with now, software and computers will continue to evolve and leave him behind. Even though those who have researched his ideas understand the concepts and say he is on the right track, with no real deadline pushing him to get his product on the market I feel as if Simonyi’s work will remain today where it has been since its creation- not in the hands of consumers.

14 comments:

MIS171 Justin Blackburn said...

So one-sentence summary: Charles Simonyi is working on creating a new Intentional Software which will make software programming quicker but at the same time will add, yet another, layer of abstraction to programming making it more complex to understand.

The [code] names "looked like they were chosen by Superman's enemy from the 5th dimension, Mr. Mxyzptlk." -Hertzfeld.

Joaquin Chapar said...

The idea to note as far Intentional Programming goes is that is designed to be used for the managerial level at first. After IP has been able to gain life of its own then it will be able to be used in the programming level. Intentional Programming should be considered for use after it is known what the product is, for example the bench at the park, the people where knew they were looking for a bench to be made they only had to design how they wanted the bench to be. This goes back to the managerial concept or MIS, because in the discipline this job requires to have business, technology and systems know how and it is where IP can be used the most to begin with. Contrary to this IP and its development is being retarded by not being released to open source, otherwise it would have been already in much better development. There is not much to say about this because the creator of IP was a part of MS for some time and so an open kernel and code will most likely not be an option, because profit would decline or not be as good.

cvenezuela said...

After reading this article, I feel that Simonyi new technology is interesting, but I do agree with Sara's comment in her summary. About how Simonyi currently does not have the pressure of money and/or a deadline to meet while creating his new software. And by not having some type of pressure it's not getting out to consumers faster. While he continues to develop his software companies will continue to move forward with different innovations without him.

Fahad said...

If this new programming software works as described by Charles Simonyi, the number of programmers will sharply increase since this new technology "would enable programmers to express their intentions without sinking in the mire of so-called implementation details that always threatened to swallow them". And that's why many programmers don't like it because obviously nobody wants to have more competitors.

EUNMI said...

Meta is thinking beyond stereotype, or fixed idea. And Symonyi used this so well, and everytime when he got into trouble with programming, he used Meta to solve his problems, and it worked. Also, MS office is one of the products of Meta. And now, it's getting hard to be good programmer, and i strongly agree with this. Because so many techniques are developing and already developed. There fore, people should learn more and more. Not only this, the technologies which are already developed are regulating the next development.

kmcneely said...

Kim McNeely
This article talks about a type of programming that is being developed by Charles Simonyi. This new type of programming is described by intentional programming which involves the end users acting as the programming developers. The end users have a better idea of the systems that they need in order to complete their job rather than the trained programming developers trying to come up with something that they may know nothing about. This is done by having certain tools that allow the users to make changes to their programs without having to go through professional programmers and this makes it a lot easier for the user. I agree with Stefan in that this new type of programming is a good idea in that it allows the users to help create the program that they are going to be using.

Craig Sugiyama said...

Craig Sugiyama- The artcile talks about the idea of meta programming or software that acts more as an interpreter which can be modified to fit a specific users needs easier.

"The programmer wouldn't have to be summoned each time some new development in the world of international banking, or any other domain, required a new software feature. The customer wouldn't feel straitjacketed by a programming language. Everyone would be happy.=)"

JBFaerber said...

I found the concept of intentional programming hard to grasp. I do have two thoughts about this new way of programming,though.

First, I can see why today's programmers are skeptical about it, because it has the capability of completely redefining programming. Secondly, I agree with others that say Simonyi may get left behind with this new programming technique because he has unlimited time and money to waste on it. That is one of the misconceptions of innovation that needs to be avoided - "too much cash allows those running a new venture top follow a flawed strategy for too long."

Unknown said...

This article was somewhat interesting only because of the coding I'm learning in MIS 271. Its far more in depth than the average computer user would understand. The idea of making it simpler would be great. Software never seems to do what you want it to, even though you wrote the instructions for it. I really like the idea of trying to make it simpler for the people who use it, especially when it is in a certain feild that the programmer probly has no idea about.

B Adams said...

above all, i think were supposed to be looking at NEBIC and Diffusion of innovation.or at least recognize how this article pertains to the class as it goes far beyond computer coding. What are the real benefits if his innovation cant be matched with economic opportunity? i guess i just don't think there will be big welcome for change when it isn't out of necessity.

BrandoCurryer said...

I believe this to be the next generation of software technology. These softwares can continue to evolve until the user gets exactly what they want from it.

I wonder if the programing can be done on site, maybe on a web based platform. Answer a series of questions and the program spits out a result for you to download.

Sounds interesting

Robert Clausen said...

Robert Clausen

Charles Simonyi has been one of the most important people in creating the wysiwyg format which made using a computer easier so now everyone uses a computer. Now that he is creating Intentional Software to make programming easier, maybe everyone will be programming in the future.

Max425 said...

This new technology, just like the majority of the class said, will allow for a much faster software programming system. It seems like a very good idea but I also agree with Justin in wondering if this new technology will make it harder and more complex to understand. This is a good article with some very interesting ideas.

BryceLiaBraaten said...

The idea of adding another level of abstraction to programming seems like a good idea. While I haven't done much programming I have done enough to know that in order to be efficient at it you really need to know what your doing. Adding another level of abstraction seems to be moving programming to be more accessible to the general population. It seems easy to see why many programmers have a hard time supporting Simonyi's new theory of programming because it might put them out of a job.