ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 47 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 11:45 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4872
Wohnort: RLP
Ehrlich gesagt bin ich auch gerade dabei, auf JRuby umzuschwenken. Die Begründung ist einfach: ich bin schlecht in C und sehr gut in Java. Meistens scheue ich mich davor, Funktionalität in C zu schreiben, weil ich mir in der Sprache nichts gutes zutraue. Das geht bestimmt anderen nicht anders.

Die Bindung an Java-Bibliotheken geht in JRuby halt einfach so viel einfacher als die Bindung an C in MRI. Obendrein hat es den großen Vorteil, dass auch "native extensions" plattformübergreifend sind und damit eine "pure ruby implementation" keinen Vorteil mehr hat.

Gruß
Skade


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 11:50 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Wo wir gerade beim Virtuellen Untergrund sind... - was ist eigentlich praktisch mit den .NET-Ruby-Geschichten los? - läuft da was Verwertbares ab?

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 11:54 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4872
Wohnort: RLP
Kein Plan, ich finde .Net nicht verwertbar, sondern den ersten Schritt zum umfassenden vendor lock-in.
Daher interessierts mich nicht die Bohne, solange Mono nicht auf der gleichen Höhe steht.

Gruß
Skade


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 12:13 
Offline
Hacker
Benutzeravatar

Registriert: 03 Nov 2006, 22:48
Beiträge: 440
Wohnort: [:rhein, :mosel].join
Die Entwicklung von Ruby.NET scheint eingestellt worden zu sein [1]. Laut John Lam soll das erste IronRuby-Production Release in der zweiten Jahreshälfte 2008 erscheinen [2]. Die aktuelle Version ist noch ein Prä-alpha-Release. Dabei war schon für das Quartal 1/08 eine Beta-Version angekündigt. Daher denke ich, dass wir noch ein wenig länger warten müssen, bis wir Ruby unter .NET verwenden können.

Da lohnt es sich wohl wirklich mehr, sich mal mit JRuby zu beschäftigen.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 17:52 
Offline
Böser Admin
Benutzeravatar

Registriert: 29 Jul 2005, 22:41
Beiträge: 2065
Wohnort: Beijing
Skade hat geschrieben:
Kein Plan, ich finde .Net nicht verwertbar, sondern den ersten Schritt zum umfassenden vendor lock-in.

Der Vendor Lock mag wohl stimmen. Jedoch hat der Ironruby Interpreter schon jetzt den großen Vorteil, dass er auf neuen Windows Systemen einfach Out of the Box läuft. Auch gefällt mir die GUI Bibliothek von .Net deutlich besser als Swing. Aber das ist wohl reine Geschmackssache. Und Silverlight wird in diesem Kontext auch stark unterschätzt. Bei all dem gerechtfertigten MS Baching halte ich .Net definitiv für eines der besten MS Projekte.

_________________
mruby.sh | Ruby-Mine | Homepage


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 18:50 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4872
Wohnort: RLP
DanielBovensiepen hat geschrieben:
Der Vendor Lock mag wohl stimmen. Jedoch hat der Ironruby Interpreter schon jetzt den großen Vorteil, dass er auf neuen Windows Systemen einfach Out of the Box läuft. Auch gefällt mir die GUI Bibliothek von .Net deutlich besser als Swing. Aber das ist wohl reine Geschmackssache. Und Silverlight wird in diesem Kontext auch stark unterschätzt. Bei all dem gerechtfertigten MS Baching halte ich .Net definitiv für eines der besten MS Projekte.


Stopp, stopp: ich finde .Net auch sehr attraktiv, gerade durch seine große Suite an Sprachen, die alle auf der gleichen VM laufen. Der Gui-Builder ist auch gut.

Da ich aber keine Entwicklung mache, bei der "Zielsystem auf immer und ewig Windows" draufsteht, ist .Net für mich leider sehr unbrauchbar.

Gruß
Skade


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 20:10 
Offline
Geselle
Benutzeravatar

Registriert: 09 Aug 2006, 11:49
Beiträge: 148
WoNáDo hat geschrieben:
blackbird hat geschrieben:
Da allerdings JRuby eine JVM braucht wirds fürs Scripting uninteressant...

Ich weiss jetzt nicht was Du mit "Scripting" meinst, aber in den üblichen Firmen-Arbeitsumfeldern wird es doch dadurch gerade interessant. JVM ist doch de facto überall installiert, also braucht man nur noch ein paar Dateien in irgendeinem Verzeichnis und schon hat man Ruby mit Oniguruma zur Verfügung. Da spielt oft das, was Skade hier beschreibt eine Rolle.

Unter Scripting verstehe ich: a) Shell Skripte für Unix und b) Plugins für Anwendungen. Und da ist ein C Interface besser als eine JVM.

