A `comfortable' programming language should have... * implicit dynamic (and preferably strong) typing - makes it easier to change and mix types, which can be a Good Thing - faster to read/write/compile * garbage collection - no memory leaks - less burden on the programmer * REPL - speeds up the coding process - necessary for experimenting * first-class functions & closures - many situations are easier to handle - functional style can often be more readable * powerful metaprogramming (`macros') - shorter code, less code duplication - domain-specific languages Also, it is nice to have... - simple syntax - comfortable Emacs mode - lots of libraries - a nice object system - optional type hints - good compiler (preferably to (fast) native code as well as bytecode) So what languages have these features? - Lisps (Common Lisp, Scheme, Clojure, etc.) - Julia - Dylan - Factor Other nice languages with most of the `comfortable' features, but without (real) metaprogramming: - Python - Smalltalk - ...?