comp.lang.ruby
The Ruby programming language.
comp.lang.ruby was the English-speaking front door of Ruby in the years when the language was crossing over from Japan — the mailing list and the newsgroup were gatewayed, so Matz and the core developers answered here directly.
The archive spans the pre-Rails era: idiom debates, early gems, and the evangelising blog posts of 2001-era converts — one of which, on a Tripod blog, still links this page.
On this page
The group and its era
Ruby was already several years old by the time its English-speaking readers were given a newsgroup. Yukihiro Matsumoto announced version 0.95 of the language on Japanese domestic newsgroups on 21 December 1995, alongside the ruby-list mailing list, and for the rest of the decade the centre of gravity stayed in Japanese. An English-language home page and the Ruby Application Archive followed in 1998, and the English-language ruby-talk list in 1999. comp.lang.ruby came last: proposed by Conrad Schneiker at Matsumoto’s suggestion, it went to a Big-8 ballot that closed on 20 April 2000 and carried on its first attempt, 200 votes to 16, with the group approved in the first days of May.
The newsgroup and the list did not start out as one conversation. They diverged from the moment the group was created and ran apart for about a year, until in mid-2001 Dave Thomas built a two-way gateway between them — some two hundred lines of Ruby — after which a message sent to either appeared in the other. That is why the ruby-talk archive holds most of the newsgroup’s traffic from mid-2001 onwards, and why reading the group means reading the mailing list too.
The years the news2mail gateway ran, 2000 to 2004, were almost exactly the years in which Ruby stopped being a Japanese language with foreign admirers. By early 2002 ruby-talk was carrying more messages than the older Japanese ruby-list. Anyone arriving from an English-language weblog of that period — the sort of 2001 enthusiast post that sent readers here in the first place — was arriving at the moment the balance tipped.
Behind that tipping point sat a structural oddity: one language, two mailing lists and two readerships. ruby-list, in Japanese, had run since the 0.95 release; ruby-talk, in English, since 1999; comp.lang.ruby hung off the English one and mirrored only that side. For a reader arriving in 2001 the group was therefore both very close to the language’s centre — its designer read it — and one remove from a great deal of conversation that was still taking place in another language.

What was discussed
The defining feature of the group was the shortness of the line to the people who wrote the language. Because list and newsgroup were mirrored, a beginner’s question about iterators could be answered in the same thread by the language’s designer or a core committer, often writing in a second language. That was an unusually direct line to a language’s author, and the group’s manners reflected it: patience with newcomers was close to a house rule, and the ethos was later condensed into the community initialism MINASWAN — Matz is nice and so we are nice.
Much of the rest was the ordinary business of a language group. Idiom threads: how a thing was properly done in Ruby rather than translated out of Perl or Python. Comparison arguments, of which the most durable was whether Ruby was best understood as a better Perl or as a practical Smalltalk — a question its own designer had effectively answered by drawing on both, along with Lisp, Eiffel and Ada. Blocks and iterators were the feature converts wrote home about.
Alongside that ran the structural traffic that every comp.lang.* group carried: release announcements, notices of new libraries with a pointer to the Ruby Application Archive, portability reports from whichever Unix or Windows build had just failed, requests for review of somebody’s first extension, and bug reports with patches attached — a newsgroup thread serving as the issue tracker a young project did not yet have. Programming Ruby by Dave Thomas and Andy Hunt, the ‘Pickaxe’, was the first English-language book on Ruby, and it became the standard reference for readers who had no Japanese.
The documentation gap ran the same way round. Matsumoto and Keiju Ishitsuka published the first book on Ruby in Japan in October 1999, and something like twenty further Japanese titles followed in the early 2000s; the English shelf held the Pickaxe and not a great deal beside it. Part of what the group did was therefore translation in the loose sense — restating in English things already settled elsewhere, for readers who had no way of going to check.
Versions, gems and where the code lived
The group ran on two release lines. The 1.6 series carried it through the early years — 1.6.7 is dated 1 March 2002 — and 1.8.0 arrived on 4 August 2003, during the years the news2mail gateway ran. What made 1.8 matter is that it then stayed put: it was the stable base for the rest of the newsgroup’s active period and for a decade after it, retired only in June 2013. It was also the version that was written down as a standard, accepted as a Japanese Industrial Standard in 2011 and as ISO/IEC 30170 in 2012. Code posted to the group in those years is 1.6 or 1.8 code, written before the 1.9 line existed.
Distribution was the other constant. The Ruby Application Archive, which Matsumoto had launched alongside the English home page in 1998, was where a finished library went, and a posting to the group was how people learned it was there; the RAA was kept running until 2013, when its function passed to RubyGems. In the years before a package manager, an answer to ‘where do I get it’ was a URL and a tarball, and the group carried a great many of both.
Project hosting came next. RubyForge was started in 2003 by Ruby Central to give open-source Ruby projects a home of their own. Its closure was announced on 10 November 2013, with the site to be unavailable from 15 May 2014, so anything in the archive that pointed at it no longer resolves — one of the ordinary ways in which an old newsgroup thread stops being usable long before it stops being readable.
RubyGems, the packaging system that outlasted both, was begun in November 2003 and released to the public on 14 March 2004, the work of Chad Fowler, Jim Weirich, David Alan Black, Paul Brannan and Richard Kilmer. It was not part of Ruby itself at the time and was bundled with the standard distribution only from 1.9, so through the newsgroup’s last years gems were one option among several rather than the way things were done.
Conferences and the community’s own writing
The community was also making things that were not code. The first RubyConf was held in 2001, three years before Rails; its organisers, among them David Alan Black and Chad Fowler, founded Ruby Central shortly afterwards to run the conference as a standing institution, and an annual RubyConf has been held since 2002. That is a useful corrective to the usual account of the period: the people writing the libraries, the books and the packaging system were already meeting in person while the newsgroup and its list were still the main written channel between them.
One thing the community made in those years travelled a long way beyond it, and it was not a manual. Why’s (poignant) Guide to Ruby, written and drawn by the programmer who signed himself why the lucky stiff, was on the web by early 2004, free to read and licensed Creative Commons Attribution-ShareAlike. It taught the language in the company of cartoon foxes and a large black cat, with digressions and running jokes that became community property. Its reputation travelled beyond Ruby: chapter three was reprinted the following year in The Best Software Writing I, an anthology edited by Joel Spolsky.

