I'm familiar to C and C++ syntax and plan to learn a new and more powerful programming language this winter. Should I go for Python 2.x(since I'll be working on linux)or shall I learn Ruby on Rails? I want a more versatile language since I'll may change platforms.
Its amazing how many people start with Ruby on Rails first.<p>To be clear,<p>Language: Ruby, Framework: Rails<p>Language: Python, Framework: Django etc.<p>So, Language is what you actually write as code, Framework is set of frequently used patterns, that is provided as a package to make app development easier.<p>If you are totally new to frameworks, I recommend going with Ruby on Rails, Coz, It makes many commonly used programming patterns, lot easier (no configurations, as they say). When I say easier, its as easy as one line of code sometimes. Many people say, you don't have to know ruby to start with Rails (which is partly true), but, I recommend learning ruby first before you try rails, because, ruby has many fundamental syntactic differences, that might trip off a lot of people.<p>Another big difference is, if you learn Rails, you can make CRUD Web applications easily. But, not other kind of applications. Ruby can be used to make native applications though, same with python.<p>Both Python and Ruby are cross-platform and available for all major Platforms.<p>Hope this helps.
As already pointed out, one is a framework (RoR), while the other is a language.
As you talk of learning a programming language, I'm guessing you meant, should I choose Ruby or Python?<p>To pick between I would suggest you try and write a couple of simple scripts in both and see which suits you better.<p>You should also think what you would like to use this knowledge for in the future. Do you want to build web apps, manipulate text, write desktop apps? Once you know this, it'll be easier to make the right choice about which tech to use.
Uhmmm, ruby on rails is a framework. You should be asking whether to learn Python or Ruby. Why not learn both so you can expand your vocabulary and narrow down once the situation demands it?