I’m convinced that if I start typing I will come up with something to say. It’s happening–it’s really happening. I can see the document getting longer keystroke by keystroke.
What can I talk about here? How about some of my favorite programming languages.
Python is my very favorite programming language. It is elegant in its simplicity and I consider it the easiest language to read that I know of. Heck, it’s practically pseudo-code. Python does a nice job of conforming to the way I think and “staying out of my way,” so that I can focus on the functionality I want to code and not on the language itself. It makes sense to me that MIT has chosen Python as the language for its introductory computer science classes.
Ruby, surprisingly, is a close runner-up to Python. I say “surprisingly” because a lot of dyed-in-the-wool Python programmers consider Ruby a vastly inferior language. Not me, though. I like a lot of things about Ruby. For example, its consistency: everything is an object. I also like the numerous ways Ruby gives you to make your code shorter while for the most part avoiding the ridiculously terse readability pitfalls of Perl. For example, built-in support for regular expressions and blocks (an elegant solution to the problem of making callbacks simple). One of my (minor) gripes with Ruby, though, is its inefficiency. In my experience with Python and Ruby programming, Python definitely has the edge.
I consider C and Java to be two of the best-designed lower-level languages. I like them both. I admit to being a C++ programmer too, and often making heavy use of the Standard Template Library. I don’t love C++, but I can get it to do what I need to get done.
Two other languages that I’m not particularly fond of are Perl and Lisp. Perl can look too much like line noise for my taste. Lisp’s simplicity is nice, but it doesn’t think like I think.