Stefan Tilkov:
Ruby
? die Programmiersprache der Zukunft
(Ruby
? Programming Language of the Future)
Why Ruby?
- it's different
- it supports growth
- it's expressive
- it's concise
- we can afford it
- Rails!
- it's fun
Quick Intro
- Type system: dynamic, strong, implicit
- interpreted (mostly...)
- very dynamic
- strong metaprogramming support
- purely object-oriented
code examples...
- loops
- lists and operations on lists
- hashes
comparison von Java code and Ruby code
to sort an array by lenght of elements
- methods
- classes
#{variableName} in string literals is
replaced by the variable's value
- inheritance
- modules (kind of container for methods)
- "getters" and "setters" (properties!)
- Attribute Accessor: short cut for properties (nice )
Metaprogramming with Ruby
Structures
Struct.new "Person", :first_name,
:last_name creates new class
Creating objects and classes by name
Kernel.const_get('String').new "Teststring"
creates String object
Test = Class.new
Indivual object methods
class << t1
def
object_method ...
Classes and constants
Runtime Definitions
Methods adding methods
Adding methods to existing classes like
String: (Re)opening classes
method_missing: Method called, when
a missing method is called, with name of called method as argument
short, declarative notation is "expanded"
to many method definitions
Ruby language implemenations
- MRI = Matz's Ruby Interpreter
- YARV = Yet anthother Ruby VM
- Rubinius: "Ruby in Ruby"
- JRuby: "Ruby in Java"
Ruby vs. other dynamic languages
Perl
- many libraries
- "write only" reputation
- weak (wierd) OO features
- very fast
Python
- great community
- extensive libraries
- extremely fast
Jython
- JVM version of Python
- neglected for a long time
- now supported by Sun
Groovy
- designed for the JVM
- supposedly easier for Java developers
Summary
Ruby: nice, concise, object-oriented
language
Killer feature: metaprogramming support
Killer framework: Ruby on Rails