MRH wrote:
> Hello Group,
> 
> I realize this question has been previously asked in different boards,
> however, I believe that it is worth asking here owing to the level of
> expertise present.
> 
> I am a beginner in programming. I have read some fundamental theory
> material and mucked around a bit, and now want to move into actually
> learning programming and my first language.
> 
> Throughout my research into this question, I have seen that the more
> credible sources recommend either Python or Ruby, and I am personally
> leaning quite heavily toward Ruby, yet I would very much like to read
> the thoughts of the group on this question.
> 

I was in the same position as you about a year ago--except I have 
experience programming in other languages, and I was leaning the same 
way.  I read a bunch of articles on Ruby and Python, and I was leaning 
towards Ruby.  Then I went to the Ruby website, and I did the twenty 
minute tutorial, but I found the syntax distasteful.  So I did an about 
face and began learning Python instead.  After spending a year with 
Python, which I liked quite a bit, I thought I would learn some Ruby, 
which is what I'm doing now.

Ruby people talk about how clean the Ruby syntax is and how Ruby 
"doesn't get in your way".  But in my opinion, Ruby has barely evolved 
beyond Perl as far as ugly syntax goes.  A lot of the code posted on 
this forum is extremely difficult to decipher.  I also find that Ruby 
actually gets in my way all the time, and based on the questions posted 
in this forum, Ruby seems to get in other people's way too.  To be fair, 
all computer languages get in your way: there are weird results, quirks, 
and edge cases that will stump you when writing programs, but for some 
reason the Ruby kool-aid drinkers like to claim that is not the case in 
Ruby.  Ruby lets you do so many bizarre things that I would guess there 
are more quirks and edge cases that will leave you completely bewildered 
than in any other language I know.

As far as I can tell, Ruby is a good language for experienced 
programmers who don't want to be confined by any rules and don't need 
speedy execution.  For them, Ruby is an expressive language because they 
can write the most bizarre code with it.  I also notice that a lot of 
Ruby programmers who post on this forum like to cram the equivalent of 
ten lines of code into a convoluted one liner whenever they 
can--efficiency and clarity be damned.

> I suspect that Ruby has more LISPisms than Python. 
> Either would be good for GUI OS X apps and web apps.
>

As a beginner, you can pretty much forget about programming GUI apps 
with Ruby.  Ruby doesn't come with any software that will let you 
program GUI apps, so you first have to get some software installed, 
which can be a big hassle.  Then there is not much documentation or many 
tutorials for Ruby GUI programming.

On the other hand, Python includes software that will let you program 
GUI apps.  It's called Tkinter, and it's simple enough so that beginners 
can get their feet wet.  The documentation on Tkinter isn't the 
greatest, but some python books have sections on Tkinter and there are a 
few websites that have decent examples and documentation.

The documentation for the Ruby language and its Standard Library is very 
poor.  As a result, you need to buy the book Programming Ruby(2nd ed) 
just for the documentation section in the second half of the book.  As a 
beginner, you probably won't use the online docs for reference very 
often, so that won't affect you as much. Python's documentation is 
better, but I still consider it substandard.  php has the best online 
documentation I've seen because they allow users to post comments in the 
docs.  The php users flesh out the descriptions of the functions and 
they post examples demonstrating tricky results they encountered.  Why 
python and ruby don't adopt a similar model for their documentation is 
baffling.  In essence, the php docs are self documenting, and the php 
users create a rich trove of information for free.

Python has a very good beginners book that just came out with a new 
edition this year: "Learning Python(3rd ed)".

Based on all of the above, I recommend Python over Ruby.   Good luck.













-- 
Posted via http://www.ruby-forum.com/.