Monday, March 14, 2005

Sun moving into Language Oriented Programming?

Is Guy Steele's new project at Sun the first step in a larger move toward Language Oriented Programming? The Java guru and all-round language master (Lisp, C, Fortran), is working on a new language that sounds like a hybrid of Java and Fortran, cleverly named Fortress. The interesting part is that he plans to use this opportunity to try out some new things, like not limiting the language to plain text:

"What if we tried really hard to make the mathematical parts of a program look like mathematics?"

There are other similarities to LOP, as well, such as the emphasis on domain-specific language instead of general-purpose language. In this case, the domain is scientific and mathematic applications. Also, he seems quite focused on programmer productivity, which is refreshing.

What makes me think this is about more than just a single language are these two revealing quotes:

"I'm willing to stand back and say, 'Look, the way we've been doing it for half a century isn't very good.'"

"I think there is room for at least one more big leap, and Fortress is our experiment with trying to make that leap."

Even more interesting is that Guy Steele is a major figure in Lisp programming. A lot of Lisp programmers hear about LOP and their knee-jerk reaction is, "Oh, that's nothing new. You can already do that in Lisp." I wonder then, why Guy Steele has chosen not to implement Fortress as a Lisp library, hmmm?

So, it looks like all the players lined up in the meta-programming arena: Jetbrains with the MPS project, IBM Rational with MDA, Microsoft with Software Factories, and Sun (probably) with Fortress. It's interesting to notice a trend there. Of IBM, Microsoft, and Sun, the later they join the game, the more their entry looks like LOP, and the less it looks like UML. I think that's a positive sign for Language Oriented Programming.

I think Sun (or at least Guy Steele) is on the right track. Starting with a single language could be a good strategy; prototyping is generally a good thing. The choice of domain is very promising, considering Fortran's prior success and mind-share. It could potentially do for Fortran what Java did for C/C++. Steele's emphasis on programmer productivity is the critical factor, though. That's the right vision. If he can make that work, Fortress will succeed, and from there, Sun could potentially develop a full LOP platform. The future is bright!