The other good reason I see by learning this new language is that it could be used for the Web and to create desktop applications, I know that there is a lot of controversy about PHP frameworks vs Ruby on Rails but Iím planning on learning more about PHP as well since itís a well known language and it cannot be ignored since its used on most of the CMS.
Sorry for making this too long but I just wanted to share my short experience with Ruby, now I need to ask a question.
Iím currently using the command line to execute the little programs that I have been practicing with and I was wondering what is needed if I would want to run (install) a program made with Ruby on a machine that doesnít have Ruby installed? I know I would need Rails for the web but for desktop applications?
Do I need some sort of compiler?
How can I create buttons, text fields etc. for desktop applications?
Sorry Iím new to this language and to the programming world in general.
To execute ruby, you need a ruby interpreter. If the machine you want the program to run on doesn't have a ruby interpreter, then you have to package up a ruby interpreter with your code.
With full service languages like ruby (v. php), you create gui applications, i.e. applications that open up windows with text boxes, buttons, etc., with one of the gui packages available for that language. Ruby, like other languages, has a variety of gui packages available including tk, wxruby, and shoes. However gui programming is an intermediate to advanced topic, so you will need a good grasp of a programming language before embarking on such a project. In ruby, shoes is kind of beginner level gui package with limited features, so you might want to take a look at that first.
ruby is a pretty crazy language that at a certain point becomes write only.
python is a full purpose language, just like ruby, perl, java, etc. python executes much faster than ruby, and the documentation is better. The ruby docs are pathetic. ruby kind of exploded in popularity with the web framework ruby on rails(ROR). However, it is a complex bloated piece of junk in my opinion.
If you're just start learning a web framework, I'd go with Django. It's a web framework for Python that's catching more steam. I have found that I enjoy Django much better than Rails. Each has it's own advantages/disadvantages.
In the Ruby/Rails community you're expected to learn by wading through API documentation -- and we know how much fun that is. It's great if you are putting up a blog post with a few simple tables. If it gets more complex than that, you're going to hate life unless you are a Rails expert.
The main issue I have with Ruby/Rails is the GEM hell (akin to DLL hell) from having to include specific versions of GEMS and all the dependencies they require.
What I do think shines in Rails is the testing framework.
Another good point for python: it comes with a gui package called tk, i.e. after you get python installed, then you will have a gui package installed as well.
With ruby, you have to install a gui package yourself, which can be a pain. python takes the view that it's better to provide a gui package with the installation than not. Of course, then python had to decide which gui package to include, which is an issue I guess ruby didn't want to deal with.
Personally, I've decided the wx* gui packages are the best, e.g. wxpython and wxruby, so after experimenting with python's tk gui package, I had to install wxpython myself, which I don't remember being too much trouble. On the other hand, getting wxruby installed took a long time--like a year. I couldn't get wxruby to work, so I gave up, and then about a year later I tried again, and once again I couldn't get it to work, so I went to the main ruby forum and vented my frustration, whereupon some extremely helpful peopl took on the challenge and stuck by me until I got wxruby to work.