Title: Carl%20Zumbano%20and%20Sui%20Cheng
1Presented By Carl Zumbano and Sui Cheng
CS151 Object Oriented Programming May 10, 2001
2Ruby An Introduction
- Created by Yukihiro Matsumoto in 1993 (named
after his birthstone) - Inspired (in part) by Eiffel and Ada
- Pure OO language (even the number 1 is an
instance of a class) - Highly portable, works on Linux, UNIX, DOS,
Windows 95/98/NT/2K, Mac, etc.
3Ruby An Introduction
- Freely available and open-source.
- More popular than Python in Japan, probably b/c
it handles mutibyte character sets so easily. - Syntax is readable and easy to learn.
- Being used for text processing, web apps, general
system administration, and AI and math research.
4Ruby the Language
- No multiple inheritance, but modules allow the
importing of methods. - Has garbage collection.
- Exception handling, like Java.
- Any class or instance can be extended anytime
(even during runtime) - Allows operator overloading.
5Ruby the Language
- Can be extended with Ruby or low-level C.
- No type declaration.
- Has iterators, methods which accept blocks for
user-defined control structures (like loops) - Emacs, TextPad, and Vim all have support
available for Ruby.
6Ruby A Demonstration
Person Class class Person attr_accessor name,
age def initialize(name, age) _at_name name
_at_age age.to_i end def inspect "_at_name
(_at_age)" end end Usage of the class p1
Person.new('elmo', 4) p2 Person.new('zoe', 7)
Results p1 -gt elmo (4) p2 -gt zoe (7)
7Ruby A Demonstration
Now lets take a look at Ruby in action
8Ruby Vs Java / C
- Ruby
- Ruby.length
- -5.0.abs
- C / Java
- strlen(Ruby)
- s.length()
- abs(-5.0)
- number Math.abs(number)
9Advantages using Ruby against Java and C
- Allow pass by code block
- Support Regular Expression
- Cleaner code
- No need to declare variables
- Simple syntax (semi-colon is optional)
- Every thing is an object, even a number. No need
to call separate function. - Simple object get/set methods declaration
10Advantages (continue)
- Classes and modules are never closed.
- Better Access Control
- Dynamic access control
- Private methods never accessible directly by
another object - Portable and extensible with third-party library
- Interactive environment
11Disadvantages using Ruby against Java and C
- No multiple inheritance
- However, Ruby offers multiple-inheritance-like
capabilities - Ruby is a scripting language
- However, Ruby can access to OS features, do same
thing as Perl and Python - Different syntax and method definition style
- Return statement is optional
- Use of expression interpretation
- Braces not needed in control statements (if,
while) - Instance variable must preceded by _at_
12Disadvantages (continue)
- Potential thread starvation in multi-threading
- Use in-process thread non-native
- However, it is lightweight and efficient
13Closing
- Free download for Unix/Windows
- Applications includes
- X11 window manager, GUIs, managing server
machines and databases. - Want to know more
- Visit http//www.ruby-lang.org
14Ruby References
- The Ruby Programming Language by Yukio Matsumoto
Addison Wesley Professional, 2000. - Programming Ruby A Pragmatic Programmer's Guide
by David Thomas and Andrew Hunt Addison-Wesley
Pub Co, 2000.