Ruby
-
Upload
chabucaloca -
Category
Documents
-
view
217 -
download
0
description
Transcript of Ruby
Presented By
Carl Zumbano and Sui Cheng
CS151 – Object Oriented ProgrammingMay 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 Classclass 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 classp1 = Person.new('elmo', 4) p2 = Person.new('zoe', 7)
#Resultsp1 # -> elmo (4) p2 # -> zoe (7)
Ruby: A Demonstration
Now let’s take a look at Ruby in action…
Ruby Vs Java / C++
• Ruby– “Ruby”.length
– -5.0.abs
• C++ / Java– strlen(“Ruby”);
– s.length();
– 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 multi-threading– 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.