RUBY NEWSGROUP FAQ -- Welcome to comp.lang.ruby! (Revised 2000-12-13) This FAQ contains information for those who want to: 1) learn more about Ruby, and want to 2) post to comp.lang.ruby. This FAQ is normally posted every 2 weeks or so. 1 About Ruby. 1.1 What is Ruby? Ruby is a very high level, fully OO programming language. Indeed, Ruby is one of the relatively few pure OO languages. Yet despite its conceptual simplicity, Ruby is still a powerful and practical "industrial strength" development language. Ruby selectively integrates many good ideas taken from Perl, Python, Smalltalk, Eiffel, ADA, Clu, and Lisp. (Ruby is more fully OO than Python in so far as basic types such as hashes can be subclassed. See Ruby FAQ 1.4.) Ruby combines these ideas in a natural, well-coordinated system that embodies the principles of least effort and least surprise to a substantially greater extent than most comparable languages--i.e. you get more bang for your buck, and what you write is more likely to give you what you expected to get. Ruby is thus a relatively easy to learn, easy to read, and easy to maintain language, yet it is very powerful and sophisticated. In addition to common OO features, Ruby also has threads, singleton methods, mix-ins, fully integrated closures and iterators, plus proper meta-classes. Ruby has a true mark-and-sweep garbage collector, which makes code more reliable and simplifies writing extensions. In summary, Ruby provides a very powerful and very easy to deploy "standing on the shoulders of giants" OO scaffolding/framework so that you can more quickly and easily build what you want to build, to do what you want to do. For many former Perl and Python users seeking a more uniform and a more powerful set of higher level OO programming capabilities without the complexities of C++, or the compromises of Java, or the subtleties of Smalltalk, Ruby is a "much better Perl than Perl" and a "significantly better Python than Python". (This is no small feat, since these languages contributed some big innovations to the field of development programming languages.) You could characterize the Ruby philosophy as "there's a better way to do it" (TABWTDI). Finally, Ruby is an "open source" development programming language. 1.2 Where can I find out more about Ruby? Ruby's home web site: http://www.ruby-lang.org/en (Ruby English language home page.) Follow the links to documentation, downloads, the Ruby Application Archive, the Ruby mail list archives, and lots of other interesting information. Ruby's other major on-line documentation and links site: http://www.rubycentral.com Ruby FAQ: http://www.rubycentral.com/faq/ Ruby User's Guide (introductory tutorial): http://www.math.sci.hokudai.ac.jp/~gotoken/ruby/ (Look under "Documents" heading.) Ruby Reference Manual: http://www.ruby-lang.org/en/doc.html Ruby classes, modules, and methods reference: http://www.rubycentral.com/ref/ English language Ruby book list: "Programming Ruby, A Pragmatic Guide" by Dave Thomas and Andrew Hunt Addison Wesley, 2000, ISBN: 0201710897 (Part of this book is already on the Internet; see http://www.rubycentral.com/ref/ -- this is a great, "absolutely must have", best-of-breed book.) Eratta: http://www.pragmaticprogrammer.com/ruby/errata.html Forthcoming English language Ruby book list: "The Ruby Programming Language" by Yukihiro Matsumoto (aka Matz) and Keiju Ishitsuka Addison Wesley, January 12, 2001, ISBN: 0-201-71096-X FYI: http://www.amazon.com/exec/obidos/ASIN/020171096X Search past postings to comp.lang.ruby or the ruby-lang mail list (which have been mirrored to each other since mid-2000): http://www.deja.com/home_ps.shtml (Enter comp.lang.ruby in the "forum" entry field.) http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml 2 About comp.lang.ruby. 2.1 Tell me about comp.lang.ruby. comp.lang.ruby was officially approved in early May, 2000. Here is the official charter: CHARTER: comp.lang.ruby The comp.lang.ruby newsgroup is devoted to discussions of the Ruby programming language and related issues. Examples of relevant postings include, but are not be limited to, the following subjects: - Bug reports - Announcements of software written with Ruby - Examples of Ruby code - Suggestions for Ruby developers - Requests for help from new Ruby programmers The newsgroup is not moderated. Binaries are prohibited (except the small PGP type). Advertising is prohibited (except for announcements of new Ruby-related products). END CHARTER. 2.2 Tell me about the prolific Matz poster. Matz (aka Yukihiro Matsumoto) is the wizard who created Ruby for us, so be nice to him. He is very busy, so be patient when asking questions. See the Ruby home page to find out more about him and his work. I founded comp.lang.ruby at his suggestion. Contrary to lots of skepticism, it was approved on the first attempt, with 200 yes votes. 2.3 Tell me the posting guidelines for comp.lang.ruby. (1) First of all, be considerate: don't be too lazy. If you are seeking information, first make a reasonable effort to look it up. As appropriate, check the Ruby home page, check the Ruby FAQ and other documentation, use deja.com to search past comp.lang.ruby postings, and so on. (2) Make the subject line maximally informative, so that people who should be interested will read your post and so that people who wouldn't be interested can easily avoid it. (a) Start with one of these keywords if appropriate: ANNOUNCE -- new Ruby code, docs, or URLs of interest. Bug -- report a definite bug. Job -- advertise a Ruby-related job. OT -- off topic. Problem -- any sort of problem with using Ruby. Product -- advertise a Ruby-related product. (b) *Usefully* describe the contents of your post: This is OK: "How can I do x with y on z?" "Problem: did x, expected y, got z." "Bug: doing x with module y crashed z." This is *NOT* OK: "Please help!!!" "Newbie question" "Need Ruby guru to tell me what's wrong" (3) Keep your content relevant and easy to follow. Try to keep your content brief and to the point, but also try to include all relevant information. (a) General format guidelines: - PLEASE NOTE! Include quoted text from previous posts *BEFORE* your responses. And *selectively* quote as much as is relevant. - Use *plain* text; don't use HTML, RTF, or Word. - Include examples from files as *in-line* text; don't use attachments. (b) If reporting a problem, give all the relevant information; this isn't the psychic friends newsgroup. When appropriate, include: - The version of Ruby. ("ruby -v") - The compiler name and version used to build Ruby. - The OS type and level. ("uname -a") - The actual error messages. - An example (preferably simple) that produces the problem. (c) If reporting a bug, please copy (cc:) your post to: mailto:ruby-bugs@ruby-lang.org This will enter your report into the Ruby bug database. You can browse the database at: http://www.ruby-lang.org/cgi-bin/ruby-bugs 3. Anything else? This FAQ was produced by Conrad Schneiker (schneiker@jump.net). I'm interested in corrections and suggestions, but remember that the purpose of this FAQ is to be a brief and simple introduction for new comp.lang.ruby readers. In closing, one of the reasons that Ruby was designed to be relatively simple, uniform, yet very powerful was to make serious programming (among other kinds) fun. We hope you will help us keep comp.lang.ruby fun as well. Enjoy. :-)