Visual Guide to Programming Language Properties
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.
- Some properties enable (but do not always imply) other properties, as shown by arrows.
- Properties result in both benefits and detriments to a language, as shown by arrows.
- Sometimes it is necessary for multiple properties to be present for a particular benefit to manifest, as shown by arrows interrupted by a vertical bar.
† “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.
Domain Specific Language Support
‡ 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.
|Unit test automation||-||-||JUnit||HUnit||unittest||many||varies|
|Environment isolater||-||-||-||cabal-dev, hsenv||virtualenv||rvm||varies|
- Unique Features of Various Programming Languages
- Discusses several programming languages and their unique features.
- Describes some properties mentioned in this article in more detail.
- Chinese translation of this article
Please send comments and corrections to David Foster.