A letter of recommendation from Danish programming expert Peter Naur helped him win entry to the University of California, Berkeley. He paid the bills with a job at Berkeley's computer center, where he caught the attention of a faculty member named Butler Lampson. Lampson was one of the leaders of the U.S. Defense Advanced Research Projects Agency's Project Genie--an experiment in time-sharing computer systems, in which multiple users sitting at terminals could share a single computer's brain time. When the Project Genie creators started a company, called the Berkeley Computer Corporation (BCC), whose purpose was to build a machine that would commercialize their work, Lampson recruited Simonyi.
At BCC, Simonyi would debug the company's balky prototype through the night, working with system designer Chuck Thacker. One night, Simonyi showed up in a see-through black outfit--"a kind of a hippie thing from one of the shops on Telegraph Avenue," he says. Today, he can't remember exactly why--coming from a party, perhaps? The debugging went especially well that night, and the outfit became a good-luck charm--Simonyi's "debugging suit."
BCC went belly-up after only a few years, but Lampson, Thacker, and much of the BCC team migrated to Xerox PARC. Simonyi--then just "a random Hungarian undergraduate without a green card," as he says now--joined them in 1972, laboring at Xerox while simultaneously pursuing his Stanford doctorate. Bob Taylor, who oversaw PARC's Computer Science Lab during part of that legendary era, says Simonyi's creativity stood out even in the lab's famous crowd: "He just could imagine ways of expressing code and ideas that put him off the charts."
It was a heady time. The team of visionary engineers was creating a series of innovations that would shape the next quarter-century of the PC era: the graphical user interface, networking (Ethernet), the laser printer, object-oriented programming (Smalltalk), portable computing (the Dynabook), and more. These breakthroughs all converged on a prototypical personal computer called the Alto.
The Alto was an amazing invention, but it wasn't clear what you could do with it until Simonyi and his colleagues created its best-known application: a word processor called Bravo, whose on-screen display of type matched what the system would output to the new laser printer. Existing word processors had elaborate systems of codes for formatting text on the screen (anyone who used WordPerfect on a PC in the 1980s will remember its "embedded codes"); Bravo let you forget about the codes, directly manipulate the design of a document, and immediately witness the changes. A visiting Citibank executive looked at a demo and quoted a signature line of comedian Flip Wilson's sassy character Geraldine: "What you see is what you get!" The name (reduced to the acronym Wysiwyg and pronounced wizzywig ) stuck. Suddenly, Bravo had users: relatives and friends of PARC researchers began asking to use it to print school newsletters and format academic papers. Lampson's wife printed her thesis using the system, and when it was time for Simonyi to print his, he did the same.
Comments
rajuch on 02/07/2007 at 11:38 AM
1
How does it solve the software updates problem? What would happen, if they need to change some features six month from the installation? Can we put the bench back in the machine to refine the bench, or do we need to start over and pay for full new bench? Many online applications are being updated every other month.
If one needs to build a computer table or wooden cabinet, can he use that bench-making machine? Or does he need to build a new machine for each kind of products? I am not joking. You would agree, if you read the following.
We already invented such machines for building online-GUI-applications. Greatly appreciate your feedback, what you think about our online GUI application making machine. Please review brief overview to our application machine:
http://cbsdf.com/technologies/software-irony.htm
Each ‘Component Factory’ in the left side of the Figure#1 acts as a knob, to refine each part (i.e. a loosely coupled component/AC) in the application (shown right side). Please review the following WebPages, which show that this process builds perfect ‘application machine’ with simple to operate knobs to refine each part. Please review summary at the end to understand why it cost only a fraction to refine the application:
http://cbsdf.com/ps_blog/Minimum-couplings.htm
http://cbsdf.com/ps_blog/super-distribution.htm
P.S: Of course, one must use our highly-flexible online-GUI-API to build the online GUI components. You may see interactive GUI Components, which are built using SVG. We will be building the GUI Classes for XAML/Vista in the future.
http://cbsdf.com/technologies/demo-links/Demo-SVGS/misc-charts.html
More sample links at: http://cbsdf.com/technologies/demo-links/demo-links.htm
One may build his own custom GUI Classes, for example, to build multi-player online games or near real-time modeling of Air-traffic, as explained at:
http://cbsdf.com/Newbies/Flight-main.htm
http://cbsdf.com/misc_docs/online-apps-rock.htm
Best Regards,
Raju
sriramv.iyer on 02/13/2007 at 4:59 AM
1
But this article did rekindle my interest in DSLs. (I use python and not lisp, though)
rubs74 on 02/22/2007 at 5:27 PM
1
Model Driven Architecture also adds a new level of abstracction to software development and I guess that takes the base idea of Intentional Programming as well. There are already tools that work on production. Here there's a tool based on MDA that really allows you to think more about the bussiness logic and less about the complexities of building it, just take a look http://www.care-t.com/
JEfromCanada on 03/09/2007 at 3:10 PM
1
bushka on 03/14/2007 at 5:55 PM
1
oscarbhaskar on 06/13/2007 at 10:11 AM
1
The question now is how do we implement the concept? How do we capture the "Intention"?
I think we are about to see a new dimension in the way software is developed.
enterprise on 06/30/2007 at 2:45 PM
1
By Christmas.
We will make sure the writers of this excellent article know in good time.
In the meantime, if you want to be involved with the fun, get in touch on gedymail@gmail.com
GD
Corbier on 12/25/2007 at 2:02 PM
4
For a quick glance at what a language definition file might look like, check out:
www.ucalc.com/lisp.txt (Lisp)
www.ucalc.com/forth.txt (Forth)
The download includes more files like this, which you can load up into the generic interpreter, at which point it becomes an interpreter for the language you just loaded. (The supplied interpreter demonstrates just one possible kind of interface. You can create your own fancy interface to interpret such code).
uCalc LB is no longer in the idea stage. An actual fully working beta implementation can be downloaded.
I am the author of uCalc Language Builder (as well as uCalc Fast Math Parser), and I am looking for early adopters of the uCalc LB technology. An interactive tutorial that comes with the download can walk you trough the various concepts. Other forms of documentation are also included, as well as an interactive interpreter.
--
Daniel Corbier
www.ucalc.com