150 likes | 465 Views
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)
E N D
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 “Ruby”.length -5.0.abs C++ / Java strlen(“Ruby”); s.length(); abs(-5.0); number = Math.abs(number); Ruby Vs Java / C++
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.