P
ython? Ruby? Something better? -- I'm having some trouble picking the next programming language for my internal projects. Not that they all have to be in the language I pick, but I want to pick another language which will be the main focus of my efforts for the next several years. Currently the base language here is PHP 5. It's a solid OO web language, but I think I've become less happy with it than with Python or Ruby over the last few years.
(To the right: Book sales from the Bookscan top 3000 report, which covers most all computer book publishers.)
I've been happily building sites in Python and Ruby, and each language has its drawbacks. Programming is such a personal thing, that there's no objective list to draw up of the advantages and disadvantages. I'm open to things that I've never used, and skim articles on other possible choices often. Nothing has really caught my eye yet, and some of the smaller languages have commensurately small developer communities. I don't mind small, as long as it's productive. I'd even be happy to contribute to an up-n-coming web language's development.
The look of the code is important to me. I very much like Python's meaningful indentation, and how nice it can make code look. "end" statements really put me off. I always indent meaningfully in any language anyway, so I'm perfectly happy to mandate it when it also makes the code look clean. That said, Python has several things about it that drive me a bit nuts. "_" in any method name. "self" as an argument to a method.
Ruby has lots going for it internally, but the syntax choices bug me big time. Also, even though I'm quite comfortable with blocks, I have yet to really get why they're so loved in ruby and what I'd be actually missing without them. There's nothing in Ruby that I write that can't be done as well in Python, at least in the real-world projects I've had so far. I love many of its built-in classes and methods. While I generally find Ruby's Perlish code harder to read that comparable Python code, my eyes have adjusted enough that I'm not less happy than I am in, say, PHP.
Since I am not planning on using popular frameworks like Smarty, TurboGears, Rails, etc (there are hundreds of such frameworks for each language), I don't count advantages of these frameworks as counting for my choice of base language. Why I'm not is a discussion for another day.
If anyone has a favorite language that they think I should give a serious look at, I'll be happy to check it out. Must be an open-sourced language that runs on Unix-eque machines and have standard web features, like good database support.