From: Brian Wisti Date: 2001-12-22T03:32:01+09:00 Subject: [ruby-talk:29250] Re: Some Questions from a Newbie (no programming experience) Hi Tom, On Sat, Dec 22, 2001 at 12:14:12AM +0900, Tom Karas wrote: > Hello rubiest, > > i am willing to learn either a script-language (python, ruby) or a > non-script-language (c++,java,delphi-kylix). These questions end up being all about personal opinion, but I'd like to share my own thoughts. Maybe the balance of everybody's ideas will help you make your decision. This is a pretty long rant, so folks can feel free to just hit "Delete" and move on ... First off, don't start with C++. That's what I did. It's a very hard language to learn "first". If you were learning in a classroom environment, or with a guru to offer advice, it might be a little easier. I didn't, and ended up spending roughly three years of my spare time before I felt like I really had the hang of C++. Of course, I could be just a little slow in the head :-) Java is okay, and you will be able to find plenty of reading material, both online and in printed form. I have philosophical issues with the language, though. I keep bumping into things that I'm used to doing in C++, Ruby, and Python, but am prevented from doing by Java's language rules. Also, the sluggishness of Java makes me reluctant to go in and fiddle with my programs for experimentation. Changing a few lines of a large file can result in several minutes waiting for compilation, and a few more minutes waiting for Linux to get the Java application warmed up and running. I'm very impatient, so that sort of thing turns me away quickly. Ruby, Perl, and Python are a lot of fun to learn. Scripting languages give you a sort of "instant feedback" that's very satisfying. Building useful programs takes much less time, and the libraries of available code make it easy to create complicated applications with little effort. Python was largely written to make it easier for people to learn programming. I'd say it succeeded. It's a great language to learn, and fun to teach. Heck, I taught Python to my Dad last year, and he'd never programmed in his life - well, a little BASIC, but that doesn't count as programming :-) My main problem with Python is that it's now moving too quick for the tutorials to keep up. My favorite beginner's book ("The Quick Python Book") is now woefully out of date with the current features of the language. Your neighborhood Python expert may be really good with version 1.5, but still hasn't had a chance to get up to date on 2.0, and doesn't even know about all the new stuff in 2.1 or 2.2. My favorite language (today) is Ruby. It has clear, consistent rules which make it almost as easy to learn as Python. It also has the flexibility of Perl, which basically means that you can build any kind of application. Ruby is all OO. As an Object Oriented language, it succeeds beyond anything that I've ever seen. If you are interested in learning a conceptually clean language that makes it easier to learn and experiment with OO programming, Ruby is definitely the way to go. It will make life much easier when you decide to pick up a language like C++ (although you will wonder why C++ doesn't implement feature "x", "y", or "z"). Ruby's Tk interface is nice. It's not something I focus on, since I mostly do Web stuff and system administration. It looks consistent with Perl::Tk and Python's Tkinter, though. I've not heard any complaints, at least. The only disadvantage of Ruby is its youth. Because Ruby has not been in wide use (in the US) for very long, there is not much English documentation compared to Python. There are also minor technical issues that are being ironed out as the language evolves. It's still kind of a "bleeding edge" language - very powerful, but with some rough edges that could catch you at unexpected moments. The documentation problem is getting fixed in a hurry, though. Last year, there was only one book. Now there's two. Within the next year, I think the number goes up to a half-dozen. I'd guess that Ruby's documentation is roughly where Python's was two or three years ago, but it's catching up quickly. And that documentation is very up-to-date. The Ruby community is also the friendliest I've seen. Actually, most of the language communities are friendly, but Ruby's is new enough that experts haven't had time to get exasperated answering the same questions over and over. Even though I mostly lurk in the Ruby mailing list, I feel like I'm taking part in something new, exciting, and fun. That attitude makes a language much easier to learn, believe me! Okay, I think that's it. You would be very satisfied with either Python or Ruby for a first language. Ruby is younger than Python, but has the advantages of clean OO and a very friendly community. Python has the advantage of maturity and a large collection of tutorials and documentation, but the disadvantage of moving too quickly for the documentation to be current. Wow. This was a much longer rant than I was expecting. I hope it didn't put anybody to sleep. Good luck with your choice! Brian Wisti brian@coolnamehere.com -- ------------------------------------------------------------ Visit http://www.coolnamehere.com/ It'll kill some time.