Quantcast
Channel: Nick Mudge's Weblog
Viewing all articles
Browse latest Browse all 69

Multiple Programming Language Implementations - This Annoys Me the Most

$
0
0

I've been reading books on Ruby. I want to know the language really well. I'm that kind of programmer. I love to know the exact details of a language as much as possible.

By far the thing I like least about the Ruby language at this point is that it feels like two languages, Ruby 1.8.x and Ruby 1.9.x. Each time I read a paragraph that explains a difference between Ruby 1.8 and Ruby 1.9 I am annoyed. I want to learn one programming language, not two, but which one should I really learn? My answer seems to be both at the same time. Ugh.

It seems to be the most sense to really learn Ruby 1.9.x because that's the future of Ruby programming. But from the looking around I have done Ruby 1.8.x is easier for a beginner to learn for various reasons. Ruby 1.8.x is more stable, has more support by libraries, documentation, help and tools. There's less trouble with using Ruby 1.8.x, but it's not the future. This isn't good for beginners who want to learn and start using Ruby.

As an example of Ruby 1.9.x unfriendliness, say you are a Ruby beginner and you want to get Ruby up and running at work as fast as possible for a little task that needs to be done. Your computer is running windows so you go to look for a download of Ruby on windows. There's a really nice and fast Ruby 1.8.6 One-Click Installer which sets you up nicely on windows and which likely has everything you need, including an editor. This doesn't exist for Ruby 1.9.x.

While having "more than one way to do it" may be the way to go for you depending on if you take the Perl or Python philosophy, I'd definitely say that for beginners learning a language, having choices about what to learn, like which implementation to learn, really sucks. By default newbies don't know anything and asking them to choose when they lack experience and data is frustrating.

Perhaps it doesn't really matter much if you use or learn Ruby 1.8.x or Ruby 1.9.x or both, but as a newbie you just don't know.

I've seen people ask what programming language they should learn and use for making websites. At one time I had that question. It can be a worrisome question and seem important. In my opinion the answer is that for a new person it really doesn't matter much which language as long as it has some good support for making websites. Ruby, Python, Perl or even PHP are fine. Who cares, it doesn't matter. So in reality the question really isn't very important. And maybe choosing between learning or using Ruby 1.8.x or Ruby 1.9.x doesn't really matter either. I'd like opinions from more experienced Ruby programmers about that.

At this point I've sort of arbitrarily decided to go along and use the Ruby 1.8.x implementation of Ruby because Ruby on Rails still recommends Ruby 1.8.x for use with Rails - even though I've heard Rails runs fine on Ruby 1.9. When Rails recommends 1.9.x then I'll switch to that when I can. So in learning Ruby I'm learning Ruby 1.8.x and Ruby 1.9.x and it is annoying.

This multiple implementation annoyance also occurs in other programming languages. I noticed that some of the more popular programming languages I can think of tend to have a single, solid, standard implementation that almost everyone uses. PHP and Java are examples.

Most prominently I think of Lisp when I think of multiple implementations. Maybe it's not so much all the parentheses that have caused Lisp not to become a popular mainstream programming language. Maybe it has more to do with the lack of a single solid implementation. I also noticed that Lisp seems to be big about written language standards, while more popular programming languages more or less follow a reference implementation as the standard for the language.

I've been seeing many articles and blog posts about Clojure. I'm feeling the buzz and excitement about it. Perhaps it is doing so well because it has been created for such a standard and well known and used platform, the JVM. Instead of a Lisp implementation trying to create or grow it's own community (among already existing small Lisp communities), Clojure seems setup to tap the existing very large Java community. That's pretty cool.


Viewing all articles
Browse latest Browse all 69

Trending Articles