Download Ruby - OpenLoop.com

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Presented By
Carl Zumbano and Sui Cheng
CS151 – Object Oriented Programming
May 10, 2001
Ruby: 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.
Ruby: 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.
Ruby: 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.
Ruby: 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.
Ruby: A Demonstration
#Person Class
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age.to_i
end
def inspect
"#@name (#@age)"
end
end
#Usage of the class
p1 = Person.new('elmo', 4)
p2 = Person.new('zoe', 7)
#Results
p1 # -> elmo (4)
p2 # -> zoe (7)
Ruby: A Demonstration
Now let’s take a look at Ruby in action…
Ruby Vs Java / C++
• Ruby
• C++ / Java
– “Ruby”.length
– strlen(“Ruby”);
– s.length();
– -5.0.abs
– abs(-5.0);
– number =
Math.abs(number);
Advantages 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
Advantages (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
Disadvantages 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 “@”
Disadvantages (continue)
• Potential thread starvation in multithreading
– Use in-process thread [non-native]
– However, it is lightweight and efficient
Closing
• 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
Ruby: 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.