A little comparison of some programming lanugages

This post evaluates the programming languages ATS, C#, Go, Haskell, OCaml, Python and Rust to try to decide which would be the best language in which to write 0install (which is currently implemented in Python). Hopefully it will also be interesting to anyone curious about these languages.

i thought the "safety" portion of the evaluation was particularly interesting.

(overall, i find the review depressing: there's no good programming language, i guess.)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Definitely an interesting

Definitely an interesting analysis. I was surprised by C#/Mono's poor performance too. I can certainly appreciate the annoyances with null references though.

Not a very careful analysis

There are some subjective scoring practices here...Besides, you can't really conclude anything about different languages by translating 5 lines of original python.

Sure, there's nothing really

Sure, there's nothing really definitive about the arbitrary scoring mechanism. But it's an interesting introduction to a number of different languages using a common problem, and I think the error handling section was good feedback for the language developers.

i'd at least rephrase what you wrote, if not disagree

* I thought it was a careful analysis for as far as it went - of course 'careful' is undefined here, but consider that the original author took the time to both (a) translate the program even into ATS which was hard and then (b) actively sought out help/improvement/critique, to improve the translations; it wasn't just a quick dirty ignorant bunch of hacks.

* All scoring is subjective, because you can always ask if the thing being benchmarked even matters.

* And, one can conclude things from the 5 line translation, but one's conclusions probably can't be about things that were not encountered in that work. :-)

Nimrod?

He forgot to evaluate Nimrod ... ;-)
(BTW the github version of Nimrod implements "not nil" checking. )

Sure, and Deca, and Clay.

Sure, and Deca, and Clay.

GC? Meta-programming?

There is a lot more to Nimrod than just the new 'not nil' checking. For example do Deca and Clay have a garbage collector, compile-time metaprogramming and generics like Nimrod?