The language flavor of the decade?

Dynamic languages seem to be enjoying a steady increase in popularity. Perhaps it's just that the developer community needs something different every few years or perhaps weakly typed languages actually fill a real need, I still don't know. In any event, it appears that 3 languages are getting most of the traction:

  1. Ruby, the one that is getting more press, and the one that seems to be the new darling of several Java gurus (supposedly tired of Java stagnation).
  2. Python, an alternative closer to the C heritage, has lost some of the limelight to Ruby, but Microsoft seems to prefer it, as shown by IronPython.
  3. PHP, the older, more specialized (it declares itself as especially suited for Web development)  and less "academic" of all (it's been derided as a "better Perl"), but undisputedly the one with the highest market credentials, after all thousands and thousands of web sites run on PHP.

Overall, it looks like it's a good time to start trying one of these as IBM, Oracle, and Microsoft are showing interest in this kind of languages (as usual, Sun is lagging behind). If you, like me, are a fan of .NET Framework then IronPython is the way to go. Or if you, not like me, are a conservative then you can try VS.Php. Now if somebody would please write Haskell.net…

6 Comments

  • so are you going to give IronPython a try?



    I've been thinking about giving one of those a try, I have actually tried Python and Ruby, I have them installed on my machines, but I don't know, with .NET 2.0 and even C# 3.0 coming, there is just so much to learn



    I'm also getting into CLR stuff (IL)



    also, I think Ruby has lost it's momentum

  • I guess having used classic ASP and now seeing the benefits of a strongly-typed language, it's tough to see me making a change. Sure, some things were very quick-and-easy with classic ASP, but in the long-run I've seen much improved productivity. Catching errors during compile time rather than run-time and a much better debugging experience is key. At the same time, obviously use what you love...provided where you work will allow for that ;)

  • Eber: I've got the same problem that you've got: too many things to learn, too little time. So I *wish* I had the time to try IronPython but... On second thought, I think I have to have the time, as dynamic languages really seem to be coming, stay tuned (but don't hold your breadth.)

  • John: You correctly point out one of the problems of late binding: you discover problems too late. That being said, it seems like for small (may be even medium) size projects, the productivity gains are worth the risk, a whole different story for large projects (or high performance needs), where strongly-typed languages like Java or C# seem to be a better alternative.



    PD. Of course, this opens the question of what you call a small, medium, or large project...

  • assembler is faster than managed languages, sure!, what most people ignore is that fact that you should know assembler VERY intimately to really make it faster than code generated by higher generation languages



    the fact that you write code in (say) assembler doesn't automatically make it faster than the same program written in C, the other thing is that if you want to write something in assembler is going to take you up to hundreds of times longer to create it, so that's basically out of the question for most of us



    the same is not true when writing the code in C# or Ruby



    now, I think the performance differences between assembler and higher level languages is not as big as the difference between C# and dinamic



    and you also have to consider that writing an app in C# and Ruby might take you about the same amount of time



    so I guess I'm saying you can't compare assembler/C# with C#/dinamic languages

  • Hello,
    I think it is a good idea to not compare a single language against a whole class of languages to make proper arguements. The one to one comparison really is only valid as a particular feature and / or architecture may be present in another language you are either not familar with because of lack of use or its popularity.

    Also the term dynamic language should be clearly defined or the points for the dynamic nature should individually be discussed. It is again it the case that it may not be pertainant to another language normally grouped for a certain programming style.

    Some languages have an FFI (foreign function interface) that allow them to use performant code in their environment. For a language like Ruby utilizing its C FFI, this allows you to achieve a lot and have possibly more succint code in the process. For IronRuby or IronPython utilizing C# or other compile optimized language libraries, you can have a similar advantage on the .Net Runtime.

    Thank you. Good day.

    Yemi Bedu

Comments have been disabled for this content.