Seit ich Ruby kennengelernt habe will ich nicht mehr zurück.
na und?
Ruby hat sich ordentlich gemacht, keine Frage.
Ich kann mich aber noch an Zeiten erinnern, da musste
man vieles neu schreiben, wenn eine neue Version
erschien. Ist das immer noch so?
JythonUser schrieb:
--------------------------------------------------------------------------------
> Ruby hat sich ordentlich gemacht, keine Frage.
>
> Ich kann mich aber noch an Zeiten erinnern, da musste
> man vieles neu schreiben, wenn eine neue Version
> erschien. Ist das immer noch so?
LOL, das solltest du gerade als Python-User kennen
gem schrieb:
---------------------------------------------------------------
> Seit ich Ruby kennengelernt habe will ich nicht mehr zurück.
Gibt's dafür auch Gründe? Kann mal einer aufzeigen, was an Ruby soviel besser ist als an Python? Oder was Python so schlecht dastehen lässt im Vergleich zu Ruby (oder Perl oder bash oder ...)?
Danke.
Aber Python ist zumindest zwischen den Hauptversionen abwärtskompatibel.
Natürlich, mit dem Wechsel von Python 2.x auf Python 3
kommt natürlich Schwung mit Änderungen in die Bude.
Aber das ist ja auch gewollt und bewusst.
[TROLL]Soll ja nicht so wie Java enden ;) [/TROLL]
PythonGift schrieb:
--------------------------------------------------------------------------------
> gem schrieb:
> ---------------------------------------------------------------
> > Seit ich Ruby kennengelernt habe will ich nicht mehr zurück.
>
> Gibt's dafür auch Gründe? Kann mal einer aufzeigen, was an Ruby soviel
> besser ist als an Python? Oder was Python so schlecht dastehen lässt im
> Vergleich zu Ruby (oder Perl oder bash oder ...)?
>
> Danke.
Kurz und bündig: Ruby vereint halt die Vorteile beider Sprachen gekonnt :)
JythonUser schrieb:
--------------------------------------------------------------------------------
> PythonGift schrieb:
> ---------------------------------------------------------------------------
> -----
> > gem schrieb:
> > ---------------------------------------------------------------
> > > Seit ich Ruby kennengelernt habe will ich nicht mehr zurück.
> >
> > Gibt's dafür auch Gründe? Kann mal einer aufzeigen, was an Ruby soviel
> > besser ist als an Python? Oder was Python so schlecht dastehen lässt im
> > Vergleich zu Ruby (oder Perl oder bash oder ...)?
> >
> > Danke.
>
> Kurz und bündig: Ruby vereint halt die Vorteile beider Sprachen gekonnt :)
Hä? Ruby hat NULL mit Perl am Hut.
xxxxxxxx schrieb:
> Hä? Ruby hat NULL mit Perl am Hut.
Natürlich, das Konzept der Sprache ist teilweise von Perl. Wir reden hier nicht von der Syntax.
Jythonuser schrieb:
--------------------------------------------------------------------------------
> xxxxxxxx schrieb:
> > Hä? Ruby hat NULL mit Perl am Hut.
>
> Natürlich, das Konzept der Sprache ist teilweise von Perl. Wir reden hier
> nicht von der Syntax.
Ach ja? Welches Konzept denn? Ruby ist dynamisch stark typisiert, Perl dynamisch schwach typisiert. Ruby ist in erster Linie klassenbasiert objektorientiert, in Perl baut man sich die Objektorientierung selber. Bei Ruby ist alles Objekt, bei Perl nicht. Ruby verwendet stark Closures für Kontrollstrukturen wie Iteration, Perl Keywords, ...
xxxxxxxx schrieb:
> Ach ja?
Jap: http://www.ruby-lang.org/en/about/
<<Its creator, Yukihiro “matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.>>
Die Betonung liegt auf "...blended parts..."
Jop: http://linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html
<<Ruby is written in C, and it was designed with Perl and Python capabilities in mind.>>
Ich wiederhol noch mal die ursprüngliche, ziemlich konkrete Frage, die in blumigem Blah-Blah untergegagen zu sein scheint: Kann mal einer aufzeigen, was an Ruby soviel besser ist als an Python?
hb schrieb:
--------------------------------------------------------------------------------
> Ich wiederhol noch mal die ursprüngliche, ziemlich konkrete Frage, die in
> blumigem Blah-Blah untergegagen zu sein scheint: Kann mal einer aufzeigen,
> was an Ruby soviel besser ist als an Python?
Python ist sehr formal, Ruby nicht. Python ist von einem Mathemtiker, mit gelegentlich komischen Ansichten. Ruby ist von einem Techniker, mit Pragmatischen Zielen.
Ob man jetzt das eine oder andere bevorzugt, ist wie die Frage ob man lieber Gelb oder Blau hat. Wenn etwas besser oder schlechter ist, dann nur Fallbezogen, wie üblich.
Wenn du es aber konkret wissen willst: Ruby hat Sigil, Python nicht, was zu so unschönen sachen wie die Nutzung von Self führt. Ruby hat einige Freiheiten die DLS (Domain Spezific Languages) ermöglichen, Python nicht. Ruby hat Reguläre Ausdrücke in der Syntax selbst integriert, Python nur über eine zusätzliche (mitgelieferte) Bibliothek. Ruby ist 'mehr' Objektorientiert, im sinne das wirklich alles und alles ein Objekt ist und von Entwickler verändert werden kann. Python hat da leider eine gewisse Grenze nach unten, die bei den Basistypen endet. Python nutzt Einrückungen als teil der Syntax, was manche als Problem erachten, Ruby macht das nicht.
Pythons Ziel ist es ja auch, Anfängern das Programmieren beizubringen. Und das erledigt es durch Designentscheidungen recht gut, finde ich.
------------------------------
Der Molch macht's.
------------------------------
How much money have you spent on League of Legends?
Supreme schrieb:
--------------------------------------------------------------------------------
> hb schrieb:
> ---------------------------------------------------------------------------
> -----
> > Ich wiederhol noch mal die ursprüngliche, ziemlich konkrete Frage, die
> in
> > blumigem Blah-Blah untergegagen zu sein scheint: Kann mal einer
> aufzeigen,
> > was an Ruby soviel besser ist als an Python?
>
> Python ist sehr formal, Ruby nicht. Python ist von einem Mathemtiker, mit
> gelegentlich komischen Ansichten. Ruby ist von einem Techniker, mit
> Pragmatischen Zielen.
>
> Ob man jetzt das eine oder andere bevorzugt, ist wie die Frage ob man
> lieber Gelb oder Blau hat. Wenn etwas besser oder schlechter ist, dann nur
> Fallbezogen, wie üblich.
>
> Wenn du es aber konkret wissen willst: Ruby hat Sigil, Python nicht, was zu
> so unschönen sachen wie die Nutzung von Self führt.
Es gibt sogar Leute die über den This Zeiger in C++ meckern.
> Ruby hat einige
> Freiheiten die DLS (Domain Spezific Languages) ermöglichen, Python nicht.
> Ruby hat Reguläre Ausdrücke in der Syntax selbst integriert, Python nur
> über eine zusätzliche (mitgelieferte) Bibliothek.
Python machts genau wie 100000000000 andere Sprachen die RegEx als Lib haben
> Ruby ist 'mehr'
> Objektorientiert, im sinne das wirklich alles und alles ein Objekt ist und
> von Entwickler verändert werden kann. Python hat da leider eine gewisse
> Grenze nach unten, die bei den Basistypen endet.
Wieder wie genau 10000000000000 andere Sprachen
> Python nutzt Einrückungen
> als teil der Syntax, was manche als Problem erachten, Ruby macht das nicht.
Dafür hat Ruby 1000 end und $ und @ und @@ und ; usw usf. was den Code unübersichtlicher macht.
Wenn ich dann schon auf ruby-lang.org dies sehe wird mir übel..
class Greeter
def initialize(name)
@name = name.capitalize
end
def salute
puts "Hallo #{@name}!"
end
end
g = Greeter.new("Welt")
g.salute
Da gegen ist Python gerade zu simpel..
class Greeter:
def __init__(self, name):
self.name = name.capitalize()
def salute(self):
print 'Hello %s!' % self.name
g = Greeter('Welt')
g.salute()
Davon mal abgesehen:
1) Gibts für Python wohl mehr Bindings/sitepackages
2) Gibts Python auf mehr Plattformen
3) Hat sogut wie jedes Unix/Linux Python OOTB dabei
Der braune Lurch schrieb:
--------------------------------------------------------------------------------
> Pythons Ziel ist es ja auch, Anfängern das Programmieren beizubringen.
Seit wann?
lolender lol schrieb:
--------------------------------------------------------------------------------
> Es gibt sogar Leute die über den This Zeiger in C++ meckern.
Der ist aber Optinal und Impliziet.
> Python machts genau wie 100000000000 andere Sprachen die
...
> Wieder wie genau 10000000000000 andere Sprachen
Du willst jetzt nicht ernsthaft Python damit verteidigen, das es genauso schlecht ist wie andere? o_O
> Dafür hat Ruby 1000 end und $ und @ und @@ und ; usw usf. was den Code
> unübersichtlicher macht.
Sigil sind ein klarer Vorteil. Und die Semikolon sind genauso optional wie in Python.
> Wenn ich dann schon auf ruby-lang.org dies sehe wird mir übel..
Nicht-Verstehen ist kein Argument.
> 2) Gibts Python auf mehr Plattformen
> 3) Hat sogut wie jedes Unix/Linux Python OOTB dabei
Das ist falsch. Bzw. gilt für Ruby genauso. Wobei, ich weiß jetzt nicht ob es Ruby für S60-Symbian gibt, aber das würde ich nicht gerade als großen Sprachvorteil betrachten :-P
Supreme schrieb:
--------------------------------------------------------------------------------
> lolender lol schrieb:
> ---------------------------------------------------------------------------
> -----
> > Es gibt sogar Leute die über den This Zeiger in C++ meckern.
>
> Der ist aber Optinal und Impliziet.
>
> > Python machts genau wie 100000000000 andere Sprachen die
> ...
> > Wieder wie genau 10000000000000 andere Sprachen
>
> Du willst jetzt nicht ernsthaft Python damit verteidigen, das es genauso
> schlecht ist wie andere? o_O
Ahja, 1000 Sprachen haben RegExp in einer Lib. Ruby nicht!
Deshalb sind alle anderen schlecht ausser Ruby?
> > Dafür hat Ruby 1000 end und $ und @ und @@ und ; usw usf. was den Code
> > unübersichtlicher macht.
>
> Sigil sind ein klarer Vorteil. Und die Semikolon sind genauso optional wie
> in Python.
>
> > Wenn ich dann schon auf ruby-lang.org dies sehe wird mir übel..
>
> Nicht-Verstehen ist kein Argument.
Eins ist mir in der Tat nicht klar.
Warum muss man jedes Objekt mit .new erstellen?
Warum kann man nicht einfach auf Klassen Attribute zugreifen sondern soll diese über eine Methode zurückgeben?
Sowas nenne ich unnötig und unübersichtlich!
Schon kleine Codeschnippsel sind unübersichtlicher als in Python.
class Flugzeug
attr_accessor :arr
def initialize()
@arr=Array.new()
end #def initialize
def ausgabe(v)
@arr.each do
|ele| ele.accept(v)
end #do
end #def ausgabe
def push(o)
@arr.push(o)
end #def push
end #class Flugzeug
http://de.wikibooks.org/wiki/Ruby-Programmierung:_Objektorientierung
> > 2) Gibts Python auf mehr Plattformen
> > 3) Hat sogut wie jedes Unix/Linux Python OOTB dabei
>
> Das ist falsch. Bzw. gilt für Ruby genauso. Wobei, ich weiß jetzt nicht ob
> es Ruby für S60-Symbian gibt, aber das würde ich nicht gerade als großen
> Sprachvorteil betrachten :-P
Ach echt?
2) Möp, trotzdem wärens mehr :-P
3) Ubuntu, Fedora, Gentoo, Arch, Slackware, PC-BSD, Solaris etc.. alle Standardinstallationen kein Ruby dabei :/
lolender lol schrieb:
--------------------------------------------------------------------------------
> Ahja, 1000 Sprachen haben RegExp in einer Lib. Ruby nicht!
Und wieso stört das ?
Weil es keine Operatoren sind ?
Die sollte man freiwillig selber definieren können.
subst(s1,s2,s3) = replace s1 by s2 in s3
sollte in guten Sprachen definierbar sein. Halt immer für ein Modul bzw. Source-File. Diese operator-Defines kann man (für mehrere Module bzw. Source-Files) dann natürlich zentral halten und reinladen.
Dann wären alle Seiten froh und man kann sich Operatoren selber definieren und die Editoren könnten es sauber anzeigen, wie es endet wenn sie
'replace "Schröder" by "Merkel" in $Bundestags-Reden-Manuskript-Template'
sehen.
Nur mal so eine Idee wo alle mit zufrieden sein könnten.
Operatoren haben den Nachteil, das man sie lernen muss.
Der Vorteil ist, das viele Klammern () aus dem Code verschwinden können, so das dieser deutlich lesbarer wird.
> > Sigil sind ein klarer Vorteil.
Eine Liste der Vor/Nachteile bzw. guter/schlechter Eigenschaften bzw. Einsatz-Zwecke hatte der Wikipedia-Artikel iirc nicht.
> Eins ist mir in der Tat nicht klar.
> Warum muss man jedes Objekt mit .new erstellen?
> Warum kann man nicht einfach auf Klassen Attribute zugreifen sondern soll
> diese über eine Methode zurückgeben?
Ich finde das gut so. Weil man dann hooken kann oder Virtuelle Objekte erzeugen, die z.b. automatisch Persistent oder sonstwas sind.
Wenn Du mit Leuten redest, musst Du sie auch nach ihrem Namen fragen und kannst nicht in ihr Gehirn reinschauen. D.h. ihnen eine "Message" schicken, und die Antwort abwarten. Sowas ist im Prinzip vermutlich echter OO als beispielsweise structs (wie in Horror-PHP-4) um pseudo-Methoden zu erweitern und das OO zu nennen, weil man zu dumm war, zu erkennen, das Objekte eine Identität haben und halt keine verkappten Structs mit anderer Prozedur/Funktions-Schreibweise sind.
OO-Denke ist Message-basiert. Auf den Attributen rumschreiben ist wie bei C mit Pointern und krasser Pointer-Arithmetik im Speicher rumgurken und auch noch stolz darauf zu sein, weil man weiss, wie (diese Version) des C-Compilers und der Library die Daten ablegt und z.B. der Vorname 17 Byte vom Nachnamen entfernt ist. Das dieser peek/poke-im-Speicher-Herum-Code mit der nächsten Release oder 64 Bit oder UniCode-Strings nicht mehr funzt, ist dem Lameprogger ja egal.
> Sowas nenne ich unnötig und unübersichtlich!
> Schon kleine Codeschnippsel sind unübersichtlicher als in Python.
Daran darf man es nicht unbedingt messen. Es ist ein leichter Indikator, das man sich !möglicherweise! die Finger fuselig programmiert, aber kein Beweis. xslt usw. ist auch große Dateien. Die hat man mit guten Editoren aber sehr schnell zusammen-completed und alles hinter "</" muss man z.B. eh nicht mehr tippen, falls es nicht schon dort fertig im Text steht weil es hingemacht wurde, als man <foo ... eingetippt hat.
Sich unnötig die Finger fusellig zu programmieren zeigt schlechtes Knowhow aktueller Sprachen. Man kauft und designed ja auch kein 30-Liter/100km-Auto mehr.
> > Das ist falsch. Bzw. gilt für Ruby genauso. Wobei, ich weiß jetzt nicht
> ob
> > es Ruby für S60-Symbian gibt, aber das würde ich nicht gerade als großen
> > Sprachvorteil betrachten :-P
> Ach echt?
"Meine LieblingsSprache ist so alt, die läuft sogar noch auf NetBSD unter MIPS32/LittleBigEndian und auf 68k-Suns und war bei SCO-Unix bei einem Release dabei und auch bei SysV4.1". Na super-Argumente.
Jython=Java und IronPython(.NET) klingen beide nicht schlecht.
Leben und leben lassen. Miese Software gibts genug.
> 2) Möp, trotzdem wärens mehr :-P
> 3) Ubuntu, Fedora, Gentoo, Arch, Slackware, PC-BSD, Solaris etc.. alle
> Standardinstallationen kein Ruby dabei :/
Ja toll. Auf einem Standard-MP3-Player ist auch in der "Default-Installation" meist nicht die Top10 drauf und schon gar nicht Deine Lieblings-Musik oder Lieblings-Hörbücher oder die Top10 davon.
Man sollte alt genug sein, sich wegen der Verbreitung nicht zu streiten.
Gut war z.b. der Hinweis im anderen Thread, das Python gerne embedded/angeflanscht wird, um als Scriptsprache für Anwendungen zu dienen. Lisp/Scheme haben es da nicht so weit gebracht. REXX am Amiga rulte dort mal zur Automatisierung von (GUI)Anwendungen.
Schönere Software hingegen hat eh APIs für sowas und man kann "beliebige" (Script)Sprachen dranflanschen. Das sind aber höhere Evolutions-Stufen, die die meisten Anwendungen oft nicht erreichen, weil man sich in den unteren Stufen damit schon verzettelt hat, und keiner einen lehrt, wie man es richtig(er)/besser macht.
MVC extreme. Da ist das Gui eh nur ein C/C++ Frontend für die "Engine" ("Model" bei MVC) und Plugins/Extensions, die über dieselben APIs auch per Scriptsprache gesteuert werden kann.
Der Level ist vorbei schrieb:
--------------------------------------------------------------------------------
> Der Vorteil ist, das viele Klammern () aus dem Code verschwinden können, so
> das dieser deutlich lesbarer wird.
Ich brauche gerade die Klammern um Blöcke schnell erfassen zu können. Wenn alles nur Text ist, tue ich mich deutlich schwerer und damit bin ich bestimmt nicht der Einzige.
> (wie in Horror-PHP-4)
Ohne jetzt deine Aussage um diesen Schnipsel herum heranzuziehen, ich finde es immer wieder amüsant wie Rubyverfechter auf PHP schimpfen. Ja PHP ist unkontrolliert gewachsen und man sieht es der uneinheitlichen Namensgebung deutlich an, aber ist das schlimmer als eine von Grund auf neu entwickelte Sprache mit solchen Schwächen auszustatten wie Ruby? Methoden zur Laufzeit zu überschreiben ist einfach nur widerlich und schwer nachvollziehbar. Bang-Methoden können auch sehr nervig sein und die Syntax ist im schlimmsten Fall kryptisch wie Perl und nur im besten Fall sauber wie Python.
Ich sehe bei Ruby genau 0 Vorteil gegenüber anderen Skriptsprachen, wer es nutzen will soll es nutzen, der große Wurf schlechthin ist es mit Sicherheit nicht.
Kommentare: 172 | letzter Beitrag 22:36 Uhr
Kommentare: 94 | letzter Beitrag 26.05. 19:45
Kommentare: 79 | letzter Beitrag 22:43 Uhr
Kommentare: 71 | letzter Beitrag 22:20 Uhr
Kommentare: 62 | letzter Beitrag 21:44 Uhr
E-Mail an news@golem.de

