The one thing Ruby (and Python) have over C++ (and Java to
some extend) is that there is very little overhead in terms
of syntax to get started writing a program. You can just
get started, first in the interpreter to get your feet
wet and try out things, then later by putting programs
together in a source file.
No need to #include or import anything (well, I guess
Python/Ruby do something similar at times), no required main
functions/methods etc .. all that extra syntax (and in
case of C/C++ all that memory management, which can cause
endless headaches).
IMHO, for humans/programmers, languages like Ruby or Python
are much more productive tools than C++. They work at a higher
level and come with nice libraries to support the task at
hand - the programmer can concentrate on solving the problem
rather than worrying about arcane syntactic issues.
Using the above criteria, I would put Java somewhere between
Ruby/Python and C/C++.
Now, if low-level access to the machine is required, or
fast execution, C/C++ might be a better choice since it's
a compiled, rather than interpreted system, though there
are probably tools that would allow you to create executables
based on Ruby/Python (or perhaps not, I'm assuming here).
I was just recently taking another look at C++, and you can
easily see how it's C with C++ grafted on, it has some rather
"un-elegant" features because of it. I'm not taking anything away
from Bjarne S., he did a great job taking C and turning it into
an object oriented language and helping the OO paradigm to get
more widely accepted. Other languages learned from this
and improved on it, to wit Java and all those that came
after.
My background:
FWIW, I have been programming since 1980, plenty of assembly
(even some machine language for "fun"), Pascal, Ada, C, C++,
Java, C# etc .. my favorite languages currently are Ruby and Python.
If I have to develop for Windows with GUIs, VS w/ C#, most
of my code is written under Linux w/ emacs.
Sorry, this got to be longer than I had intended. Short version, if
you want to learn programming, and be productive, take a look at
Python and/or Ruby instead of C++.
EB