Recently, I came across a blog post from Dave Ray talking about wanting to say something nice about every programming language he's used, which was inspired by a comment in a recent Michael Easter post. I've been thinking on this topic for a while now, and I think it's a reasonable challenge. I firmly believe that a developer should be familiar with a wide breadth of languages, though it's highly likely the depth of knowledge will be limited.
With that in mind, I'm going to take up this challenge to say something nice abotu every language I've ever used, in no particular order.
- Basic - The flavor I learned on was GW-BASIC on MS-DOS. It is a simple language, but in spite of slightly awkward syntax, it was a powerful language which was easy to remember.
- C - The first 'real' programming langauge I learned, it's Syntax has been with me in pretty much every language I've used since. While C has a few abusable features, it is exceptionally expressive.
- C++ - True multiple inheritance allows ofr some exceptionally powerful class heirachies that other object-orientied languages can make difficult to model. Plus, this is the language that introduced me to operater overloading, a feature I've missed in a great many other languages.
- Perl - Regular Expressions built in as a core language feature? Hell yes.
- Python - At first, I was incredibly resistant to the idea of whitespace importance in a language, however, Python's clean, consistent syntax and it's incredibly complete core libraries make it a joy to work in. And Python 3k was just that much better.
- BASH - Still the best way I know of to automate tasks on Unix, plus, every program on the OS is trivially in your tooklkit.
- Java - It's Virtual Machine concept was a major source of inspiration to .NET?
- C# - Everything that was good in Java combined with the great parts of C++. Plus, it just keeps getting more and more functional, which makes it better. Also, I love that it doesn't have primitives, but instead provides aliases to core objects.
- Ruby - I like some of the syntactic convetions, like boolean methods ending in question marks and default method and property handlers. It's syntax is very powerful.
- VBScript - Direct COM integration makes the language pretty extensible.
- PHP - An easy langauge to pick up, with a lot of potential for templating, all with a pretty strong class system avaiable to those who go looking.
- Go - A compiled language I'm pretty excited about. Yes, it compiles fast, but I love it's version of interfaces that don't require decleration on the implementing classes is awesome.
- JavaScript - Looks like C, acts like LISP. It's easy to learn, but it is one of the most powerful languages I've ever seen. Plus, NodeJS looks awesome on the server.
- Fortran - Fascinating language that's served as the basis for a lot of what came after, plus it still has a solid following within the scientific computing community and is used to drive a lot of interesting work.
- Lisp - In spite it's hatred due to all the parenthesis, this language is probably the single most powerful ever created. It was just decades ahead of it's own time.
Huh, all those languages and only one that I couldn't really be positive about. It's somewhat cathartic doing this excercise, and I'm positive I've missed a few languages, but it was just a bit of fun.