JAX 08: Ruby - Programming Language of the Future

by Thomas Bahn,
assono GmbH, Standort Kiel,


A picture named M2

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 smile.gif )

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

Event Technical article JavaScript Other

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Do you want an individual solution? Contact us

More interesting entries

Any questions? Contact us.

If you want to know more about our offers, you can contact us at any time. There are several ways to contact us for a non-binding first consultation.

We don’t sell your data. 100% guaranteed. See: Privacy Policy
assono GmbH

Location Kiel (headquarters)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Location Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Phone numbers:
Human resources department: +49 4307 900 407
Marketing department: +49 4307 900 402

E-Mail adresses:
contact@assono.de
bewerbung@assono.de