Here’s an interactive chart showing high-level properties of various programming languages.
You can filter the chart to only show the properties that your favorite language supports.
Interesting observations:
† “Programming with collections” is discussed in Lisp vs. Pascal Design Philosophies.
§ See also the idea of monadic regions for block-scoped resource management.
¶ Objective-C is the only known language that supports automatic reference counting.
‡ Beyond the Lisp family, Prolog is the only other language I know of that is homoiconic.
Its syntax is reasonably easy to read, unlike Lisp.
C++ | ObjC | Java | Haskell | Python | Ruby | Lisp | |
---|---|---|---|---|---|---|---|
Code coverage | - | - | EMMA | hpc | coverage.py | SimpleCov | varies |
Unit test automation | - | - | JUnit | HUnit | unittest | many | varies |
Package manager | - | - | - | Cabal | pip | gem | varies |
Environment isolater | - | - | - | cabal-dev, hsenv | virtualenv | rvm | varies |
Series
This article is part of the Programming for Perfectionists series.
Please send comments and corrections to David Foster.