# Quality of Ruby Implementation?

**URL:** <https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139>\
**Category:** Ruby\
**Created:** [November 30, 2005, 5:10pm UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139 "2005-11-30T17:10:49Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [November 30, 2005, 5:10pm UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/1 "2005-11-30T17:10:49Z")

</div>

Much of the discussion concerning Ruby focuses on the language itself  
and on how enjoyable it is to program in. I’m still a Ruby novice but  
I agree with these sentiments. However, I have not heard much  
discussion about the quality of the Ruby VM implementation. How  
good/mature/production ready is it? So far I’ve used it for simple  
development tasks/utilities but not in production.

---

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [December 2, 2005, 3:14am UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/2 "2005-12-02T03:14:47Z")

</div>

I was wondering why noone responded (besides the fact that I mistakenly  
asked about the quality of the Ruby VM when its actually an  
interpreter)? I considered the question an earnest one and did not  
intend to be trolling.

Interestingly, Avi Bryant has a post on his blog  
([http://smallthought.com/avi/?p=8](http://smallthought.com/avi/?p=8)) suggesting that Cincom make it  
possible to run Ruby in their Smalltalk VM.

Gary Blomquist

---

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [December 2, 2005, 3:26am UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/3 "2005-12-02T03:26:54Z")

</div>

GJB wrote:

> I was wondering why noone responded (besides the fact that I mistakenly  
> asked about the quality of the Ruby VM when its actually an  
> interpreter)? I considered the question an earnest one and did not  
> intend to be trolling.

Timing? Most posts, (even trolls 🙂 ) get a prompt response on this  
list, but every so often a message just gets lost in a swirl of threads  
and off-list activity.

Offhand, I’d say that after 13 years of development the Ruby interpreter  
is pretty robust.

## James

[http://www.ruby-doc.org](http://www.ruby-doc.org) - Ruby Help & Documentation  
[Ruby Code & Style](http://www.artima.com/rubycs/) - Ruby Code & Style: Writers wanted  
[http://www.rubystuff.com](http://www.rubystuff.com) - The Ruby Store for Ruby Stuff  
[http://www.jamesbritt.com](http://www.jamesbritt.com) - Playing with Better Toys  
[http://www.30secondrule.com](http://www.30secondrule.com) - Building Better Tools

---

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [December 2, 2005, 4:27am UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/4 "2005-12-02T04:27:40Z")

</div>

From: “GJB” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> I was wondering why noone responded (besides the fact that I mistakenly  
> asked about the quality of the Ruby VM when its actually an  
> interpreter)? I considered the question an earnest one and did not  
> intend to be trolling.

Not sure what particular measure of quality you were asking  
about - but for what it’s worth, I run some multi-user quake  
server admin software written in Ruby that consistently operates  
for hundreds of days of uptime, until I eventually reboot the  
server or quit the application intentionally.

It uses TCP and UDP networking, and keeps a fairly large dynamic  
in-memory data structure (100 megs or so)… I also dynamically  
reload code modules without quitting the application on a periodic  
basis, when adding simple new features or making bug fixes.

I’ve been pleased with Ruby’s stability so far, if that helps.

Regards,

Bill

---

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [December 2, 2005, 5:04am UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/5 "2005-12-02T05:04:01Z")

</div>

On Dec 1, 2005, at 7:23 PM, Bill K. wrote:

> It uses TCP and UDP networking, and keeps a fairly large dynamic  
> in-memory data structure (100 megs or so)… I also dynamically  
> reload code modules without quitting the application on a periodic  
> basis, when adding simple new features or making bug fixes.

Hi Bill,

Just wondering if you’re able to share more about your application?  
It sounds interesting.

Thanks,  
Steve

---

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [December 2, 2005, 10:13am UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/6 "2005-12-02T10:13:21Z")

</div>

Hi,

In message “Re: Quality of Ruby Implementation ?”  
on Fri, 2 Dec 2005 11:12:32 +0900, “GJB” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|I was wondering why noone responded (besides the fact that I mistakenly  
|asked about the quality of the Ruby VM when its actually an  
|interpreter)? I considered the question an earnest one and did not  
|intend to be trolling.

Maybe because we are not sure about your criteria of quality. Besides  
that, I didn’t want to be self-compliment.

```
						matz.

```

---

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [December 2, 2005, 7:25am UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/7 "2005-12-02T07:25:54Z")

</div>

Hi Stephen,

From: “Stephen W.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> > It uses TCP and UDP networking, and keeps a fairly large dynamic  
> > in-memory data structure (100 megs or so)… I also dynamically  
> > reload code modules without quitting the application on a periodic  
> > basis, when adding simple new features or making bug fixes.
> 
> Just wondering if you’re able to share more about your application?  
> It sounds interesting.

Thanks - well, technically there’s a rubyforge project:  
[http://rubyforge.org/projects/dorkbuster/](http://rubyforge.org/projects/dorkbuster/)  
But the documentation is very meager / nonexistent.

Also, I’ve learned a bit about Ruby since I first wrote it,  
so I wouldn’t recommend some parts as shining examples of  
good idiomatic ruby code; especially the parts using threads  
and mutexes. (Some modules could be simplified quite a bit.)

I’d design some parts of it rather differently if I were to  
do it over. . . . Etc.

Pragmatically speaking, though, it works. 🙂 Multiple admins  
are logged into it at any given time to monitor server activity  
and watch out for cheaters. We’ve been using it for about three  
years now.

A brief overview of what it is/isn’t:

- Allows multiple admins to log in over telnet and monitor  
quake 2 servers, and issue bot scans and rcon commands  
without admins knowing the actual server rcon password.

- Provides an optional “windowed” interface using ANSI  
telnet scrolling regions, and supports line editing and  
command history. (No tab-completion, yet.)  
Windows show admin chat, live server status, and raw  
server log data.

- Keeps a database linking player names to player IP’s,  
and shows a sorted list of most recently/frequently  
used names for each player connected.  
The database is currently stored in-memory (checkpointed  
to disk on a periodic basis), and can get quite large.  
I’ve intended to switch over to a traditional database  
engine (sqlite/mysql/postgresql).

- Provides hooks for “droids” (like IRC bots) to connect  
to the admin system and provide additional functionality,  
such as bot scans or running player-driven map rotations.  
(The map rotation droid is provided with the project.  
The bot scanners are private, as it’s difficult to stay  
ahead of the cheaters.)

- Currently, no _automatic_ cheat-detection scans are  
performed. (We use a third-party module on our servers,  
q2admin, to provide some level of cheat auto-detection.)  
Strange as it may sound, the lack of automated scans in  
dorkbuster is somewhat by design. I think the key reason  
dorkbuster is actually effective is the presence of  
multiple human admins monitoring the servers pretty  
much around the clock. So db’s design has been focused  
on providing a collaborative environment for live admins.  
Some automated scans might be nice - but not if the result  
were to reduce the level of human participation. So we’ll  
proceed carefully. . . .

- As yet, no way to monitor multiple servers from a single  
telnet window. This is at the top of the to-do list.

Thanks for your interest. I’m happy to answer questions either  
on or off-list, as appropriate.

Regards,

Bill

---

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [December 2, 2005, 11:14am UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/8 "2005-12-02T11:14:30Z")

</div>

GJB wrote:

> 

The problem with your question is that we have no idea why you think  
that Ruby is not suitable for production. How is the quality of the VM  
lacking?

Ruby is used in production, there are big, well used systems written in  
Ruby. Which all goes to make you sound like a troll and would account  
for people ignoring you.

---

<div class="post-metadata">

**Author:** ![gjblomquist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c0e974/32.png) [@gjblomquist](https://www.ruby-forum.com/u/gjblomquist)\
**Post date:** [December 2, 2005, 5:53pm UTC](https://www.ruby-forum.com/t/quality-of-ruby-implementation/49139/9 "2005-12-02T17:53:21Z")

</div>

On Dec 1, 2005, at 10:23 PM, Bill K. wrote:

> Thanks for your interest. I’m happy to answer questions either  
> on or off-list, as appropriate.

Sounds cool Bill, thanks for sharing.

–Steve
