[Ruby] Allgemeine Info

strolch00

redraft.de
ID: 155297
L
21 April 2006
1.684
72
Hi @all,

also ich habe heute mirgen so gegen 3 Uhr ein Wiki zu Ruby gefunden wo ich einen kleinen Einblick in die Syntax werfen konnte. Meine Frage ist was Ihr so allgemein davon haltet? DerSyntax ist ja schon ganz schön strange wenn ich mit so eine for schleife anschau.

Ist es wirklich so gut? Kann man damit alles machen? (Beispiele) Wie siehts mit der geschwindigkeit aus? Wo gibt es ein Manual? (wenns keiner weis google ich)
Zieht Ihr eine andere Programmiersprache Ruby vor?

Joar denke das war es.

btw dieses Syntax meine ich
php:
PHP:
for($i = 0; $i < 10; $i++)
  echo $i;

ruby:
PHP:
10.times do |i|
  print i
end
 
Letztes WE habe ich mich ein bisschen mit Ruby beschäftigt, und ich muss sagen, ich bin aufgrund der Vereinfachung mancher Vorgänge begeistert.

Dokumentation: www.ruby-doc.org - gut zum Testen: tryruby.hobix.com

GUI-Anwendungen kann man auch relativ leicht z.B. mit fxruby erstellen.

Hier mal der SRC eines kleinen Pingers, den ich erstellt habe (nicht schön, aber gerade die OOP von Ruby finde ich schön, auch wenn man das meinem Code hier nicht unbedingt ansieht *g*).

Code:
require 'rubygems'
require 'fox16'
require 'ping'

include Fox

class ClipMainWindow < FXMainWindow
  def initialize(anApp)
    # Initialize base class first
    super(anApp, "Pinger", nil, nil, DECOR_ALL, 0, 0, 400, 300)
    
    # Horizontal frame contains buttons
    buttons = FXHorizontalFrame.new(self, LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|PACK_UNIFORM_WIDTH)
    contents = FXVerticalFrame.new(self, LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_Y|PACK_UNIFORM_WIDTH)

    # textfield
    textField1 = FXTextField.new(contents, 20, nil, 0, JUSTIFY_RIGHT|FRAME_SUNKEN|FRAME_THICK|LAYOUT_SIDE_TOP)
    textField1.text = "Insert Hostname here"
    
    # Ping and Exit Buttton
    pingButton  = FXButton.new(buttons, "Ping")
    exitButton = FXButton.new(buttons, "Exit")
    
    
    # User changes textfield
    textField1.connect(SEL_COMMAND) do |sender, sel, data|
      puts "'there dude ..." if Ping.pingecho(data,5,'http')
    end


    

    # Place the list in a sunken frame
    sunkenFrame = FXVerticalFrame.new(self, LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK,
      0, 0, 0, 0, 0, 0, 0, 0)
    
  
    # User clicks Copy
    pingButton.connect(SEL_COMMAND) do
      puts "'there dude ..." if Ping.pingecho('data',5,'http')
    end

    # User clicks Edit
    exitButton.connect(SEL_COMMAND) { exit }
  end
  
  def create
    super
    show(PLACEMENT_SCREEN)
  end
end

if __FILE__ == $0
  FXApp.new("ClipboardExample", "FXRuby") do |theApp|
    ClipMainWindow.new(theApp)
    theApp.create
    theApp.run
  end
end

Also, schau´s dir mal an, ich finde das, was ich bis dato gesehen habe einfach geil :)
 
Frag mal veers, der wird das System sicher in den höchsten Tönen loben ;)

Ach und ich persönlich habe eigentlich keine Lust nochmal eine komplett neue Syntax zu lernen
 
Zuletzt bearbeitet:
Letztes WE habe ich mich ein bisschen mit Ruby beschäftigt, und ich muss sagen, ich bin aufgrund der Vereinfachung mancher Vorgänge begeistert.
Genau deswegen habe ich es mir auch überlegt, zumal man überall hört es sein schneller und sicherer.

Frag mal veers, der wird das System sicher in den höchsten Tönen loben ;)
Na dann warten wir mal ab, ich hoffe das wird ne richtig schöne gepflegte Diskussion mit pro/contra wo jeder mal seine Meinugn dazu Äußert wenn er eine hat. ;)
 
Ich habe jetzt immer das Problem das mit mein Apache nen 500er senden bei der test.rb die folgenden Code enthält:
PHP:
#!/usr/bin/ruby

10.times do |i|
  print i
end
Ich schau grad mal ins Manual aber vielleicht hat ja einer ne geistreiche eingabe ^^.

*edit
dateiname geändert
 
Zuletzt bearbeitet:
das wird aber nicht an deinem script leigen sondern an deinem apache... schau mal in die error log dort findest du den auslöser.
 
Hmm dachte ich mir auch und da les ich immer nur

[Thu Feb 08 16:56:52 2007] [error] [client 84.149.209.133] Premature end of script headers: test.rb

Nun dacht ich mir scheiß drauf ich such ein fertiges Testscript für ruby, welches auf jedenfall fuktionieren muss. Aber ich bin warscheinlich zu blöd zum googlen. Wobei die for schleife es auch tun muss.

*edit
So Problemchen zwar nun behoben geht aber immer noch nicht. Das soll aber nicht weiter stören, weiter gehts mit Meinungen. Bis jetzt habe ich noch kein Contra gehöhrt, kann das richtig sein irgendeinen Hacken hat doch alles im Leben. Wie schauts zB mit Performance Fragen aus gegenüber PHP?
 
