Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Thu, 10 Jul 2003
Yukihiro Matsumoto: "The Power and Philosophy of Ruby"
Matz, the author of Ruby talked about the philosophy that he used to design Ruby He told us he was inspired by Samuel R. Delany's babel-17, which described an artificial language that was so powerful that it could brainwash its users. Some of his key ideas:
  1. Choosing good names
    If you give a good name for a concept 80% of design is done already. We have to care about every name we name (progs, files, mods, vars...)
  2. Understanding humanity
    Man is not a machine. If you are a machine you can just talk to the machine directly (imagine modem carrier negotioation sounds). The history of languages is the history of abusing (machine) power.

    Build a stress graph of languages. Total stress (area under the curve) is important, but maximum stress at any given point is important too.

    When you see repeated errors, you have to do something. Consistency helps to form common sense. Creativity is hindered by arbitrary restriction

    Simplicity is NOT a goal: Things too simple are difficult and Things too complex are difficult

    Principle of succinctness: Fred Brooks - people can generate the same number of lines of code per day, regardless of language

  3. Embedding Hidden Messages
    There's more than one way to do it, but language can encourage one by making it more comfortable than others. Examples from Ruby:
    • Ruby supports mixins not multiple inheritance, hidden message: multiple inheritance is bad.
    • Ruby has global variables but you must prefix them with $. Code with too many $'s is ugly, indicating a problem with your code.
    • Dangerous methods have ! in name, because of side effects. This forces you to recognize that you are doing something side-effecting.
[16:50] | [computers/programming] | # | TB | F | G | 0 Comments | Other blogs commenting on this post
You can subscribe to an RSS feed of the comments for this blog: RSS Feed for comments

Add a comment here:

You can use some HTML tags in the comment text:
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are: <a href>, <em>, <i>, <b>, <blockquote>, <br/>, <p>, <code>, <pre>, <cite>, <sub> and <sup>.

You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk





Remember my info?

twl JPG


Ted Leung FOAF Explorer

I work at the Open Source Applications Foundation (OSAF).
The opinions expressed here are entirely my own, not those of my employer.

Creative Commons License
This work is licensed under a Creative Commons License.

Now available!
Professional XML Development with Apache Tools : Xerces, Xalan, FOP, Cocoon, Axis, Xindice
Technorati Profile
PGP Key Fingerprint
My del.icio.us Bookmarks
My Flickr Photos

RSS 2.0 xml GIF
Comments (RSS 2.0) xml GIF
Atom 0.3 feed
Feedburner'ed RSS feed

< July 2003 >
   1 2 3 4 5
6 7 8 9101112


Macintosh Tips and Tricks

Blogs nearby
geourl PNG

/ (1567)
  books/ (33)
  computers/ (62)
    hardware/ (15)
    internet/ (58)
      mail/ (11)
      microcontent/ (58)
      weblogs/ (174)
        pyblosxom/ (36)
      www/ (25)
    open_source/ (145)
      asf/ (53)
      osaf/ (32)
        chandler/ (35)
        cosmo/ (1)
    operating_systems/ (16)
      linux/ (9)
        debian/ (15)
        ubuntu/ (2)
      macosx/ (101)
        tips/ (25)
      windows_xp/ (4)
    programming/ (156)
      clr/ (1)
      dotnet/ (13)
      java/ (71)
        eclipse/ (22)
      lisp/ (34)
      python/ (86)
      smalltalk/ (4)
      xml/ (18)
    research/ (1)
    security/ (4)
    wireless/ (1)
  culture/ (10)
    film/ (8)
    music/ (6)
  education/ (13)
  family/ (17)
  gadgets/ (24)
  misc/ (47)
  people/ (18)
  photography/ (25)
    pictures/ (12)
  places/ (3)
    us/ (0)
      wa/ (2)
        bainbridge_island/ (17)
        seattle/ (13)
  skating/ (6)
  society/ (20)

[Valid RSS]

del.icio.us linkblog



Listed on BlogShares

Locations of visitors to this page
Where are visitors to this page?

pyblosxom GIF