To me Ruby seems to be even competition to VB and it comes down to what you want to learn and if you like/dislike big MS.
Umm. My perspective differs a bit. I've worked in a
lot of languages and platforms, and as development languages go, comparing Ruby and Visual Basic is like comparing apples and brake fluid. VB, even in .NET, is a very high-level semi-structured language used primarily for rapid Windows development. (Yes, I know you can create Web apps with it in ASP. Most people I know try not to.) Ruby's a platform-independent scripting language much more like Perl or Python. They have almost nothing in common syntactically, and their major uses are completely different.
...That said, yes, I know quite a bit about Ruby and Rails. The new full-time job I just picked up has me developing in it, in fact. That was one of its selling points.
Things I like about Ruby: It's a very
elegant scripting language. Cleaner than Perl, more efficient than Python. It's
totally object-oriented, much like Smalltalk: every single variable, constant, string, function, integer, etc. is an object. So you can call, for instance, "3.methods" and find out all the things you can do with the number 3. It also has a special sort of "code block" syntax I've never seen in an other language -- you can pass your own code as parameters to functions, and have those functions run your code in different ways. It's weird at first, but once you understand it there's a sort of Taoist sense to it that makes it beautiful. I never want to do iterators any other way again.
Things I like about Rails: Rails is a Web application framework -- its purpose is to take care of all the database access, request handling, etc. scutwork in your applications so you can focus on business logic. There are a lot of these in the world today; the benefit of Rails is that it comes closer to telepathy, to
guessing what you want, than any other framework. For example: let's say you have an object you need to work with called
Person. All you need to do is declare:
class Person < ActiveRecord::Base
end...and Rails knows to look for a database table called "
people" (yes, it's smart about plurals), make all of those table's fields available as attributes of Person, and have scores of cleverly named functions to let you access that data almost any way you can think of. It does all of that automatically. That's just one example. It's a tightly integrated MVC (model-view-controller) framework, meaning that your data is always separated from the Web pages showing it, and one of the strongest operating principles is to make sure you never have to write the same code twice. It's not perfect and it has its quirks, but you can get basic applications running very, very quickly with it, and it makes maintainability much easier for large applications.
In short, I dig it.
Is this the sort of thing you wanted to know? Any questions?