Zuletzt bearbeitet:
Im Vergleich zu Python ist Ruby etwas langsamer, aber wenn Ruby als Apache-Modul läuft, ist die Geschwindigkeit durchaus annehmbar. Wie es im Vergleich zu PHP aussieht, kann ich nicht sagen. Meine eigenen Scripts hätte ich aber längst migriert, wenn (e)Ruby bei den Hostern etwas verbreiteter wäre. Den Geschwindigkeitsvorteil bei der Entwicklung finde ich bei Ruby gegenüber anderen Sprachen enorm, da juckt es mich wenig, wenn die Ausführung minimal langsamer ist, was meistens sowieso nicht auffällt. Außerdem denke ich, dass Ruby verglichen mit PHP wesentlich weniger fehleranfällig ist (es ist schwerer, unbewusst Mist zu bauen). Joa und die eleganten Sprachkonzepte gibts dann als nützliches Extra noch dazu.
 
Also speziell zu den Performance Vergleichen such ich auch schon ne Zeit lang, werd aber nicht so richtig fündig.

Was ich ungefähr noch weiß ist, dass:
  • Ruby on Rails langsamer als Django (Phyton-Framework) ist
  • schneller als PHP st (belegen kann ich es atm nicht; meine es aber gelesen zu haben)
  • es doch einige Seiten mit hohen Traffic Aufkommen mit Ruby on Rails erstellt worden sind

Speziell zu letztem Punkt ist folgender Link sehr empfehlenswert:
https://poocs.net/2006/3/13/the-adventures-of-scaling-stage-1

Desweiteren ist natürlich zu erwähnen, dass Ruby on Rails speziell für den Webeinsatz und aufgrund div. Projekte enstanden ist.

Siehe dazu 37signals die mehrere (auch kommerziell erfolgreiche) Projekte damit realisiert hat.

(Falls ich weitere Belege finden sollte, werd ich sie natürlich posten)


Soviel erstmal zum Framework Ruby on Rails. Ruby find ich genial, endlich mal eine Sprache, die bei mir Lust weckt, sich damit näher zu befassen. Ich hab jahrelang hier und da rein geschnuppert, aber nicht wirklich was gefunden für mich. Mit Ruby sieht das anders aus. Einfach, logisch und klar. Leider ist die Dokumentation in Deutsch noch nicht so gut, dafür sehr viele englische Hilfen (und auch japanische ;) ). Man wird sich aber gut zurecht finden. Ruby wird allerdings kaum kommerziell eingesetzt.
 
Sehe ich das jetzt richtig das Ruby != Ruby on Rails ist? Wenn ja Ruby on Rails ist das einfachere für Web soweit ich mitbekommen haben, würdet ihr das empfehlen zu lernen oder eher erst Ruby? Was ich an Ruby nicht mag dieses CGI Klasse die ich gefunden habe ist halt noch lang net so einfash wie
html <% RoR code %> html und es kann kein XHTML. Oder bin ich da voll auf dem falschen Dampfer?

Btw. wahnsinn wie lange es Ruby schon gibt und wie wenige sich erst rangetraut haben.
 
Btw. wahnsinn wie lange es Ruby schon gibt und wie wenige sich erst rangetraut haben.
Das grosse Problem frueher war, dass die Sprache aus dem asiatisch-sprachigen Raum kam und es bis 2000 keine nicht-japanische Dokumentation gab. Seit dem gewinnt die Sprache auch sehr stark an Anwendern. Zum Beispiel auch mich.

Ich hab inzwischen auch schon einiges mit Ruby on Rails realisiert. Lohnt sich wirklich das mal anzugucken und zum Thema Syntax: Auf https://www.ruby-lang.org gibt's ein tolles interaktives Tutorial, in dem man die Syntax in weniger als 20 Minuten lernen kann.
 
Danke für die Info bartman ;), hat vielleicht einer mal ein Contra? Gibt es irgendwas was man mit RoR noch nicht machen kann? Btw. ich habe gelesen RoR 2 soll nicht abwärtskompatibel sein sollte ich dann noch warten, weil zu erwarten ist das sich der syntax ändert oder macht das nix und ich kann sofort starten? Hat da vielleicht noch einer was, ich habe leider in google nur diese Info bekommen das es nicht abwärtskompatibel sein soll, aber keine changelog oder dergleichen.
 
Ja, RoR 2.0 wird nicht mehr vollstaendig abwaertskompatibel sein. Allerdings werden da, soweit ich weiss, nur Methoden entfernt, die in der aktuellen 1.2 schon als deprecated makiert sind. Es aendert sich im Uebrigen nichts Grundlegendes. Selbst wenn man sich alte Dokus durchliest, wird man mit RoR 2 noch zurecht kommen.
 
Zuletzt bearbeitet:
Perfekt das werde ich ja dann merken und kann dann starten. Falso noch jemand was loswerden will zum Thema immer her damit.
 
Joar das dürfte das rails sein was ich jetzt auf dem Server habe das macht das selbe. Aber das mod_ruby klingt interessant.
Btw: danke für den Link.
 
Wenn man sich mit dem MVC-System so gar nicht anfreunden will, dann sind Frameworks wie Rails sicherlich auch nicht das richtige. Wenn man es geschafft hat sich damit zu arrangieren (Gefallen gefunden hatte ich schon nach einem Screencast), dann wird man gar nicht mehr ohne auskommen wollen.