Der japanische Spieldesigner Goichi Suda - Fans sagen schlicht "Suda 51" - ist für schräge Actionspiele bekannt. Sein nächstes Werk schickt ein scheinbar braves Schulmädchen in den Kampf gegen Zombies.

Weitgehend unbemerkt hat der US-Händler Tigerdirect die ersten Chromebox-Systeme von Google ausgeliefert. Für 330 US-Dollar bekommt der Nutzer recht gute Hardware in Nettop-Form, die sehr viel leistungsfähiger ist als die des Chromebook mit ChromeOS.

Der neue Chef der Piratenpartei steht im Verteidigungsministerium unter Druck. Elektronische Kommunikation für seine Partei ist ihm in der Dienstzeit untersagt. "Es gibt Leute im Ministerium, die darauf warten, dass ich Fehler mache", sagte Schlömer.

Renesas ist nach Elpida der zweite schwer angeschlagene japanische Chiphersteller. Renesas, das Hitachi, Mitsubishi Electric und NEC gehört, macht Verlust und will seine größte Fabrik verkaufen.

RIM soll in den kommenden Tagen erneut einen massiven Stellenabbau ankündigen. "Ich habe herausgefunden, welche Teile ich in meinem Puzzle nicht mehr benötige", sagte Firmenchef Thorsten Heins.

Ein britisches Blog will erfahren haben, dass Facebook den norwegischen Browserhersteller Opera Software kaufen will. Beide Unternehmen wollen sich dazu nicht äußern.