Dancing with Many Languages

By Eric Larson
September 4, 2008 | Comments: 3

discolarge.jpgA friend of mine pointed out Disco, a map-reduce framework written in Erlang and using Python for writing the actual map and reduction functions. I haven't tried it just yet, but the concept is interesting in that it uses both Erlang and Python.

Web development has always forced a rather heterogenious environment, primarily because of the restriction to using Javascript on the client side. In the past, many people have tried very hard to keep their web development stacks in one language. Rails is a great example in that Prototype and ERb both make an effort to feel like programming in Ruby, while still embracing the reality XML, HTML and Javascript are all part of the web. A project like Disco, seems to also suggest it is an asset in that it allows the strength of each language to shine where it is most applicable.

Yet, with good examples of different languages playing nice together, it makes me wonder if Javascript will be a dominant server platform. Steve Yegge seems to think so. I'm beginning to wonder as well with all the recent development in Javascript engines. When you also consider something like JSON and massive distributed systems that all speak the same language, Javascript becomes and even more powerful platform. After all, REST and the big issues with WS-* revolve around automatic transitions between platform specific data types. Placing Javascript on the server starts making a lot of sense when you consider fast engines, expressive code and the pervasiveness of the language.

book coverbook coverbook cover
For a complete list of Javascript books, visit the
Javascript topic page in the O'Reilly Store.

The big question is whether we'll see something like JScript .NET in terms of a major platform that has made it easy to write one file and deploy some application via something like Visual Studio. Right now Javascript is sort of like BASIC for the web, but without a Visual Basic type environment. This makes me wonder if Chrome is essentially the beginnings of such a platform.

For the time being, I'm glad there are projects like Disco that are taking multi-language systems seriously and doing interesting work outside the web space. Web developers have been required to deal with different languages whereas a tool like Disco was able to make a conscious decision to use both Python and Erlang. I cannot imagine that the required hetereogenious environment of the web has been critical in exposing the reality that managing multi-language complexity is doable and potentially advantageous.


You might also be interested in:

3 Comments

What's truly ironic with all of this is that the pioneering party that has been driving forward Javascript (in the from of, as you point out, JScript, but none-the-less) from both a tooling and runtime perspective is MSFT. The thing that MSFT has /always/ been best at is the tooling. That's not to suggest they suck at the runtime side of things. That's certainly not the case. They just excel at the tooling side more than any other company.

>> This makes me wonder if Chrome is essentially the beginnings of such a platform.

If anything I believe Chrome is an affirmation of the fact that this is the direction the industry has long since been headed. MSFT via Silverlight, Adobe via Flex/Flash, Mozilla via TraceMonkey, etc. If anything I'd say Google is /LATE/ to a game that started several quarters ago. That's not to suggest they don't have an incredible product in V8. Just that they're not the pioneers.

What do you think?

@mdavid

You are totally right about tooling. MSFT is the reason programming is career choice for many people because they made things easy.

As for RIA technology like Silverlight, Flex, etc., I don't see them as truly being the future. Part of the reason is because tools are either proprietary or difficult to come by. I'm not saying there are not tools, but rather they require tools, which in turns sets up a slight barrier. I also do not see users clamoring for what RIA platforms have to offer. Now, I don't know why the public hasn't caught wind of the slick stuff you could do with it, but at this point, it doesn't seem like it is where the web is moving.

I don't know that Chrome is that innovative. It really is just third iteration of a browser, so there have been some lessons learned. The thing that I believe Google is doing right is taking the existing web technologies and enhancing them. Gears makes an effort to make sandboxing Javascript safer, which means many of the XSS features (sure it is dangerous, but it could make other things a lot easier) possible. App Engine suggests a huge scalable platform for building applications for free using a proven expressive language (Python). They provide a CDN for major Javascript libraries in order to help improve the base libraries available. I could see this evolving into something like CPAN before long.

The big difference between something like Flex and Google's technology is that Google is taking small steps, while things like Flex, and especially Silverlight, are bigger bets in terms of adoption. Silverlight is a great example in that it is extremely cool technology and finally brings the promise of multi-language client side scripting. The downside is I can't write a text file and open a browser to get started (right?).

MSFT is legendary for always keeping legacy support. While they are definitely innovating, Google is the one who is paying attention to the legacy of the web, which as MSFT shows, is a good strategy.

@Eric,

All excellent points!

>> As for RIA technology like Silverlight, Flex, etc., I don't see them as truly being the future.

I agree. History repeats itself, and Flash represents the connection between the past and the present as far as RIA is concerned. HTML and other open standards will always win out over proprietary platforms as far as reach is concerned. Then again, Flash is arguably just as important to the web ecosystem as is HTML. For different reasons, of course, but still just as important. For example, YouTube couldn't have come into existence without Flash. In this regard, Silverlight, Flex/Flash, etc. represent important components as far as the future of the web is concerned. But neither will be king.

Thoughts?

>> Part of the reason is because tools are either proprietary or difficult to come by. I'm not saying there are not tools, but rather they require tools, which in turns sets up a slight barrier.

Yup, agreed.

>> I also do not see users clamoring for what RIA platforms have to offer. Now, I don't know why the public hasn't caught wind of the slick stuff you could do with it, but at this point, it doesn't seem like it is where the web is moving.

This is why I believe MSFT has placed so much focus on streaming media. As far as streaming media is concerned it could become just as important as Flash. And streaming media is where the money is, regardless of whether the multimedia pieces are wrapped in (X)HTML, XAML, MXML, SVG, or whatever else.

>> I don't know that Chrome is that innovative. It really is just third iteration of a browser, so there have been some lessons learned. The thing that I believe Google is doing right is taking the existing web technologies and enhancing them.

100% agree!

>> Gears makes an effort to make sandboxing Javascript safer, which means many of the XSS features (sure it is dangerous, but it could make other things a lot easier) possible. App Engine suggests a huge scalable platform for building applications for free using a proven expressive language (Python). They provide a CDN for major Javascript libraries in order to help improve the base libraries available. I could see this evolving into something like CPAN before long.

Easily!

>> The big difference between something like Flex and Google's technology is that Google is taking small steps, while things like Flex, and especially Silverlight, are bigger bets in terms of adoption. Silverlight is a great example in that it is extremely cool technology and finally brings the promise of multi-language client side scripting. The downside is I can't write a text file and open a browser to get started (right?).

You can. IronRuby, IronPython, and, of course, Javascript all exist in text files, though there is requirement to place them in a .xap file for serving up to the client. But the chiron utility that ships with the Dynamic Silverlight SDK acts as an application server that will dynamically generate the .xap file (which is just a zip file of all files related to the app) with each request (see: http://www.voidspace.org.uk/ironpython/silverlight/silverlight_application.shtml#the-xap-file for more detail) which lends nicely to the development of Silverlight apps without being required to break away from your existing and preferred toolsets.

>> MSFT is legendary for always keeping legacy support. While they are definitely innovating, Google is the one who is paying attention to the legacy of the web, which as MSFT shows, is a good strategy.

Where this gets interesting, as you point out above, is with the Google App Engine. MSFT has yet to directly respond to App Engine, but if I were a betting man I would definitely put money on the idea that they will. At least in some capacity.

Time will tell :)

News Topics

Recommended for You

Got a Question?