|Eidola? (pronounced either like this or like that)|
Eidola is a representation-independent, object-oriented, visual programming language.
Eidola is an experiment which takes a wild new approach to the structure and representation of programming languages. Traditional programming languages are heavily tied to their representation as textual source code, which is unfortunate -- pure text is a very poor notation system for the concepts of a high-level language. An Eidola program, however, exists independent of any representation; its "fundamental" form is as a set of carefully defined mathematical abstractions, opening the possibility of having many different notations. Representations of the language thus exist for the benefit of the programmer instead of the compiler, and freed from the constraints of text files, we can tackle the question of how to notate a program well.
Be warned: Eidola is a very large project its very early phases. It is still mostly theory and vaporware. Because there are no full-fledged notation systems for Eidola yet, you will not find any substantive code examples. Have your imagination warmed up and ready to go -- you're going to need it!
Start by reading about the experiment. Then skim the FAQ, read some examples, and find out how far along the project is right now. If you're interested, read about how you can help out, and post your thoughts in one of the forums or contact Paul, who would love to hear from you. If you'd like to stay updated on the project's progress, sign up for the Eidola newsletter.
I'm giving a talk about Eidola over at Macalester next Tuesday, April 23, at 7:00 PM. It will be in Olin/Rice 300, located between the numerals "9" and "10" on this map. (Apr 19 2002)
Matthijs has written another prototype notation! There's just no stopping him! (Oct 3 2001)
The semantics now includes a good first draft of what goes on inside functions, which means that Eidola is on the verge of become a language in which one could actually write programs that run ... er, at least in a theoretical sense. There's also an experimental simplification to the tree structure, handling borrowing through a special element type instead of that wacky containment/ownership dichotomy. (Oct 3 2001)
Matthijs Hollemans has implemented a cool prototype of his notation idea. It's just a proof-of-concept implementation, but it's still super cool. If you have Java 1.2, try it out! (Sep 11 2001)
There are some new exhibits in the Notation Gallery, including some thoughts on Tufte and pictorial metaphors, a strong case for layered notations, and new thoughts in the existing source code exhibit. More new exhibits coming soon! (Sep 11 2001)
Sketches of algorithmic semantics are taking shape. That's the stuff on the insides of functions, meaning Eidola is taking another step toward being a language in which one could theoretically write programs. The sketches are, at this point, for mathematically inclined thrill-seekers only; they're available in LaTeX format. (Sep 6 2001)
Yes, it's the moment you've all been waiting for -- notation work has begun! The new Notation Gallery features some ideas about notation, visualization, user interfaces, and how they could all apply to Eidola. It's small now, but it will soon grow as you send in your ideas! (Jul 15 2001)
I've made a large number of small fixes based on Nick's review in the semantics, code and javadoc. Except for scoping, the meager part of the language which now exists is fairly solid; I'm gathering it together for an official "0.0" release. (Jun 10 2001)
A shift in concepts and terminology has cleaned up a lot of wrinkles in the semantics and the code. What was before the big idea of "element" is now split into two ideas, "container" and "element". Read the updated semantics for a description of these terms. The updated reference implementation now reflects these changes, and is pending a cross-verification by Nick. The changes have fixed a bug and cleared up some open design questions. The terminology surrounding generalization/specialization is now also a bit clearer. (May 29 2001)
The source code and web documentation (including the semantics) are now under version control, in a CVS archive on Sourceforge with anonymous read access and a lovely web interface for your enjoyment. (May 27 2001)
The semantics is undergoing some terminology changes. There are now numerous inconsistencies between the semantics, the code, and the rest of the site. As always, it's all cum grano salis. (May 20 2001)
Jesse's server was hit by the big West Coast DSL Fiasco, so the Eidola site is now hosted by Sourceforge. (Apr 1 2001)
I've created a Sourceforge project for Eidola, which now hosts the newsletter mailing list and a number of discussion forums (post early, post often!). Sourceforge will also handle CVS for the kernel code once we've got a licensing structure figured out. (Mar 9 2001)
The site now features some illuminating examples of how Eidola might be useful, what directions it might take, and just what the idea of representation independence means in practical terms. I hope this will tide people over until we have screenshots! (Feb 21 2001)
I woke this morning to a little surprise -- Eidola's on Slashdot! Well, I can't say I was really ready for this -- the project is still so young, so innocent! -- but it's generated a lot of interest, which is encouraging. I've updated the FAQ to better answer some common threads in the Slashdot discussion. (Feb 9 2001)
Nick has written an excellent treatise on Eidola's potential importance for mission-critical software, and the reliability problems of software in general. I have created a new section of the site devoted to Nick's idea of a mission-critical flavor of Eidola. Thanks to Catharine for generating the PDF! (Jan 25 2001)
|Copyright 2000-2001 Paul Cantrell|