Prompted by this blog post, an attempt to say something nice about every language I’ve used, roughly in the order that I learned them:
- Pascal – My first love. Allowed me to create awesome text adventures, even though the code consisted entirely of spaghetti.
- C – Gave me an appreciation for bit twiddling and memory poking, and opened the door to the demoscene and games with real graphics — like, with 256 colors.
- C++ – A summer fling that I appreciated but never fully knew. Using
>>for IO was neat.
- x86 Assembly – Let me put pixels on the screen really fast, and made me feel smarter than a computer. INT 21h!
- Perl – Gave me the power to bend any piece of text to my will in 3 lines or less.
- PHP – Made web development easy and fun (security be damned). People actually wanted to pay me to do it, how cool is that?
- Java – Abstraction is great! Objects are kind of neat.
- Python – Providing one way to do it has benefits. List comprehensions are powerful.
- Ruby – Code can make you chuckle. Rails corollary: CRUD apps don’t have to be tedious.
- Clojure – So many insights:
- Choosing the right abstractions makes all the difference.
- Identity, value, and state should not be conflated.
- OO is best served à la carte.
- REPLs aid exploration and provide the groundwork for good tests.
- When solving nontrivial problems, thinking should dominate typing.
- Favor libraries over frameworks.
- Macros are the icing, not the cake.
- Functional programmers are well-balanced, friendly people.
- Functional programming is really fun!
Haskell gets an honorable mention for being so beautiful, but most of my time with it has been spent reading, not writing. There are other languages I’ve dabbled in but they didn’t provide any particular insights.