it-swarm.dev

Ruby oder Python?

Diese Frage ist äußerst subjektiv und offen. Es klingt vielleicht sogar nach etwas, das ich nur für mich selbst recherchieren und meine eigene Entscheidung treffen sollte. Aber ich würde es gerne veröffentlichen und einige Gedanken von anderen bekommen.

Lange Rede, kurzer Sinn - ich bin mit dem Rattenrennen ausgebrannt und habe dieses Jahr ein selbst finanziertes Sabbatical. Vieles davon ist, eine Pause vom Corporate Grind zu machen und herum zu reisen, aber ich möchte auch mit neuen Technologien herumspielen und einige selbstlernende Projekte durchführen, um beim Programmieren auf dem Laufenden zu bleiben und gut - ich liebe es einfach, daran zu basteln Programmieren, wenn es keinen Druck gibt!

Hier ist die Sache: Ich bin ein lebenslanger C/C++/Java-Programmierer. Ich bin ein bisschen ein schnörkelloser Klammer-Snob, da ich während meiner gesamten Programmierkarriere mit dieser Sprachfamilie gearbeitet habe. Ich möchte also eine Sprache lernen, die syntaktisch nicht so eng mit dieser Gruppe verbunden ist. Was ich im Grunde suche, ist eine Sprache, die relativ allgemein gehalten ist, Spaß macht zu lernen, einige neue Konzepte hat, die sich von C++/Java unterscheiden, und eine gute Community hat. Eine sekundäre Überlegung ist, dass es gute Webentwicklungs-Frameworks hat. Eine tertiäre Überlegung ist, dass es nicht vollständig akademisch ist (lesen Sie: Es gibt reale Jobs, die es verwenden).

Ich habe es auf Ruby oder Python) eingegrenzt. Mein Eindruck von Ruby ist, dass es extrem weborientiert ist - dass die einzige wirkliche Anwendung davon as ist Eine serverseitige Skriptsprache für Web-Aufgaben (hauptsächlich Ruby on Rails). Ich habe überhaupt keinen großen Eindruck von Python), außer dem Es scheint eine leidenschaftliche Fangemeinde zu haben und eine ziemlich vielseitige Sprache zu sein.

TL; DR und um es so kurz wie möglich auszudrücken: Welche davon wäre für einen C++/Java-Typ besser, um zu lernen, neue Perspektiven für die Programmierung zu bekommen? Und was ist offener und allgemeiner und für eine breitere Palette von Anwendungen anwendbar? Ich neige zu Ruby im Moment, aber ich mache mir in gewissem Maße Sorgen, dass es so aussieht, als würde es nur als serverseitige Web-Sprache verwendet.

24
Bobby Tables

Lassen Sie sich nicht von der Tatsache täuschen, dass Ruby] vor allem wegen Rails (das Webanwendungsframework)) in die allgemeine Sprache aufgestiegen ist. Es ist ein allgemeiner Zweck Programmiersprache, und Sie können es für alles verwenden, für das Sie jede andere Sprache verwenden können.

Spielen Sie mit Ruby und sehen Sie, ob Sie sich in es verlieben. Sie werden es entweder tun oder nicht. Es ist wie die Musik der Grateful Dead; Sie lieben es oder Sie können es nicht halte es aus.

Ruby wird dein Gehirn dehnen. In vielerlei Hinsicht ist es so weit wie möglich von C++/Java entfernt. Ich komme aus einem C- und C # -Hintergrund und fand Rubys Dynamik und Metaprogrammierkraft ziemlich berauschend.

Davon abgesehen ist Python eine absolut herausragende Sprache, und sie wird Sie aus Ihrer Curlybracketness herausholen.

Warum nicht beides lernen? Ich verwende beide regelmäßig: Ruby für die Programmierung mit Rails und Python für die Arbeit mit Google AppEngine).

35
Adam Crossland

Ich habe Ruby zwar kaum benutzt, aber hier sind meine Eindrücke von Python:

  • wenn ich Pseudocode schreibe, um eine Funktion zu zeichnen, stelle ich fest, dass das, was ich schreibe, praktisch ist Python ist, und manchmal ist bemerkenswert wenig Umschreiben erforderlich, um den tatsächlichen Code zu erstellen. Sie können sogar den Pseudocode alle zusammen überspringen und Ihre Gedanken direkt in Python ausdrücken
  • wenn ich etwas tun muss, das wie eine häufige Aufgabe erscheint, hat Python neigt dazu, die erforderlichen Funktionen (auf hoher Ebene) in seine Standardbibliothek zu integrieren. Zum Beispiel früh, als ich wollte Öffnen Sie eine Datei und scannen Sie sie Zeile für Zeile. Die Antwort war so einfach wie "Für Zeilen in myFile: Dostuff (Zeilen)". Ich glaube, sie nennen den Ansatz "Batterien enthalten" und er unterscheidet sich von einigen anderen Sprachen, die ich habe Wird verwendet, wenn der tägliche Betrieb viel fummeliger ist

Diese beiden Dinge fallen mir auf.

17
Andrew M

