<html> <head> <title>Ruby FAQ: General questions </title> </head> <body> Previous <a href="rubyfaq-2.html">Next</a> <a href="rubyfaq.html#toc1">Table of contents</a> <hr> <h2><a name="s1">1. General questions </a></h2> <h2><a name="ss1.1">1.1 What is Ruby? </a></h2> In a phrase, <blockquote> <em>a simple and powerful object oriented scripting language.</em> </blockquote> <br><br> Like perl, Ruby has its strength in processing texts. Another example is a server application for everyday use. <br><br> Ruby has adopted various good features from many languages, and became a different language from others. <br><br> The features of Ruby are as follows: <ul> <li>Simple syntax,</li> <li>Basic OO features(e.g. classes, methods),</li> <li>Special OO features(e.g. Mix-in, singleton methods),</li> <li>Operator overloading,</li> <li>Exception handling,</li> <li>Iterators and closures,</li> <li>Garbage collection,</li> <li>Dynamic loading (depends on the architecture),</li> <li>High transportability (runs on various Unices, DOS, Mac)</li> </ul> <h2><a name="ss1.2">1.2 What does Ruby stand for? </a></h2> The following is an exerpt from what matz wrote in [ruby-talk:00394] on June 11, 1999. <br><br> matz wanted to choose the name of the language from jewel names, influenced by Perl, and he named Ruby after his colleague's birthstone. <br><br> Later, he realized that ruby comes right after pearl in several situation, like birthstones(pearl => June, ruby => July), font sizes (pearl => 5pt, ruby => 5.5pt.). He thought Ruby was the good name for the scripting language newer (and hopefully better) than Perl. <br><br> matz hopes that Ruby will be the replacement of Perl <his wink>. <h2><a name="ss1.3">1.3 Teach me the Ruby history. </a></h2> The following is what matz wrote in [ruby-talk:00382] on June 4, 1999. The birthday of Ruby is corrected in [ruby-list:15977]. <blockquote> Well, Ruby was born in Feb. 24 1993. At that day, I was talking with my colleague about the possibility of object-oriented scripting language. I knew Perl (Perl4, not Perl5), but I didn't like it really, because it had smell of toy language (it still has). The object-oriented scripting language seemed very promising. <br><br> I knew Python then. But I didn't like it, because I didn't think it was a true object-oriented language. OO features are appeared to be add-on to the language. I, as a language mania and OO fan for 15 years, really really wanted a genuine object-oriented, easy-to-use object-oriented scripting language. I looked for, but couldn't find one. <br><br> So, I decided to make it. It took several months to make the interpreter run. I put it the features I love to have in my language, such as iterators, exception handling, garbage collection. <br><br> Then, I reorganized the features in Perl into class library, and implemented them. I posted Ruby 0.95 to the Japanese domestic newsgroups in Dec. 1995. <br><br> Since then, mail lists are established, web pages are formed. Highly active discussion was held in the mail lists. The oldest list ruby-list has 14789 messages until now. <br><br> Ruby 1.0 was released in Dec. 1996, 1.1 in Aug. 1997, 1.2 (stable version) and 1.3 (development version) were released in Dec. 1998. </blockquote> <h2><a name="ss1.4">1.4 Where is it available? </a></h2> Latest version of Ruby can be downloaded from <code><a href="ftp://ftp.netlab.co.jp/pub/lang/ruby/"> ftp://ftp.netlab.co.jp/pub/lang/ruby/</a></code> Mirror sites are as follows: <ul> <li> <code><a href="ftp://ftp.TokyoNet.AD.JP/pub/misc/ruby/"> ftp://ftp.TokyoNet.AD.JP/pub/misc/ruby/</a></code> </li> <li> <code><a href="ftp://ftp.iij.ad.jp/pub/lang/ruby/"> ftp://ftp.iij.ad.jp/pub/lang/ruby/</a></code> </li> <li> <code><a href="ftp://blade.nagaokaut.ac.jp/pub/lang/ruby/"> ftp://blade.nagaokaut.ac.jp/pub/lang/ruby/</a></code> </li> <li> <code><a href="ftp://ftp.krnet.ne.jp/pub/ruby/"> ftp://ftp.krnet.ne.jp/pub/ruby/</a></code> </li> <li> <code><a href="ftp://mirror.nucba.ac.jp/mirror/ruby/"> ftp://mirror.nucba.ac.jp/mirror/ruby/</a></code> </li> <li> <code><a href="http://mirror.nucba.ac.jp/mirror/ruby/"> http://mirror.nucba.ac.jp/mirror/ruby/</a></code> </li> </ul> For gnu-win32 and djgpp binaries are available under <code>pc/</code>. <h2><a name="ss1.5">1.5 Where is the Home Page of Ruby? </a></h2> Ruby official Home Page is <code><a href="http://www.netlab.co.jp/ruby/jp/"> http://www.netlab.co.jp/ruby/jp/</a></code> (in Japanese) and <code><a href="http://www.netlab.co.jp/ruby/"> http://www.netlab.co.jp/ruby/</a></code> (in English). <a name="mailing_list"></a><h2><a name="ss1.6">1.6 Is there a Ruby mailing list? </a></h2> There are four mailing lists now talking Ruby. <ul> <li> <code><a href="ruby-list@netlab.co.jp"> ruby-list@netlab.co.jp</a></code> </li> <li> <code><a href="ruby-dev@netlab.co.jp"> ruby-dev@netlab.co.jp</a></code> </li> <li> <code><a href="ruby-ext@netlab.co.jp"> ruby-ext@netlab.co.jp</a></code> </li> <li> <code><a href="ruby-talk@netlab.co.jp"> ruby-talk@netlab.co.jp</a></code> </li> </ul> First three are in Japanese, and the last one is in English. See <a href="http://www.netlab.co.jp/ruby/">Ruby Home Page</a>. <h2><a name="ss1.7">1.7 How can I search past mails of the mailing list? </a></h2> There is a search form for past mails in <code> <a href="http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml"> http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml</a></code> <h2><a name="ss1.8">1.8 What is the difference between rubyist and Ruby hacker? </a></h2> By matz: <blockquote> A rubyist regards him/herself more than a customer to Ruby. For example: <ul> <li>recommending Ruby to colleagues,</li> <li>editing FAQs of Ruby,</li> <li>opening a BBS on Ruby,</li> <li>writing a Ruby book,</li> <li>mailing to the author of Ruby to encourage,</li> <li>the author of Ruby ^^;;;</li> </ul> On the other hand, let's call those who show high technical level on Ruby as Ruby hackers. For example: <ul> <li>writing an extension module of Ruby,</li> <li>writing patches to fix Ruby bugs,</li> <li>writing Ruby transports to djgpp or win32,</li> <li>writing a useful (and considerably large) program in Ruby,</li> <li>writing an obfuscated script in Ruby,</li> <li>the author of Ruby ^^;;;</li> </ul> These titles are given to those who believe themselves as such, but the preceding phrases have almost identified the names who are Rubyists and Ruby hackers in my view. </blockquote> <h2><a name="ss1.9">1.9 Which is authentic, Ruby or ruby? </a></h2> Officially, the language is called "Ruby". But the command name is "ruby", and it is allowed to use ruby instead of Ruby when it is not bizarre in the context. <br><br> RUBY is not allowed to be used as the language name. <br><br> Originally, or historically, it was called ruby. <h2><a name="ss1.10">1.10 Is there a Ruby book? </a></h2> A Ruby reference book by matz et al is to be published in the autumn of 1999 (Japanese). <br><br> Mastering Regular Expressions, by Jeffrey Friedl, (the Hip Owl Book): ISBN 1-56592-257-3 (English) from O'Reilly & Associates, is a reference work that covers the art and implementation of regular expressions in various programming languages. It is useful to understand Ruby regular expressions. <h2><a name="ss1.11">1.11 I cannot understand Ruby even after reading the manual. </a></h2> The syntax of Ruby has been rather stable since Ruby 1.0. But as there are new features and fixes incessantly, the documents are not necessarily following the latest source codes. And matz says that the source is the document, even bugs are shown there. <br><br> When you become confused, feel free to ask in <a href="rubyfaq-1.html#mailing_list"> ruby-talk</a>, and you will get timely answers from matz himself, the author of the language, from other gurus, and from those who dug the same hole. <br><br> To make a question, just show the result of <code>ruby -v</code>, and your script. <br><br> If you were using <code>irb</code>, it has its own limitation. Try the script using <code>irb --single-irb</code> or ruby itself. <br><br> There might be similar questions in the mailing list, and it might be a Netiqutte to read through recent mails (RFC1855:3.1.1, 3.1.2), but it is very hard said than done. Do ask in the list, and there will be a right answer. <hr> Previous <a href="rubyfaq-2.html">Next</a> <a href="rubyfaq.html#toc1">Table of contents</a> </body> <html>