Dynamic languages in mainstream languages, will they work?

I’ve been interested in implementations of dynamic languages in mainstream languages for a while. IronPython and Jruby have been showing great progress, and especially jruby has achieved a status where it can run rails apps in a java app server.

Dynamic languages has their own set of advantages, and sometimes I really miss their features. However, there is a problem, there is almost always a catch with re-implementations, and they are not always minor differences. There is a nice library that you might consider implementing one day, and you can not be sure that IronPython or Jruby will allow you to do so.

The other nice thing about dynamic languages is that they tend to have very fast growing libraries and frameworks, due to their efficiency in development. As years go by in development, you realize that the frameworks and ecosystem  around a language matter “a lot”. For re-implementations, you almost always have  a subset of these frameworks, and this sucks. Also, these efforts are usually provided by a small number of developers paid by a vendor, or no one, and one day you realize that the re-implementation is either dead, or seriously lagging behind the original implementation. JRuby may be hot now, but what happened to Jython?

Now that Java is making plugging dynamic languages easier, this approach may yield better results in the future, but for the moment, I still feel a little bit insecure about these re-implementations. I have to confess though, there is something really attractive in the idea of writing eclipse plugins in python or ruby. I’ll be following the trends, hoping I’ll see some good developments.

Dynamic languages  are important for me, since they make building domain specific languages much easier, and domain specific languages are quite important in future healthcare systems, at least that’s my opinion.

Advertisements

Companies of a higher dimension

Microsoft has just offered Yahoo over 44 billion dollars to buy them. This is a very serious amount, and everyone seems to agree that there is one other actor that forced Microsoft into this move: Google.

I’ve been having a discussion with many of my colleagues, and friends about why Google is considered as a source of value at all. I hear the argument a lot: tell me what Google produces please? Well, it is simple Google produces information, and meta information. I see the whole IT industry as a set of layers, each one building on top of them. At every point in time, there is a layer that generates value added more than others, and it does this by building its products or services on top of others.

Google emerged as the internet company layer even if there were other potential competitors who’d have done the same. Yahoo, AltaVista (does anyone remember?), even Microsoft with MSN was in the domain, but Google made it. They somehow branded themselves as the flagship of the new layer. I remember reading a provocative argument (something like “does it matter?”) a while ago. It seems that when a new layer emerges, competition is less and first comer advantage provides great benefits. Meanwhile on the lower layers, OS wars, hardware wars etc bring down profits, and competition forces all members of that layer. While Intel and AMD are competing for better server CPU’s, Microsoft and Linux are in war for better servers. And what does Google do meanwhile? They build services and revenue on top of Internet which covers almost all OSs, all servers, CPUs etc. No matter who wins in the lower layer, Google also wins.

Another interesting fact is that, each layer requires its own specialization. That’s why Microsoft, even with its enormous financial power could not create a competitor for Google. Now they are trying to buy Yahoo, probably hoping that they can repeat the same strategy they did in database domain. Buy Sybase product, enhance it in 3, 4 versions and compete with Oracle.

We’ll see if this will work, but the whole thing makes sense to me if I think about companies in these layers. If a year from now on someone finds a new way of combining outcomes of existing vendors for a new service, they’ll be the king of the new domain, with others trying to follow. The thing is, the path of the new layers seems to be going in a more and more abstract direction. So, especially semantic web might be the technology to watch for. Actually the whole concept of “semiotic classification of information systems” might be a good topic to take a look at, since it might give clues to future markets and brands.