Ruby (Programmiersprache): Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Keine Bearbeitungszusammenfassung |
||
Zeile 3: | Zeile 3: | ||
=Geschichte= | =Geschichte= | ||
Ruby wurde in Japan von Yukihiro "Matz" Matsumoto entwickelt und 1995 in der ersten Version veröffentlicht. | Ruby wurde in Japan von Yukihiro "Matz" Matsumoto entwickelt und 1995 in der ersten Version veröffentlicht. | ||
=Interpreter= | |||
Abgesehen vom Original-Interpreter MRI (Matz-Ruby-Interpreter) gibt es inzwischen Portierungen für Java ([[JRuby]]) oder .NET (IronRuby). Damit lassen sich mit Ruby alle Klassen und Bibliotheken der zugrunde liegenden Plattform verwenden. | |||
=Integration= | |||
Die Integration von [[JRuby]] geht sogar so weit, dass sich mit [[Ruby on Rails]] JEE-konforme Webanwendungen entwickeln lassen, die man in einem JEE-Container deployen kann. Noch bessere Bytecode-Kompatibilität für Java bietet [[Groovy]]. | |||
= Features = | = Features = | ||
* plattformübergreifend verwendbar | * plattformübergreifend verwendbar | ||
* strenges objektorientiertes Prardigma: Alle Datentypen sind Objekte (auch Primitive) | * strenges objektorientiertes Prardigma: Alle Datentypen sind Objekte (auch Primitive) | ||
* Unterstüzung von regulären Ausdrücken auf Sprachebene | * Unterstüzung von regulären Ausdrücken auf Sprachebene | ||
* Automatisches Garbage Collection | * Automatisches Garbage Collection | ||
* Metaprogrammierung | |||
* Packetmanager [[RubyGems]] | * Packetmanager [[RubyGems]] | ||
Zeile 65: | Zeile 71: | ||
=> ["a", "b", 2, "z"] | => ["a", "b", 2, "z"] | ||
</source> | </source> | ||
Metaprogrammierung: | |||
<source lang="ruby"> | |||
</source> | |||
JRuby: Verwendung von Swing mit JRuby | |||
<source lang="ruby"> | |||
require "java" | |||
frame = javax.swing.JFrame.new() | |||
frame.setSize 200, 200 | |||
frame.add javax.swing.JLabel.new("hallo welt") | |||
frame.setVisible true | |||
</source> | |||
= Quellen = | = Quellen = | ||
*[http://www.ruby-lang.org/ Ruby-Website] | *[http://www.ruby-lang.org/ Ruby-Website] | ||
* Armin Roehrl und Stefan Schmiedl (2004): Big in Japan. Linux-Magazin Sonderheft Scripting Edition, Linux New Media AG | * Armin Roehrl und Stefan Schmiedl (2004): Big in Japan. Linux-Magazin Sonderheft Scripting Edition, Linux New Media AG | ||
* [http://jruby.codehaus.org JRuby] | |||
* [http://groovy.codehaus.org Groovy] | |||
=Siehe auch= | =Siehe auch= |
Version vom 9. Juli 2009, 11:33 Uhr
Definition
Ruby ist eine objektorientierte Skriptsprache, die Syntaxelemente von Perl mit Features von Smalltalk kombiniert.
Geschichte
Ruby wurde in Japan von Yukihiro "Matz" Matsumoto entwickelt und 1995 in der ersten Version veröffentlicht.
Interpreter
Abgesehen vom Original-Interpreter MRI (Matz-Ruby-Interpreter) gibt es inzwischen Portierungen für Java (JRuby) oder .NET (IronRuby). Damit lassen sich mit Ruby alle Klassen und Bibliotheken der zugrunde liegenden Plattform verwenden.
Integration
Die Integration von JRuby geht sogar so weit, dass sich mit Ruby on Rails JEE-konforme Webanwendungen entwickeln lassen, die man in einem JEE-Container deployen kann. Noch bessere Bytecode-Kompatibilität für Java bietet Groovy.
Features
- plattformübergreifend verwendbar
- strenges objektorientiertes Prardigma: Alle Datentypen sind Objekte (auch Primitive)
- Unterstüzung von regulären Ausdrücken auf Sprachebene
- Automatisches Garbage Collection
- Metaprogrammierung
- Packetmanager RubyGems
Ruby Shell
Bei jeder Ruby-Installation ist eine Shell enthalten. Die „irb“-Shell („Interactive Ruby“) kann verwendet werden, um schnell und einfach Ausdrücke zu testen.
Beispiele
Integer:
irb(main):001:0> n = 2 * 3 + 2
=> 8
irb(main):002:0> n.class
=> Fixnum
String:
irb(main):001:0>n = "Hallo " * 3
=> "Hallo Hallo Hallo"
irb(main):002:0> n.class
=> String
irb(main):003:0> n[0,5]
=> "Hallo
Schleifen:
irb(main):001:0> a = 0
=> 0
irb(main):002:0> 1.upto(5) do |i| a = a + i end
=> 1
irb(main):003:0> a
=> 15
Listen und Iterator:
irb(main):001:0> a = [ "a", "b", 2, "z", "21" ]
=> ["a", "b", 2, "z", "21"]
irb(main):002:0> a.pop
=> "21"
irb(main):003:0> a
=> ["a", "b", 2, "z"]
irb(main):004:0> a.each do |c| puts c.class end
String
String
Fixnum
String
=> ["a", "b", 2, "z"]
Metaprogrammierung:
JRuby: Verwendung von Swing mit JRuby
require "java"
frame = javax.swing.JFrame.new()
frame.setSize 200, 200
frame.add javax.swing.JLabel.new("hallo welt")
frame.setVisible true
Quellen
- Ruby-Website
- Armin Roehrl und Stefan Schmiedl (2004): Big in Japan. Linux-Magazin Sonderheft Scripting Edition, Linux New Media AG
- JRuby
- Groovy
Siehe auch
Bitte die Regeln der GlossarWiki-Quellenformatierung beachten.