Ruby is best suited to I/O-bound tasks where raw computational speed isn't an issue. Fortunately, the vast majority of real-world programming problems are I/O-bound, with web applications being a particularly good example. The Ruby community spends most of its time and effort on writing and releasing code that's designed to run on web servers, so that's where it really shines, but I've successfully written desktop applications in Ruby. MacRuby is a really great example of Ruby being put to good use in a desktop environment. For web servers, you have great projects like Rails, Sinatra, and the rest of the Rack ecosystem. Projects like Data Mapper are great for both desktop and web server usage. Ruby is rarely used in a mobile environment because performance is such an important issue there, but it can be done if you're determined.
Compared to VB, well... VB comes up wanting in a big way. I would describe VB as well-suited to beginners, but with little room for personal growth. Whereas Ruby is good for beginners who haven't previously been exposed to anything — it can be challenging for people who have already become used to the style of some other language. However, Ruby won't limit your growth as a programmer: Ruby has almost every programming language feature you could want for (with a few notable exceptions like pattern matching and multiple function parameters). And realistically speaking, these are trade-offs; no programming language can give you everything. Compared to PHP, Ruby mops the floor in every area except maybe web server deployment. PHP is everywhere. In most cases, you can just assume it's installed by your web host by default. Ruby, on the other hand, requires a fair bit of experience to get deployed right, though Phusion Passenger has dramatically improved the situation. Compared to Python, well, to be honest, they compare very well. In the interests of not starting any flame-wars with the "Snakes", and because I use both Ruby and Python myself, I'll call it a draw. There are very good reasons to use both, and in most cases, they can be used interchangeably. There are very few applications for which Ruby is well-suited that Python could not perform just as well, and vice-versa. On balance, I prefer Ruby myself, but there are a lot of things I admire about Python, and I write a lot of Python on account of Google App Engine. That said, you can run Ruby in that environment too via JRuby.
If you want to get started with Ruby, the best place to go is Try Ruby (in your browser). That should give you a taste and let you evaluate the language. If you like it, get yourself a copy off the official site. As others have mentioned, the "Pickaxe" book is great. There's a free version online, though it applies primarily to older versions of the language. The "dead-tree" edition should be up-to-date. If you're just getting started, I highly recommend using 1.9. There are still many libraries that aren't compatible with 1.9 yet, but if you're just getting started, all the ones you're likely to care about should be current with 1.9. It's best to avoid having to re-write a lot of code later if you don't need to, plus 1.9 is substantially faster.
In terms of installation, on Windows, it's best to use the "One Click Installer". On OS X, it should have come pre-installed with some special OS-X-specific tweaks. On all other platforms, I highly recommend compiling the latest stable version from source. You can use apt-get
, and that will work and it's certainly much easier, but now and then you'll run into difficulties because the Ruby community and the Debian folks tend to disagree on where stuff should be installed, and sometimes library authors make faulty assumptions. If you compile from source, everything will end up in the default locations, and you'll have the most up-to-date code available. Don't forget to sudo apt-get install build-essential
first if you're on Ubuntu.