Something New
I’ve been thinking about learning a new programming language. Python is where I spend the majority of my time now, and while I certainly don’t know every nook and cranny of it, two-and-a-half years of regular use has left me feeling I know it pretty darn well.
Don’t get me wrong: I still love Python and I hope to continue using it for a long while. It’s just that it’s gotten a little...comfortable. I’d like to try something that will expand my horizons and challenge me in different ways than Python has. I figure it takes a good 6 months of regular use to get really comfortable with a language, so I want to be sure I pick one that’s worth it. I’m a web developer, so I’d like a language I can actually use in that context. Based on that, there’s a couple of languages I’ve already decided to cross off my list:
Ruby. I’ve actually learned a little Ruby while playing around with Rails and I like the language just fine. It’s just that its profile is remarkably similar to Python’s and I’m looking to learn something different.
Java. I also know a little bit of Java and am really not interested in getting to know it any better. I find it verbose, cumbersome and ugly.
C#. I haven’t written this off 100%, but I don’t really use Windows. It seems like a promising language, but that’s a pretty big strike against it.
C++. Nope. Not going to happen.
That leaves a lot of possibilities. One end of the spectrum is to go academic:
Lisp. So yeah, a million reasons to learn this and I’m sure it would really open my mind. But what would I use it for? Does anyone build real, working, non-toy web applications in Lisp?
Haskell. I find a lot to admire in functional programming, and I’ve even played around with this a bit. However, it raises the same concerns about practicality that Lisp does. Also, a friend of mine took a class taught by one of authors of the Haskell 98 spec and did nothing but Haskell programming the whole time. He’s a pretty smart guy and he said it was the most boring 4 months of his life. I know, data is not the plural of anecdote but still...
Smalltalk. Smalltalkers did OOP first and probably best, but does anyone actually use this? No question, Seaside is cool, but even if I built something in it who would host such a thing?
Then there are formerly niche or academic languages which have become trendy:
Erlang. The functional programming paradigm is a plus as is it’s handling of concurrency. And people are actually using it for real, non-toy projects. But: string and IO operations are harder than they should be and then there’s the ugly, ugly syntax.
Scala. Its type system is truly impressive (and a good challenge for us dynamic language monkeys), it’s fast, powerful and Lift seems pretty cool based on the toy “To Do List” app I built in it. But, it does feel very sprawling (and not in a good way, but in an “I’ve been using this for 6 months and I still don’t get it” kind of way). Also, it seems like you can’t just get Scala by itself: you have to have at least some involvement with Java.
Javascript. Not client, but server side (i.e. Rhino). It seems promising and, despite all the crap people heap on it, Javascript is a decent language. But, like Scala, I worry I’m going to end up learning way more about Java than I want to.
Then there are the practical languages:
C.So yeah I should really know this better. But I am a web developer and I don’t see it being terribly useful to me in that capacity.
Objective-C. It’s not a pretty language, but it’s not terrible either. Not really useful for web programming though.
Then there are the many, many languages I don’t really know much about: D, Lua, Go (Google’s new thing), OCaml, Logo, Assembly, Apple Script...
Leave a comment:
Comments are closed for this entry. There are 3 comments for this post: