One of the things we’re building at Laszlo is LZX, a language for Rich Internet Applications. (Some of the other things we’re building are the client, server, and compiler pieces necessary to make applications written in that language actually do anything.)
Language design is a process, and there’s process-specific knowledge about how to do it. Much of the knowledge is the same that’s needed to design an architecture, or an API; some of it is language-specific. Here are some of the principles I’ve found helpful in designing LZX:
(Continued)
A domain-specific language is a language for dealing with a specific problem domain, such as students at a university or entries in a blog. DSL implementation has become so easy, and some of the domains have become so deep, that there’s now a market for subdomain-specific languages (SDSLs).
(Continued)
I first met the folks at Laszlo Systems in December of 2000, when I was the CTO of AlphaMask. A decade earlier Laszlo’s founder David Temkin, my business parter Mike Reed, and I had all worked at Apple on technologies associated with the Newton. Mike and I were in San Francisco, and David invited us by to see Laszlo.
At the time, I had been thinking of getting someone from the MIT Media Lab to design a user interface that took advantage of AlphaMask’s animation and scaling capabilities to go beyond the desktop metaphor. When I saw what Laszlo was doing, I stopped considering this. “If I ever want to do anything interesting with 2D interfaces”, I thought, “I should do it at Laszlo”.
David was interested in licensing our graphics engine, but Laszlo didn’t have any money. A year later, in October 2001, Mike and I sold AlphaMask to OpenWave. And in November, Laszlo received its seed funding. David called us to ask whether our graphics engine was still available for licensing. It wasn’t, but I was. I signed a six month contract.
I agreed to work for Laszlo because I thought the technology was amazing, and because I was looking for something to do while I decided what I wanted to do longer term —- probably start a company in the Boston area. During my first six months a couple of things happened. One was that I realized this was a real company, with a business plan and business people as good as the engineers. Another was that I really enjoyed working with everyone. So six months later, instead of leaving Laszlo to start my own company, I suggested they hire me and start a Boston office, and a year later, here I am.
I’ve noticed that there’s two ways of giving directions to a location (say, when a driver pulls over to ask you how to get to a restaurant). Declarative directions specify where a location is relative to the current location; for example, “Two blocks ahead and across the street.” Procedural directions specify the steps that have to be taken to reach a location; for example, “Go straight three blocks, take a u-turn, go one block, and it’s the first building on your right.”
(Continued)
I’m posting this from the lobby of the Westin Hotel in Santa Clara, the site of the O’Reilly Emerging Technology Conference. Laszlo has a major presence there, with a booth, a presentation, and a Birds-of-a-Feather session.
(Continued)
Welcome to my blog! I’ll be using this space to write about languages, software, and cognition.
(Continued)