Wednesday, May 28, 2008

Last Post On Languages. (For a while)

I just wanted to comment on a few other important languages. First a couple other garbage-collecting, runs in virtual machine, and does good multi-threading languages. Each of these could play a role in the future of scientific programming, but I hesitate to say they will play a lot. I may be wrong.
  • Java - It initially was really slow. Because it made such a bad first impression in numerical circles, I fear it missed the opportunity to be a numerical standard. Though it is much faster today, it is still a memory hog.
  • C# - To me this is the best thing Microsoft has done in a while. I think it is a beautiful language. I'd almost say it is C++ object oriented programming done right. However half the .net framework it runs off of is patented with royalties attached by Microsoft. Sorry, but numerical communities need to work with free code.
  • Ruby - Another new scripting language like python. Becoming very popular. It doesn't fit as well with C/C++ or FORTRAN so it may miss the numerical scene.
I would say the biggest issues of the above languages are: They are slower than C/C++/FORTRAN but unlike python can't be used well with C/C++/FORTRAN. Hence, if you use these languages your code is forced to be slower until the language speed improves. (Turns out numPy works well with FORTRAN.) You can't mingle in C/C++/FORTRAN to speed up your code very easily like python.

Moreover, there is a version of Python called Jython which lets you work directly with Java and a version of Python called Iron Python that lets you work directly with C#. So with python you are always a winner. :) If numerical programming goes the direction of Java or C# python programmers won't miss a beat!

Edit: removed perl rant.


  1. If you try to follow Perl 6 development a bit more than you should find the truth.

    Perl 6 and Parrot links is good start.

  2. mj41, I admit I don't follow the perl 6 development closely. However, many have criticized how long it has taken to finish. The fact that "Perl 6 will never be released!" is the #1 development FAQ on their FUD site just goes to show how many people think along these lines.

    Other languages much more sophisticated than perl don't seem to need such FAQ entries.

    I removed what I said on perl 6 since I am not an expert.

  3. By the way, thanks for the link. Looks interesting.


To add a link to text:
<a href="URL">Text</a>