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/.