_________________
[code=]class<<self;define_method(%_>6E9@50>:DD:?8_.tr(%_0-f_,%_\_-t_)){|*_|@_\
=_};end;(Just another Ruby hacker!);(_,@_=@_;$><<_<<%_ _)while@_;$><<$/[/code]


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 20:27 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4872
Wohnort: RLP
blackbird hat geschrieben:
Unter Scripting verstehe ich: a) Shell Skripte für Unix und b) Plugins für Anwendungen. Und da ist ein C Interface besser als eine JVM.


a) Was ist eine VM anderes als ein Minibetriebssystem? Alternativ ist es eine Anwendung, damit wären wir bei

b) Inwiefern ist ein C-Interface beim Skripting von Anwendungen besser?

Gruß
Skade


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Mai 2008, 21:15 
Offline
Interpreter
Benutzeravatar

Registriert: 05 Jun 2005, 01:54
Beiträge: 3225
Skade hat geschrieben:
a) Was ist eine VM anderes als ein Minibetriebssystem?

Strenggenommen ist es eben eine virtuelle Maschine/Prozessor, kein Betriebssystem. Allerdings verschwimmt die Grenze zwischen Prozessor und OS bei VMs ziemlich.

Skade hat geschrieben:
b) Inwiefern ist ein C-Interface beim Skripting von Anwendungen besser?
Zumindest unter *nix sind die meisten Anwendungen entweder in C geschrieben oder bieten ein C-Interface an. Selbst die OCaml-Ruby-Bridge funktioniert über das C-Interface, das beide anbieten. C ist halt noch immer der universelle Standard (C calling convention, etc.)

_________________


1
2
3
alias L lambda
p L{|y|L{|f|y[L{|x|f[f][x]}]}[L{|f|y[L{|x|f[f][x]}]}]}[L{|z|L{|l|l.empty?? 0:1+z[l.drop(1)]}}][%w<a b c d e f g h i j>]
#=>10


Nuclear Powered Soup | Nuclear Powered Blog


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 03 Mai 2008, 01:02 
Offline
Geselle
Benutzeravatar

Registriert: 09 Aug 2006, 11:49
Beiträge: 148
Skade hat geschrieben:
a) Was ist eine VM anderes als ein Minibetriebssystem? Alternativ ist es eine Anwendung, damit wären wir bei

Was meinst du? Ich bezog mich in erster Linie darauf, dass die JVM für Shellscripte unbrauchbar ist. Grund?


1
2
3
4
5
6
7
8
9
10
11
12
mitsuhiko@yupa:~$ time jruby1.0 -e "puts 'Hello World'"
Hello World

real 0m1.709s
user 0m1.508s
sys 0m0.052s
mitsuhiko@yupa:~$ time ruby -e "puts 'Hello World'"
Hello World

real 0m0.020s
user 0m0.012s
sys 0m0.000s

Auf dem alten Notebook braucht jRuby fast zwei Sekunden um hochzufahren. Für Scripting unbrauchbar.

Auf b) wurde dir bereits geantwortet.

_________________
[code=]class<<self;define_method(%_>6E9@50>:DD:?8_.tr(%_0-f_,%_\_-t_)){|*_|@_\
=_};end;(Just another Ruby hacker!);(_,@_=@_;$><<_<<%_ _)while@_;$><<$/[/code]


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 03 Mai 2008, 11:48 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
blackbird hat geschrieben:
Auf dem alten Notebook braucht jRuby fast zwei Sekunden um hochzufahren.

Das mit dem Hochfahren ist wirklich übel - mir kommt es aber so vor (Windows), als ob das System ab dem zweiten Mal deutlich schneller ist, also die JVM schon im Speicher hält (Notebook mit 2GB und 1600MHz). Bei den nachfolgenden Tests war in dieser Hinsicht Ruby 1.9 deutlich am Schnellsten.

Darum ging es mir aber nicht - ich meine ein ganz anderes Problem. Angenommen ich habe ein paar Scripte, die Textdateien lesen, analysieren, ändern und ausgeben. Diese Scripte habe ich sozusagen im Dutzend fertig in meiner Werkzeugtasche. Nun will ich die halt einfach benutzen, wenn ich irgendwo ein bestimmtes Problem lösen will und Ruby zur Verfügung habe. Hier geht nun mein Problem los - was kann denn nun welches Ruby.

Ich habe einfach mal drei Mini-Scripte genommen und mit Ruby 1.8, Ruby 1.9 und JRuby laufen lassen.

Die Textdatei, die in allen Fällen gelesen wird (bla.txt)...


bliblablu

Das Programm old.rb...

1
2
3
File.open('bla.txt', 'r') do |f|
puts f.read.gsub(/([aeiou])/, '\1x')
end

Das Programm onig.rb...

1
2
3
File.open('bla.txt', 'r') do |f|
puts f.read.gsub(/(?<=[aeiou])/, 'x')
end

Das Programm onig19.rb...

1
2
3
File.open('bla.txt', 'r:us-ascii') do |f|
puts f.read.gsub(/(?<=[aeiou])/, 'x')
end

