Team Corpsegrinder Victor Romero Calvin Chan Christian Hericks
Vamsi Rapaka Robert Viramontes
Slide 2
Outline Where Ruby was conceived What makes Ruby's philosophy
so unique What are the criteria for creating a computer language
What Matsumoto wanted to achieve What Ruby is used for today
Slide 3
Where Ruby was conceived
Slide 4
Ruby was created by Yukihiro Matz Matsumoto. He was born on
April 14, 1965. He was born in the Osaka Prefecture and later
raised in Tottori Prefecture. He received an information science
degree from the University of Tsukuba in Tokyo, Japan.
Slide 5
He was employed by the Network Applied Communication
Laboratory. It specializes in systems consulting and the
development of web sites and open source software. He has worked as
a computer scientist, a programmer and his current occupation is
author. Matsumoto named Ruby after the birthstone of one of his
colleagues.
Slide 6
The Timeline of Ruby Ruby 0.95 was the first version of Ruby.
Matsumoto began creating Ruby in 1993. In December 1995, Ruby 0.95
was released, and over the next few days from that date, three
other versions were released with minor improvements and changes.
Ruby 1.0 was the first version of Ruby that was released to the
public in December 1996. Ruby 1.3 was released in 1999. This was
the first version that started to be used outside of Japan.
Slide 7
The Timeline of Ruby In 2006, Ruby on Rails was released. Ruby
on Rails is a web application framework written entirely in Ruby.
With its release, Ruby on Rails helped the Ruby programming
language become very widely known around the globe. Ruby is now one
of the top ten programming languages. The first versions of Ruby
included garbage collection, classes with inheritance, iterators,
object oriented design, closures, exception handling, and mixins.
All of these features are still in the latest version of Ruby.
Slide 8
The Timeline of Ruby Ruby 1.9.1 is the latest stable version of
Ruby, which was released in January 2009. Ruby 1.9.3 is the latest
version of ruby, which was released in 2011. Ruby is also free, not
only free of charge, but also free to use, copy, modify, and
distribute.
Slide 9
What makes Ruby's philosophy so unique
Slide 10
Programming Philosophy Principle of Least Astonishment (POLA)
We are the masters, they are the slaves Matsumoto More attention to
the programmer than the machines
Slide 11
Flexibility of Ruby Essential parts can be removed or redefined
at anytime For example: The readable word plus can be used instead
of the usual (+) sign if one adds the word to Rubys built-in-
Numeric class. Language does not set many restrictions to its
users. Rubys blocks
Slide 12
Features -Ruby is highly portable: it is developed mostly on
GNU/Linux, but works on many types of UNIX, Mac OS X, Windows, etc.
-Writing C extensions in Ruby is easier than in Perl or Python
because of the API for calling Ruby from C. -Ruby features a true
mark-and- sweep garbage collector for all Ruby objects. There is no
need to maintain reference counts in extension libraries.
Slide 13
What are the criteria for creating a computer language What
Matsumoto wanted to achieve
Slide 14
Language Design Criteria Clarity Orthogonality Natural Use
Support for Abstraction Easy of Program Verification Programming
Environment Portability Cost of use
Slide 15
Matsumotos Goal more powerful than Pearl, and more object-
oriented than Python Simplicity/Power Balance functional
Programming with Imperative Programming
Slide 16
3 Goals: Minimum code necessary Follow common conventions No
limitation on layout flexibility
Reflection: Computer observes, and modifies its own behavior at
runtime Allows the computer to treat instructions as data Higher
Level Quality Meta-programming
Slide 19
Functionality Treats computation as the evaluation of
mathematical functions Avoids state/mutable data Prevents blind
factors
Slide 20
Imperative Programming Describes computation in terms of
statements that choose a program state Ruby seeks balance.
Slide 21
Object-Oriented Data structures containing data fields and
methods. Modern Default
Slide 22
Orthogonality Small primitive constructs, combines to build
control and data structures Harmony Debate
Slide 23
Expressions Functional Programming Enhances simplicity,
seamlessness, and base understandings
Slide 24
Ultimate Goals Productivity Prevent performance hang-ups
Succinct, compact and ease of use.
Slide 25
Uses of Ruby Text processing Prototypes Bulky, drawn out
applications CGI programming
Slide 26
What Ruby is used for today
Slide 27
5 Major Applications using Ruby Famous Web-Applications Twitter
Hulu White Pages Justin.TV Basecamp
Slide 28
One could change the world with 140 characters, @Jack
co-founder of Twitter. Twitter was created in March 2006 by Jack
Dorsey, first known as Twttr. Twttr was changed to twitter after
the founding group acquired Twitter.com Twitter has drastically
grown in members during a short period of time consequently this
has led to many problems with their server crashing. Ruby has been
the scapegoat for the crashes and downtime twitter has suffered. I
has been said Ruby has problems being the environment for long
lived processes because it has a poor garbage collector which leaks
memory over time. As a result, Twitter is being transitioned into
other languages such as Scala and Java Twitter
Slide 29
Hulu Hulu was launched to the public on March 12, 2008. Hulu
was part of a collaboration between Facebook, Yahoo, MSN and AOL.
Hulu had a total of 30 developers 15 took care of the software
while the other 15 did the promoting and business. Ruby was chosen
for Hulu because it is easier to program with. This would mean
fewer programmers and future technicians fixing problems. (Lower
maintenance costs)
Slide 30
White Pages White pages, the people search engine, was first
published online in 1996. In the year 2009 White pages announced it
would invest 2.5 million dollars to remodel itself including its
whole website. From here White pages adopted Ruby to its platform.
Within two weeks of testing the new Ruby platform White Pages saw a
51% performance increase in their website traffic and
membership.
Slide 31
Justin.TV Justin.TV was created in 2007 by Justin Ferrer,
Melinie Wu and Kyle Vogt. At first it was used by Justin Ferrer to
broadcast his life but he eventually made the website public and
allowed people to create channels. Justin.TV was designed with Ruby
on Rails as its platform The platform is designed to scale by
measuring real- time demand and replicating the streams into
additional servers This is to prevent one server from having too
much traffic and overloading
Slide 32
Basecamp Developed by a company called 37 Tools for their own
personal use Ruby was the language chosen by David Hansson Basecamp
was used for project management and it was so well built that other
companies started asking 37 Tools to sell it to them. Basecamp is a
web-application This is to some better than a desktop application
because desktop applications can only run on certain operating
systems while Web-apps can run on most web browsers. From Basecamp
Ruby on Rails was extracted by David Hansson Ruby on rails is a web
framework in which most of the websites previously mentioned run
on.