Site Suche

Site menu:

 

open all | close all

 

Archiv


Ich höre gerade
@ 06.01.09 00:30:


Tangerine Dream
Mojave Plan

White Eagle

Frischzellenkur: Ruby für CLR und JVM

21. November 2006 von Lars Schenk

Seit Ruby von David Heinemeier Hansson auf Schienen gesetzt wurde ist die Programmiersprache Ruby mega hip - siehe auch Tiobe Programming Community Index - November Headline: Ruby is rocketing skywards.

Zwar steht der Ruby Interpreter für alle wichtigen Plattformen zur Verfügung - aber ich würde ungerne einen Interpreter einsetzen, der neben der langsameren Ausführung des Codes auch die Herausgabe des Quellcodes zwingend erforderlich macht. Und mit RubyScript2Exe steht ja auch kein echter Compiler zur Verfügung. Zwar gibt es mit YARV ein Projekt für eine Ruby-VM, aber es erscheint mir viel eleganter statt einer eigenen Ruby VM oder diverser Ruby-Compiler für verschiedene Plattformen nur Ruby-Compiler zu haben, die die gängigen VM wie die Java VM oder die Common Language Runtime (CLR) von .NET. bedienen und damit auch gleich einen Brückenschlag in diese Welten ermöglichen.

Microsoft stellt dafür den Softwareentwickler John Lam zum Januar 2007 ein, der hinter RubyCLR steht. Damit soll Ruby für die CLR von .NET verfügbar gemacht werden. Ein ähnliches Projekt finde ich unter Ruby.NET in einer frühen Beta-Phase. Letzteres erfordert .NET ab Version 2 und läuft damit nicht unter dem aktuellen Mono.

Auf der anderen Seite hat Sun zwei kompetente Entwickler aus der Open-Source Gemeinde hinzugewonnen und so tüfteln Charles Oliver Nutter und Thomas Enebo nun für Sun Microsystems an dem Java basierten Interpreter JRuby herum, der neben der Ausführung von Ruby Code in der JVM auch die Integration mit Java Code ermöglicht. Derzeit gibt es nur den Java basierten Interpreter - ein bytecode Compiler ist aber in Arbeit. Mit JRuby kann man also auf das Java Universum zurückgreifen und z.B. plattformübergreifende Desktop Anwendungen auf Basis von Swing erstellen:

RUBY:
  1. # Import Java packages
  2. require 'java'
  3.  
  4. JFrame = javax.swing.JFrame
  5.  
  6. frame = JFrame.new("Hello Swing")
  7. button = javax.swing.JButton.new("Klick Me!")
  8.  
  9. class ClickAction <java.awt.event.ActionListener
  10.   def actionPerformed(evt)
  11.     javax.swing.JOptionPane.showMessageDialog(nil, "<html>Hello from <b><u>JRuby</u></b>.<br> Button '#{evt.getActionCommand()}' clicked.")
  12.   end
  13. end
  14. button.addActionListener(ClickAction.new)
  15.  
  16. # Add the button to the frame
  17. frame.getContentPane().add(button)
  18.  
  19. # Show frame
  20. frame.setDefaultCloseOperation(JFrame::EXIT_ON_CLOSE)
  21. frame.pack()
  22. frame.setVisible(true)

Darüberhinaus gibt es auch schon Bemühungen SWT mit JRuby zu nutzen oder JRuby unter OS X als einfaches Deployment Modell für GUI Anwendungen zu nutzen.

Interessant wird es auch noch sein, wie das ganze dann ggf. noch mit Trolltechs Qt Jambi zusammen geht oder ob man gleich QtRuby via JRuby nutzen kann.

Der Beitrag wurde am Dienstag, den 21. November 2006 um 15:09 Uhr von Lars Schenk veröffentlicht. Sie können die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. Sie können einen Kommentar schreiben, oder einen Trackback auf Ihrer Seite einrichten.

Kategorie: Miscellaneous
Tags:
Social Bookmarks Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • Digg
  • del.icio.us
  • Google Bookmarks
  • YahooMyWeb
  • Webnews
  • StumbleUpon
  • Folkd
  • Furl
  • Live-MSN
  • Slashdot
  • Y!GG
  • Bloglines
  • Technorati
  • Linkarena
  • MisterWong
  • Ask
  • Facebook
  • TwitThis

Einen Kommentar schreiben