Nun zu den Testergebnissen. Zuerst mit Ruby 1.8...

1
2
3
4
5
6
7
8
9
10
11
> ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

> ruby old.rb
blixblaxblux

> ruby onig.rb
onig.rb:2: undefined (?...) sequence: /(?<=[aeiou])/

> ruby onig19.rb
onig19.rb:2: undefined (?...) sequence: /(?<=[aeiou])/

Nun mit JRuby...

1
2
3
4
5
6
7
8
9
10
> jruby -v
ruby 1.8.6 (2008-03-28 rev 6360) [x86-jruby1.1]
> jruby old.rb
blixblaxblux
> jruby onig.rb
blixblaxblux
> jruby onig19.rb
onig19.rb:1:in `initialize': illegal access mode 0 (ArgumentError)
from onig19.rb:1:in `open'
from onig19.rb:1

Zuletzt mit Ruby 1.9...

1
2
3
4
5
6
7
8
9
10
11
> ruby19 -v
ruby 1.9.0 (2008-04-02 revision 0) [i386-mingw32]

> ruby19 old.rb
blixblaxblux

> ruby19 onig.rb
blixblaxblux

> ruby19 onig19.rb
blixblaxblux

Das entspricht meinen Erwartungen (=Befürchtungen). Mehr verschiedene Rubies habe ich bei mir nicht zur Verfügung. Mich würde mal interessieren, wie sich Mac-Ruby, das oder die .NET-Rubies, Rubinius, Ruby??? verhalten.

Das Problem ist jetzt halt, dass man Scripte offensichtlich an eine bestimmte Ruby-Variante angepasst schreiben muss und nicht mehr fertige Scripte überall benutzen kann.

Besonders erschreckend finde ich, dass meine Scripte eine Allerweltsgeschichte machen - sie lesen eine Textdatei und geben etwas auf der Konsole aus. Da sind keine Systemspezialitäten des Zielsystems drin!

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 03 Mai 2008, 15:15 
Offline
ri
Benutzeravatar

Registriert: 02 Jun 2006, 23:18
Beiträge: 702
WoNáDo hat geschrieben:
Mich würde mal interessieren, wie sich Mac-Ruby, das oder die .NET-Rubies, Rubinius, Ruby??? verhalten.

Ich kann Rubinius mal nachreichen:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ shotgun/rubinius -v
rubinius 0.8.0 (ruby 1.8.6 compatible) (9eb474836) (04/20/2008) [i686-pc-linux-gnu]
$ shotgun/rubinius old.rb
blixblaxblux
$ shotgun/rubinius onig.rb
blixblaxblux
$ shotgun/rubinius onig19.rb
An exception has occurred:
invalid mode -- r:us-ascii (ArgumentError)

Backtrace:
IO.parse_mode at kernel/core/io.rb:787
IO.sysopen at kernel/core/io.rb:227
File#initialize at kernel/core/file.rb:53
Class#new at kernel/bootstrap/class.rb:16
File.open at kernel/core/io.rb:214
Object#__script__ at onig19.rb:1
CompiledMethod#as_script at kernel/core/compiled_method.rb:332
Compile.single_load at kernel/core/compile.rb:252
Compile.load_from_extension at kernel/core/compile.rb:324
Object#__script__ at kernel/loader.rb:203


Grüße,
Matthias


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 03 Mai 2008, 19:26 
Offline
Interpreter
Benutzeravatar

Registriert: 02 Jan 2005, 20:15
Beiträge: 1360
Zitat:
Das Problem ist jetzt halt, dass man Scripte offensichtlich an eine bestimmte Ruby-Variante angepasst schreiben muss und nicht mehr fertige Scripte überall benutzen kann.


Matz sollte da endlich mal Ruby 1.9++ rauswerfen damit da nicht alle rein zu rubinius/ironruby/JRuby umschwenken und ewig über MRI rumziehen ;)

Wobei ich über JRuby viel positives gelesen hatte in letzter Zeit, auch wenn ich Java nicht leiden kann. Vor allem Ruby-statt-Javascript ist genial.

Das jruby langsamer ist, ist nicht für alle relevant.
Ich habe hier manche ruby Scripts, die brauchen ewig bis sie laden, am längsten dauert mein GUI Notebook der alle meiner ruby-gtk GUIs hochlädt. Der braucht ca 1 Minute bis er mit allem fertig ist, danach rennt er aber schnell.

_________________
Retired. Macht es gut!


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 03 Mai 2008, 20:43 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
reima hat geschrieben:
Ich kann Rubinius mal nachreichen:...

Aha - also Oniguruma, aber kein M17N.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 04 Mai 2008, 11:24 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
shevegen hat geschrieben:
Matz sollte da endlich mal Ruby 1.9++ rauswerfen..

Es fehlt einfach der für alle wahrnehmbare Schnitt Ruby 1.9 / Ruby 2.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 47 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: