Lerp Development Log:
Motivation, Status
14 March 2005
The Game Developers Conference just ended; I always come out of
conferences and trade shows inspired and ready to do something new. One of
the big subjects among the experienced programmers at the conference was how
difficult it is going to be to write general-purpose code for the upcoming
parallelized in-order processors. You have to write parallel code to get
anywhere near the potential computing resources these chips offer, but parallel
code is very difficult to write and encourages bugs that are very painful to
fix. Considering how much trouble we have with software engineering in the
game business already, the future in that direction looks pretty grim.
I think that the painfulness of parallel code could be mitigated if we had a language with the appropriate safety features. Thus I was inspired to go back and think about Lerp which had been on the shelf for quite a while (since I was absorbed in another project). But in order to get to the point where those features can be added in a useful way, the rest of the language needs to get done. So, I decided to spend a couple of weekend days post-GDC doing some new work on the basics of Lerp.
My intention has always been to make Lerp very debuggable, but so far hadn't gotten very far in that direction. Thinking about this some more, I want the compiler to generate lots of ancillary information that lives in a Lerp data structure that you can query in a read-eval-print loop. But of course, I also want a nice IDE to visualize this data in an easy-to-see way. The natural way to write the IDE is as a Lerp program (since querying Lerp databases from C++ is not so nice!)
So I got started on the Lerp IDE. And here now I present it to you!

Is that the most amazing thing you ever saw, or what? I am guessing the answer is "what". But it will improve with time! All the rendering is done via OpenGL so after the basic functionality is in, sweetness will come.
For those curious about what Lerp looks like, I've enclosed the source code for this IDE. Please don't infer too much about my goals for the language from that source; most of the interesting language features aren't implemented yet. In general the language is a lot more dynamically-error-checked and interpreted than I would like; for performance and solidity of software development, I intend to transition it to a primarily statically-error-checked language (but with dynamic capabilities for the times when you really want to do dynamic things.)
[Back to Lerp Development Log]