Wenn Sie ein ganzes Jahr lang ein Sabbatjahr verbringen, würde ich vorschlagen, ein oder zwei Wochen lang zu lernen und dann selbst zu entscheiden, welches Ihnen am besten gefällt. Ich habe Erfahrung mit beiden und meiner Meinung nach sind beide so fähig, dass Sie wirklich nur entscheiden müssen, welche Sie bevorzugen.

9
Jason Webb

IMO, du solltest mit Python gehen. Der Grund ist, dass es vielseitiger ist, Sie können es für fast alles verwenden. Ruby wird, wie Sie bemerkt haben, aufgrund seiner Web-Frameworks häufiger in der Webentwicklung verwendet. Im Gegensatz zu Python ist Ruby nicht so gut für die Entwicklung von GUI-Desktop-Anwendungen geeignet , numerische, statistische oder Bildverarbeitungsprogramme.

7
Marcin

Ruby gibt es schon viel länger als Rails, also lassen Sie mich sagen, dass Ruby != web Es in der Welt gibt, obwohl es das sehr gut macht. Es gibt eine Vielzahl von systembezogenen Dingen, die es tun kann und tut. Es scheint nur so, als hätte das gesamte Rails Framework den Rest der Ruby Welt verschlungen. Und ja, ich bin ein Ruby Fan.

Python hingegen hat viel zu bieten und wurde in fast alles unter Linux integriert. Das sagt mir, dass es wahrscheinlich ziemlich einfach ist, es in größere Programme zu integrieren (im Vergleich zu Ruby, Java usw.). Es gibt eine ganze Menge Ubuntu Linux-Infrastrukturen, die mit Python geschrieben wurden, was mir sagt, dass Python Anwendung in der Systemprogrammierung hat. Ich habe gehört, das Web-Framework ist wirklich schön, ich habe noch nicht damit gespielt.

Das heißt, sowohl Ruby als auch Python sind gleichermaßen fähige Sprachen, und Sie werden feststellen, dass sie Ihr Leben viel einfacher machen. Ruby hat viel mehr Webköpfe in seiner Community, aber das ist nicht die gesamte Community. Ich habe es auch für eine Reihe von Infrastrukturprojekten verwendet.

6
Berin Loritsch

Dies ist ein Sonderfall von " Ideale Programmiersprachen-Lernsequenz" und ähnliche Fragen . Was Sie brauchen, ist nicht "die eine perfekte Sprache", Sie brauchen mehrere Sprachparadigmen und mehrere Lernerfahrungen, um Ihren Geist zu öffnen.

Ich weiß, dass Sie gesagt haben, Sie hätten es auf Ruby und Python) eingegrenzt, aber ich schlage vor, Sie beginnen mit Racket (einem beliebten Schema). Es wurde zum Lernen entwickelt und wird Ihr Gehirn in Richtung funktionaler Programmierung ausdehnen. Interaktives Programmieren und dynamisches Tippen. Es gibt keine Jobs (im wahrsten Sinne des Wortes Null), eine sehr kleine, fragmentierte Community und kein großes Webframework. Genau deshalb bleiben Sie nicht hängen, braten Sie Ihr Gehirn für eine Weile und fahren Sie dann fort .

Zweitens möchten Sie Ruby oder Python für mögliche Jobs) lernen. Ich schlage vor, Sie lernen beide. Das Erlernen des zweiten dieser beiden ist viel einfacher als das Erstens, trotz ihrer Unterschiede. Was mögliche Jobs betrifft, ist mein Bauchgefühl, dass es mehr Ruby Arbeit wegen Rails gibt, aber ich weiß, dass es auch einige Zope-Arbeiten in diesem Bereich gibt. Investieren Sie zumindest in einer von ihnen, aber schauen Sie sich auch den anderen mindestens lange genug an, um etwas Kleines zu bauen.

Ehrlich gesagt, werden Sie in Ihrer ersten Woche bei beiden wahrscheinlich mehr lernen, als Sie jemals selbst gelernt haben. Beide haben große Ökosysteme mit vielen Werkzeugen, Kultur und Redewendungen.

tl; dr: Beide und Schema.

5
Jesse Millikan

Auch ich kam aus Java/C++ und habe in den letzten 4 Monaten in Python mit dem Django Framework) programmiert und es ist wirklich großartig. Wann immer ich Ich habe ein Problem oder eine Frage. Ich kann Erklärungen zu vorhandenen Posts finden. Ich kann nicht für Ruby bürgen, da ich es noch nicht verwendet habe, aber ich werde es auf jeden Fall versuchen, wenn ich etwas Zeit habe .

Mir persönlich gefällt, wie Sie mit Python] sehr schnell arbeiten können, da viele nützliche Funktionen integriert sind.

1
chiurox

Ich würde für Ruby stimmen. Ich kam aus dem .NET- und C # -Hintergrund und versuchte es mit Python zuerst, aber Ruby hat mich nur verzaubert =)
Ich schreibe eine Menge Systemmaterial darin und einige Rails dev to. Es ist fähig als Python in der Systemprogrammierung und ist Super im Web. Und es fühlt sich für mich ausgefeilter an.

1