Context
A language earned a comp.lang.* group by argument and ballot, under the deliberate creation process the comp.* hierarchy inherited from the Great Renaming. That made the namespace a rough census of which languages had reached a working readership, and it made each group the same kind of institution: a single public room for idiom, portability, library announcements and bug triage, read by implementers and users at once. Ruby joined a street whose older addresses — comp.lang.c, comp.lang.perl.misc, comp.lang.python — had been settled for years.
What ended the arrangement was success. Ruby on Rails, released as open source in July 2004 and reaching version 1.0 in December 2005, brought in newcomers on a scale a single general-purpose group was not built for, and brought them in through the web rather than through a newsreader. Framework mailing lists, forums, weblogs and later code-hosting sites took the traffic; the newsgroup thinned, while the gatewayed list continued.
The record that remains is therefore a narrow and unusually clear one: an English-language language community in the four or five years before it became a large one, with the designer in the room. The surviving archive is patchy in the way all Usenet archives are, and the postings made before the gateway was built sit only on the newsgroup side of the mirror.
One room, and a citable one
What a comp.lang.* group did that nothing after it reproduced is easy to state and hard to rebuild. It was a single room. Release announcements, beginners’ questions, patches, portability failures and design arguments all arrived in the same place and in one thread order, and everyone who cared read the same copy. There was no invitation and no login, and the designer, the implementers and somebody in their first week of the language were subscribed to an identical stream.
It was also citable. Every article carried a Message-ID and passed into archives that other people kept, so a message could be quoted, dated and pointed at years later — which is why accounts of Ruby’s early history are still footnoted to individual list and newsgroup postings. The venues that took over after 2005 — forums, weblogs, question-and-answer sites, issue trackers — were better at most of the individual jobs and worse at that one. The record scattered across services with different lifespans, and the single ordered public transcript did not survive the move.
Reading comp.lang.ruby today
- Historical archive: Google Groups — comp.lang.ruby (coverage varies by group and era).
- Open in a newsreader:
news:comp.lang.ruby— the original site offered exactly this link, and it still works if your system has a newsreader registered for thenews:scheme. - Live access: point an NNTP newsreader at a modern server — see accessing Usenet today.
- The original news2mail e-mail subscription service ended in the mid-2000s and no longer operates.