Version 38 of Ruby

Updated 2008-01-16 21:42:36 by dkf

From the FAQ [1 ] (escargo 16 Jan 2008 - This gives a file not found error.):

“Ruby is a simple and powerful object-oriented programming language, created by Yukihiro Matsumoto (who goes by the handle "matz" in this document and on the mailing lists).

“Like Perl, Ruby is good at text processing. Like Smalltalk, everything in Ruby is an object, and Ruby has blocks, iterators, meta-classes and other good stuff.

“You can use Ruby to write servers, experiment with prototypes, and for everyday programming tasks. As a fully-integrated object-oriented language, Ruby scales well.”

RLH Scales well? In what way?

Ruby doesn't have true threads and is known to have performance issues, a quote from a rant of a long-time Ruby user [2 ] notes about RoR:

“The main Rails application that DHH created required restarting _400 times/day. That's a production application that can't stay up for more than 4 minutes on average.”

The home page for Ruby is

Its most articulate advocates write such descriptions as,

“... it has a couple of real killer features; in particular the way blocks and the pervasive use of the visitor pattern come together change the way one writes programs for the better.”

A lot of the attention Ruby has gotten lately is due to Ruby on Rails[3 ].

During Oct 2007, [4 ] was making "Build Your Own Ruby on Rails Web Applications" available in PDF format for free...

This author summaries Rail's guiding principles as:

  • convention over configuration (assumptions for defaults rather than requiring extensive initial configuration) [5 ]
  • DRY
  • agile development

There is a Ruby/Tk if you want to bring your Tk skills into a new world:

  require 'tk'
  root = { title "Hello, world!" }

(from [7 ]) More on Ruby/Tk (for MacOS!) appears in the "Ruby/Tk Primer: Creating a cron GUI Interface with Ruby/Tk" [6 ].

 What: Ruby
 Description: Programming language for quick and easy programming.
        A clean, consistent language design where everything is an object,
        CLU style iterators, singleton classes/methods, and
        lexical closures.  Makes use of Tk (with bindings similar in
        concept to Perl/Tk) for its GUI support.
        Currently at version 1.8.4 .
 Updated: 08/2003
 Contact: mailto:[email protected]  

See [9 ] for more information. (escargo 16 Jan 2008 - This gives a file not found error. This link [8 ] is about Ruby Tk.)

This [10 ] review of Ruby Cookbook tries to give a sense for how Ruby feels.

RS: Like Scheme, Ruby has arbitrary-size integers as default - another hint that Tcl should have it too... Octet-packed integers come to mind..

AK: I consider the Octet-packed integers more something of a file-format, and less of an in-memory format. Note aside: In Slim Binaries I refer to the paper about Universal Symbol Files. This paper advances the notion of octet-packed integers too, albeit slightly differently than metakit if I read the code right. - RS: Well, a very simple alternative would be to just keep the string rep and let expr work on that if it runs into a "integer value too large to represent".

See [11 ] for one comparison of Ruby to C++, CLOS, Dylan, Java, Objective C, Perl, PHP, Python, Smalltalk,

Ruby vs Tcl: