From: Sam Sungshik Kong Date: 2004-07-10T02:57:31+09:00 Subject: My impressions about Ruby This post is kinda long and a personal opinion which is not meant for flaming. I think that sharing my experience and opinion may be helpful to whoever starts to learn Ruby (especially coming from Python). Sam ---- Hi, rubyists! Now I have been learning Ruby for 2 months. My programming background (8 years) is Delphi(Pascal), VB, PowerBuilder, C#, Java, ASP(VBScript) and a bit of C++. I liked C# best until I met Python at the end of last year. I learned Python and performed several personal projects with it and decided to make it my primary language. Especially I liked Python's minimalism. It was very easy to learn since codes are basically uniform. I used it for ASP projects instead of VBScript. The length of codes were enormously diminished. The syntaxes and function names were so intuitive and development time got shortened a lot. Its OO concept is kinda messy but I didn't care much because I thought that I don't need to create classes very much when I program with a script language. In Python newsgroup, I found many people mensioning Ruby. At first, I didn't think much of it as I was very happy about Python and didn't see any needs to learn another language. People said that Ruby is pure OO. I thought that pure OO would be a disadvantage for a scripting language. About 2 months ago, I read an online article of matz's interview about ruby's philosophy. That interested me. I decided to learn Ruby. I ordered 3 books from Amazon - PickAxe(I didn't know that there's a free online version. Actually I read it online so the book is still very clean ;-)), The Ruby Way, and Teach Yourself in 21 Days. I started with PickAxe. Who said that Ruby is easy to learn? I think Ruby is at least 3 times as hard as Python to learn. I somewhat hesitated to continue to learn it. What bothered me was too many syntaxes, blocks, class object (class is an object). Also I missed Python's something.__doc__ which returns brief help descriptions about something. Especially obj.each do..end was hard to get used to. So when I need to do something urgent, I still used Python. Anyway, after I finished the first book, I started The Ruby Way. It was good and I wished I could understand it better. After skimming the book, I thought I needed to learn the ruby basics more thoroughly. I started reading Teaching Yourself in 21 Days line by line. That made me understand most of Ruby syntax. After finishing the book, I read the first chapter of The Ruby Way again which is an excellent summary of Ruby features. Now I know Ruby more than Python. Quite frankly, I don't want to go back to Python. Ruby is now my most favorite language. The funny thing is that what bothered me when I started to learn Ruby is actually now why I love Ruby. Clean OO concepts (including single inheritance with mixin), blocks and rich syntaxes (many aliases, operators). This proves that my prejudice was wrong. I think Ruby's something...end syntax is really good. I started my programming with Pascal which uses too long syntax like if ... begin ... end. C's {} is simple but not very elegant. Python's forced indentation seemed to be fine but sometimes causes trouble. Ruby is in the right way in my opinion. I also want to mention that ruby people are very kind to each other and enthusiastic. That may be because its community is still small. I hope this atmosphere lasts even after it grows bigger. Well... I wish Ruby supported unicode like Python. Actually I think string should be always unicode like C#. I'll wait and see Ruby 2.0. To sum up, my decision to convert to Ruby was good. Now Ruby lets me focus on what I want to program. I feel that I'm well-equipped now...:-) Thanks for reading.