Warum sollte ich Ruby lernen (noch so eine Hirnrissige frage)



  • Ist doch klar. Es handelt sich um ein Best Practices Concept das die Baseline des Data Managements voll unterstützt. Von den Pre-Sales Anforderungen bis zum Release kann die ganze Roadmap abgedeckt werden ohne die Objectives zu gefährden. Außerdem bietet es ein Information Center für Consulting und Development Operations. Das alles schaft Synergieeffekte ohne die sonst üblichen Pitfalls.

    Also wenn das jetzt nicht überzeugtend ist, dann weiß ich auch nicht.



  • bsb schrieb:

    ...

    Ich benutze ja auch mal Fachwörter, aber etwas weniger Fachsprache würde manche Texte lesbarer gestalten 😉 (zumindestens verhindert es imho flüssiges lesen).



  • Deiner Frage entnehme ich dass du von Sparchen wie Ruby keine Ahnung hast. Ergo ist Ruby eine gute Wahl den Horizont zu erweitern. Oder Perl. Oder Python. Oder XYZ. Es ist egal - sind alles schoene Sprachen...



  • a_to_long_name_for_you schrieb:

    Nein, es ist kein Troll versuch. Es ist, naja... Ich weiß nicht.
    Die Abwesenheit von findbaren Argumenten wie es bei vielen Sprachen so ist. Also die Selbstbeweihräuscherung scheint bei Ruby zu fehlen. Das macht das ganze interessant. Nun suche ich die Vorteile um mir erschließen zu können wo ich die Sprache einsetzen könnte (nicht nur unbedingt da wo alle sagen, hierfür bitte nutzen).
    Ich weiß das klingt komisch, aber besser kann ich es auch nicht erklären.
    (ich glaube fast ich brauche dringen Schlaf...)

    Es gibt gar keinen Grund, irgendeine Prog- Sprache zu lernen, um damit irgendwann Projekte anzugehen. Ist wie mit der Onanie, wenn Dir die Ermahnungen Deines Pfarrgruppenleiters bezüglich des Rückenmarksverlustes egal sind - viel Spaß! 😃

    Umgekehrt machts mehr Sinn. Man will eine Applikation und sucht die Sprache dazu. Da fällt einiges durch, weil ich noch keinen Gerätetreiber in javascript realisiert fand - warum wohl? 😕

    Wenn Du Webzeugs machen mags, schaust Dir halt die üblichen Verdächtigen an (PHP, Python, JSP, perl) und legst Ruby daneben. Wenn Dir Ruby besser gefällt, machst es halt mit Ruby.

    So einfach kann das Leben sein ... 😉



  • pointercrash() schrieb:

    a_to_long_name_for_you schrieb:

    Nein, es ist kein Troll versuch. Es ist, naja... Ich weiß nicht.
    Die Abwesenheit von findbaren Argumenten wie es bei vielen Sprachen so ist. Also die Selbstbeweihräuscherung scheint bei Ruby zu fehlen. Das macht das ganze interessant. Nun suche ich die Vorteile um mir erschließen zu können wo ich die Sprache einsetzen könnte (nicht nur unbedingt da wo alle sagen, hierfür bitte nutzen).
    Ich weiß das klingt komisch, aber besser kann ich es auch nicht erklären.
    (ich glaube fast ich brauche dringen Schlaf...)

    Es gibt gar keinen Grund, irgendeine Prog- Sprache zu lernen, um damit irgendwann Projekte anzugehen. Ist wie mit der Onanie, wenn Dir die Ermahnungen Deines Pfarrgruppenleiters bezüglich des Rückenmarksverlustes egal sind - viel Spaß! 😃

    Umgekehrt machts mehr Sinn. Man will eine Applikation und sucht die Sprache dazu. Da fällt einiges durch, weil ich noch keinen Gerätetreiber in javascript realisiert fand - warum wohl? 😕

    Wenn Du Webzeugs machen mags, schaust Dir halt die üblichen Verdächtigen an (PHP, Python, JSP, perl) und legst Ruby daneben. Wenn Dir Ruby besser gefällt, machst es halt mit Ruby.

    So einfach kann das Leben sein ... 😉

    Was aber, wenn eine Programmiersprache die auf das Web zugeschnitten ist Elemente enthält die nicht da hin gehören. Was ist wenn es Lambda Ausdrücke nicht in C# sondern nur in PHP gäb?
    Würdest du es als sinnvoll erachten PHP zu lernen? Würdest du etwas machen was du nicht willst um Wissen zu erlangen? Wie kann man etwas mit einer so leichten, ja fast binären Sichtweise sehen? Hm, und wenn ich mir das Leben so schwer mache, es ist es mir Wert, warum auch immmer. Ich werde es wohl erfahren.
    Kann ich jetzt von euch erfahren ob da etwas ist was ich nicht kenne aber interessant ist? Eigendlich nicht, warum frage ich dann? Vll möchte ich einfach eine andere Sichtweise erfahren.



  • a_to_long_name_for_you schrieb:

    Was aber, wenn eine Programmiersprache die auf das Web zugeschnitten ist Elemente enthält die nicht da hin gehören. Was ist wenn es Lambda Ausdrücke nicht in C# sondern nur in PHP gäb?
    Würdest du es als sinnvoll erachten PHP zu lernen? Würdest du etwas machen was du nicht willst um Wissen zu erlangen? Wie kann man etwas mit einer so leichten, ja fast binären Sichtweise sehen? Hm, und wenn ich mir das Leben so schwer mache, es ist es mir Wert, warum auch immmer. Ich werde es wohl erfahren.
    Kann ich jetzt von euch erfahren ob da etwas ist was ich nicht kenne aber interessant ist? Eigendlich nicht, warum frage ich dann? Vll möchte ich einfach eine andere Sichtweise erfahren.

    Was willst Du hören?
    Wenn Du was mitm Web machen magst, ist PHP mein Tip, weil man da sowohl prozedural als auch OO herangehen kann, andere finden das zu "dirty", fürn paar Scripte langt's mir.
    Ruby spielt in der Python- Liga (lt. Artikeln IX und c't), lern beides und Perl dazu und erzähl' hinterher in Foren, was der Knaller ist.
    Ich will auf den Punkt hinaus, daß es egal ist, was Du einsetzt, nimm`das, was Dir am zweckmäßigsten erscheint. Ruby hat imho keine wesentlichen Vorteile gegenüber den anderen Serverstuffern, ein Hinweis könnte sein, was am besten supportet wird (large community alive).



  • asc schrieb:

    Die Frage ist wirklich hirnrissig, da du noch nicht einmal den Kontext nennst.

    Ich finde die Topic-Frage eigentlich berechtigt, hab ich mir bestimmt auch schon mal gestellt 🙂
    Ist doch klar, der Anonyme mit dem langen Namen würde gerne Argumente hören, die für das Erlernen von Ruby sprechen, oder auch wissen, ob es dafür überhaupt Argumente gibt. Dass hier keine Argumente fallen, deutet darauf hin, dass es sich nicht lohnt, Ruby zu lernen; bei Python oder funktionalen Sprachen sähe das bestimmt anders aus.



  • es lohnt sich ruby zu lernen wenn man ruby benötigt ...
    Les dir durch was man mit ruby machen kann und was die eigenschaften sind und dann siehst du sicherlich das du nicht unbedingt ruby benötigst für deine Ziele. Denk ich mir jetzt mal.. ^^

    z.b. klassen erweiterung zur laufzeit oder sowas (was ja auch andere können)
    Ich habe mir mal ein PDF ausgedruckt über Ruby on Rails ... finde ich immer ganz interessant wenn man sich mal damit beschäftigt aber entwickeln tu ich damit nicht.



  • ich denke mal dass die on-Rails Geschichte ein gutes Argument ist. Wenn man denn zu dem Schluss kommt dass das ein gutes und wichtiges Feature für das aktuelle Projekt ist. Außer Ruby hat afaik bisher nur Groovy eine on-Rails-artige Erweiterung (Grails).



  • pumuckl schrieb:

    Außer Ruby hat afaik bisher nur Groovy eine on-Rails-artige Erweiterung (Grails).

    So ziemlich jede Sprache hat den Rails Hype nicht unbeschadet ueberstanden. Aber der Hype ist zum glueck ja jetzt vorbei...



  • wenn man nicht unbedingt Rails braucht, fällt mir kein besonders guter Grund ein, Ruby zu lernen oder zu benutzen.

    Die einzelnen Sprachelemente von Ruby kann man schon seit Jahren, teils seit Jahrzehnten haben, indem man je nach Anwendungszweck Perl, Python oder Smalltalk usw. verwendet - bei Ruby in einer einzelnen Sprache zusammengefaßt.

    Aber ob es gut ist, Perl-Elemente und Smalltalk-Blocks in eine Python-ähnliche OO-Skriptsprache hineinzurühren, scheint mir ohnehin fraglich.



  • user-l schrieb:

    wenn man nicht unbedingt Rails braucht, fällt mir kein besonders guter Grund ein, Ruby zu lernen oder zu benutzen.

    Ruby ist wirklich vielfältig einsetzbar, nicht nur für das Web. Wenn man z.B. eine flexible Skriptsprache zur Stringverarbeitung braucht (was man früher vielleicht in Perl gemacht hat), ist Ruby gut einsetzbar. Interessant ist auch die Möglichkeit, eine DSL auf Ruby-Basis zu definieren und zusammen mit anderen Sprachen einzusetzen (z.B. Java-Skripting).
    Diese Möglichkeiten bieten andere Skriptsprachen natürlich auch. Aber früher oder später wird man sich für eine Entscheiden. Warum also nicht für Ruby?

    Die einzelnen Sprachelemente von Ruby kann man schon seit Jahren, teils seit Jahrzehnten haben, indem man je nach Anwendungszweck Perl, Python oder Smalltalk usw. verwendet - bei Ruby in einer einzelnen Sprache zusammengefaßt.

    Das ist doch ein Vorteil.

    Aber ob es gut ist, Perl-Elemente und Smalltalk-Blocks in eine Python-ähnliche OO-Skriptsprache hineinzurühren, scheint mir ohnehin fraglich.

    Was sollte daran fraglich sein? Welche Perl-Elemente glaubst du in Ruby zu entdecken? (sag nicht '@' und '$').



  • Meiner Meinung nach vereint Ruby jeweils einige Eigenschaften mehrerer altbewährter Sprachen (Tcl, Python, Perl, Smalltalk) in sich, ohne Vorteile zu bieten.

    Die Syntax von Ruby finde ich überflüssig kompliziert, weil es für fast jeden Zweck etliche verschiedene Konstrukte gibt, die sich teils in Nuancen unterscheiden (allein für Blocks 6 oder 7 Konstrukte, glaube ich, wer braucht das denn ?). Man vergleiche das mal mit der schlüssigen Syntax von Python, die selbst für Leute lesbar ist, die Python gar nicht kennen.

    Die Vielfalt an Sprachkonstrukten ist bei Ruby vergleichsweise groß, ohne, daß man damit die Flexibililtät der Klassiker (Lisp, Smalltalk, Forth) erreichen könnte. Prinzipienreinheit führt langfristig weiter als syntaktische Rafinesse.
    Um bspw. zu Tcl oder Lisp ein Objektmodell hinzuzufügen, braucht man keine neue Syntax - ein paar Zeilen Tcl- oder Lisp-Code reichen dazu. Das ist *wahre* Flexibilität.

    Diejenigen Sprach-Elemente, die Ruby von Smalltalk übernommen hat (Objekte, Iteratoren, Blocks), können es auch nicht herausreißen - wenn man OO ernstnimmt, kommt man früher oder später ohnehin bei Smalltalk an.

    Immerhin ist Ruby ein weiterer Schritt in Richtung echte Objektorientierung.
    Es kann also nur noch ein paar Jahrzehnte dauern, bis man erkennt, daß alles, was es in dieser Hinsicht zu machen gibt, schon seit 1972 da ist: Smalltalk.



  • user-l schrieb:

    Meiner Meinung nach vereint Ruby jeweils einige Eigenschaften mehrerer altbewährter Sprachen (Tcl, Python, Perl, Smalltalk) in sich, ohne Vorteile zu bieten.

    Ich sehe schon Vorteile: Die gute Textbearbeitungsfunktionen von Perl (RegEx als Sprachelement) und dessen Ausdrucksstärke, ohne die kryptischen Syntaxmacken. Ein strenges Typsystem wie bei Python und Smalltalk, und kein schwaches wie bei Perl. Eine eingebaute vernünftige Objektorientierung (vs. Perl), die auch noch so aussieht und nicht aufgesetzt wirkt (vs. Python).
    Flexible Blöcke (bzw. Closures) wie in Smalltalk (vs. Python).

    Die Syntax von Ruby finde ich überflüssig kompliziert, weil es für fast jeden Zweck etliche verschiedene Konstrukte gibt, die sich teils in Nuancen unterscheiden (allein für Blocks 6 oder 7 Konstrukte, glaube ich, wer braucht das denn ?). Man vergleiche das mal mit der schlüssigen Syntax von Python, die selbst für Leute lesbar ist, die Python gar nicht kennen.

    Alles Geschmakssache. Ich finde die Python-Syntax gründlich misslungen. Dabei meine ich nichtmal die manchmal kontrovers diskutierten Whitespace-Syntaxelemente. Das OO wirkt an manchen Stellen einfach aufgesetzt. Wozu ständig self? Wer braucht das? Wozu die "globalen Funktionen", die dann doch nur auf geheime Unterstrich-Unterstrich-Funktoren zugreifen? Warum nicht gleich als Methode? Warum Unterstriche als Sichtbarkeitsmodifier. Entweder ganz /Ruby) oder gar nicht (Smalltalk). Sehr unästetisch das ganze. Aber es ist wie gesagt Geschmackssache und müßig darüber zu streiten.

    Mit den verschiedenen Konstrukten in Ruby hatte ich noch nie Probleme. Ich kenne auch niemanden, der Schwierigkeiten beim Verständis damit hätte. Wenn man nicht eine ganz lange Leitung hat, versteht man sowohl Blöcke mit "{ }" alsauch mit "begin end" (so groß ist die Anzahl der Möglichkeiten nicht). Mir ist es lieber, die Sprache gibt mir Freiheiten beim Ausdruck, als dass sie den einzig wahren Weg vorschreibt.
    Die Möglichkeiten eine DSL darauf aufzubauen (die eventuell auch von Nichtprogrammieren verstanden werden soll), profitiert auch von diesen Freiheiten. Keine überflüssigen Doppelpunkte, Klammern oder Whitespaces.

    Die Vielfalt an Sprachkonstrukten ist bei Ruby vergleichsweise groß, ohne, daß man damit die Flexibililtät der Klassiker (Lisp, Smalltalk, Forth) erreichen könnte. Prinzipienreinheit führt langfristig weiter als syntaktische Rafinesse.
    Um bspw. zu Tcl oder Lisp ein Objektmodell hinzuzufügen, braucht man keine neue Syntax - ein paar Zeilen Tcl- oder Lisp-Code reichen dazu. Das ist *wahre* Flexibilität.

    Wobei diese Art Flexibilität bei Sprachen, die OO von vornherein unterstützen, auch überflüssig wäre.

    Diejenigen Sprach-Elemente, die Ruby von Smalltalk übernommen hat (Objekte, Iteratoren, Blocks), können es auch nicht herausreißen - wenn man OO ernstnimmt, kommt man früher oder später ohnehin bei Smalltalk an.

    Jedenfalls nicht bei Python 😃

    Immerhin ist Ruby ein weiterer Schritt in Richtung echte Objektorientierung.
    Es kann also nur noch ein paar Jahrzehnte dauern, bis man erkennt, daß alles, was es in dieser Hinsicht zu machen gibt, schon seit 1972 da ist: Smalltalk.

    Leider gewinnen nicht immer die besten. Siehe C++. Siehe PHP.



  • Wenn du Ruby eine vernünftige Objektorientierung attestierst, was sagst du dann zu Smalltalk ?

    Ob einem die Python Syntax gefällt oder nicht, ist sicher Geschmackssache.
    Offenbar im Ggs. zur Ruby Syntax basiert sie immerhin auf Prinzipien, z.b. dem Prinzip "nur ein Konstrukt pro Aufgabe" oder "einfache Lesbarkeit".

    Wenn Du keine Probleme mit Ruby-Idiomen hast, dann erkläre doch mal eben auswendig die 6 oder 7 Methoden, Blocks zu benutzen.

    Wieso soll Ruby für DSLs geeignet sein ? Dafür braucht man flexible Sprachen mit *wenig* Syntax, wie Lisp, Tcl oder Smalltalk, notfalls Forth.

    btw. Die Syntax der von mir genannten "Evergreens" Lisp, Tcl, Smalltalk aufzuschreiben benötigt jeweils kaum mehr als eine halbe Seite. Ruby-Syntax ist m.M.n. monströs und zudem häßlich.



  • user-l schrieb:

    Wenn du Ruby eine vernünftige Objektorientierung attestierst, was sagst du dann zu Smalltalk ?

    Wo sage ich, dass Smalltalk keine vernünftige OO hat?

    Ob einem die Python Syntax gefällt oder nicht, ist sicher Geschmackssache.

    Mein Reden. Entweder man hat Geschmack oder man hat keinen. Deswegen ist es wohl auch sinnlos, hier weiter zu diskutieren.



  • ist eine harte Nuß, das mit dem Erklären der 7 closure/block-ähnlichen Sprachkonstrukten in Ruby, nicht ?

    Hier die Auflösung: google nach closures-in-ruby.rb

    Bist du jetzt immer noch sicher, daß Du keine Probleme mit den Sprachelementen von Ruby hast ?

    Smalltalk hat nur *ein* Syntaxelement für Blocks. Reicht vollkommen aus.
    Ich halte Ruby syntaktisch und semantisch für einen großen Rückschritt gegenüber anderen dynamischen Programmiersprachen wie Tcl, Lisp und Smalltalk, die Jahrzehnte älter und um Dimensionen einfacher und klarer konzipiert sind.



  • Die ganze Zeit redest du von Blocks und jetzt kommen Closures ins Spiel? Vielleicht lernst du erstmal den Unterschied!

    Zu deiner Beruhigung: die Closure-Konstrukte unter Section 2 (falls du das mit "7 Arten von 'Blocks'" meintest) kenne ich. Auch die damit verbundenen Fallen (lambda vs. Proc, Arity).
    Das wird ja auch in jeder (guten) Grundlagenliteratur hinreichend erläutert. Wem das zu hoch ist, muss eben bei Python bleiben.

    Die Ungereimtheiten in Ruby bzgl. Closures sind unschön aber nicht weiter gefährlich. Solche Pitfalls gibt's wohl in jeder Sprache. Außerdem sind speziell diese Probleme Gegenstand einer Überarbeitung für Version 1.9. Die Sprache entwickelt sich weiter.



  • ich würde dennoch von Ruby abraten.

    Es gibt dynamische Programmiersprachen, die

    1. sich jahrzehntelang bewährt haben,
    2. auf einigen klar definierten Prinzipien beruhen und
    3. mit einfacher Syntax und Semantik dieselben Probleme lösen können wie ruby.

    Als Beispiele nenne ich hier Tcl, Lisp, Smalltalk, ferner Python.

    Ich kann schlicht keinen Bedarf für weitere Sprachen in dieser Richtung erkennen - mit Smalltalk ist doch seit den 70er Jahren schon alles gesagt, was es zum Thema "dynamische, objektorientierte Programmiersprachen" zu sagen gibt.

    Wie man an Ruby sieht, führen weitere Sprachen dieses Typs dazu, Sprachelemente wiederzuentdecken, die Lisp & Co. seit vielen Jahrzehnten bieten, nur bei den Klassikern mit einfacher Syntax und wenigen, klar definierten Prinzipien.



  • Schön, dass wir das mit den Blocks geklärt hätten.

    user-l schrieb:

    ich würde dennoch von Ruby abraten.

    Es gibt dynamische Programmiersprachen, die

    1. sich jahrzehntelang bewährt haben,

    Was nichts über Ruby aussagt.

    2. auf einigen klar definierten Prinzipien beruhen und

    Was auch immer du damit meinst.

    3. mit einfacher Syntax und Semantik dieselben Probleme lösen können wie ruby.

    Jetzt kommt auch noch Semantik ins Spiel...

    Ich kann hier wirklich keine Argumente gegen Ruby entdecken.

    Als Beispiele nenne ich hier Tcl, Lisp, Smalltalk, ferner Python.

    Ich kann schlicht keinen Bedarf für weitere Sprachen in dieser Richtung erkennen - mit Smalltalk ist doch seit den 70er Jahren schon alles gesagt, was es zum Thema "dynamische, objektorientierte Programmiersprachen" zu sagen gibt.

    Das sag doch mal all den tausenden Entwicklern und Benutzern von Python, Ruby, Lua, Groovy und wie sie alle heißen. Deren Relevanz scheint mir größer zu sein, als die von Smalltalk.

    Wie man an Ruby sieht, führen weitere Sprachen dieses Typs dazu, Sprachelemente wiederzuentdecken, die Lisp & Co. seit vielen Jahrzehnten bieten, nur bei den Klassikern mit einfacher Syntax und wenigen, klar definierten Prinzipien.

    Lisp und "klare Prinzipien" - da kann man geteilter Meinung sein. Jedenfalls haben einige Leute einen Bedarf nach einer klareren, einfacheren und schöneren Sprache gesehen und den Lisp-Dialek Scheme erfunden...


Anmelden zum Antworten