Begin main content

Comparing Programming Languages

Comparing programming languages is fiendishly tricky. Many hold that it is not valid to do it at all.

Here is some material that I have come across recently that strikes me as useful:

Colourfully titled essay discussing some flaws of comparing languages: The Computer Jihad
Insight into how and why a startup might choose a programming language: Beating the Averages
Two tables comparing the availability of selected features in a range of languages: 1 2

The final one is the report of some fascinating research. It attempts to allocate a level to a langauge based on the number of lines required to achieve certain Function Points:

http://www.theadvisors.com/langcomparison.htm

I find this last one particulary interesting because it looks at the effectiveness that a language delivers to the developer rather than a simple comparison of features. For example, the designers of Java and C++ chose to be strict about features for valid reasons, but it turns out that the result of that strictness is much more developer effort. Agile languages such as Perl, Ruby and Python score well on this metric as many would expect (Lisp didn't score well but Eiffel did). What I wouldn't have expected until recently was for Objective-C to score so well. While Objective-C relies on very simple extensions to the standard C syntax (which scored 2.5), the concept behind it is so powerfull that it scored 12. Almost as high as the agile languages at 15.

What this means is that you can write (a certain class of) programs in Objective-C with a similar number of lines to what would be needed in Perl or Ruby. Yet Objective-C is all the things that people say are missing in Agile languages (like the speed and obfuscation of native compiled code for example).

As Ovid said (see the first link), there are valid reasons to choose different languages in different situations. After browsing a lot of analysis of features and effectiveness, it is hard to see how Java or C++ could ever be the right choice (with the exception of Java for binary distributed cross platform gui applets).

I'm sure some readers have feedback to give on this post :)

01:43 PM, 21 Oct 2005 by Mark Aufflick Permalink | Short Link | Comments (0)

XML

Blog Categories

software (27)
..cocoa (13)
  ..heads up 'tunes (5)
..ruby (4)
..lisp (1)
..perl (3)
..openacs (1)
mac (18)
embedded (2)
..microprocessor (2)
  ..avr (1)
electronics (3)
design (1)
photography (24)
..black and white (6)
..A day in Sydney (18)
..The Daily Shoot (5)
food (2)

Notifications

Icon of Envelope Request notifications

Syndication Feed

XML

Recent Comments

  1. Unregistered Visitor: To replace current categories or remove them...
  2. Unregistered Visitor: Base 256
  3. Unregistered Visitor: ...
  4. Unregistered Visitor: www.pipl.com
  5. Unregistered Visitor: This reminds me of the infinite monkeys
  6. Unregistered Visitor: Feedback
  7. Unregistered Visitor: Diito... Snow Leopard no worky
  8. Unregistered Visitor: WFM
  9. Unregistered Visitor: Pie
  10. Unregistered Visitor: Helpful