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 ein paar Gedanken von anderen bekommen.
Lange Rede, kurzer Sinn - ich bin beim Rattenrennen ausgebrannt und habe dieses Jahr ein selbstfinanziertes Sabbatical. Vieles davon ist, eine Pause vom geschäftlichen Treiben einzulegen und herumzureisen, aber ich möchte auch mit neuen Technologien herumspielen und ein paar selbstlernende Projekte durchführen, mit dem Programmieren auf dem Laufenden bleiben und gut - ich liebe es einfach, daran zu basteln Programmieren ohne Druck!
Hier ist die Sache: Ich bin ein lebenslanger C / C ++ / Java-Programmierer. Ich bin ein bisschen schnörkellos, seit 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 verwandt ist. Was ich grundsätzlich suche, ist eine Sprache, die relativ allgemein gehalten ist, Spaß macht, 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 Jobs in der realen Welt, 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 darin besteht, eine serverseitige Skriptsprache für das Erstellen von Web-Inhalten zu sein (hauptsächlich Ruby on Rails). Ich habe überhaupt keinen großen Eindruck von Python, außer dass es eine leidenschaftliche Fangemeinde zu haben scheint und eine ziemlich vielseitige Sprache zu sein scheint.
TL; DR und um es so kurz wie möglich zu fassen: Welches davon wäre besser, wenn ein C ++ / Java-Typ lernen würde, einige neue Perspektiven auf die Programmierung zu bekommen? Und was ist offener und allgemeiner und auf eine größere Anzahl von Anwendungen anwendbar? Im Moment neige ich zu Ruby, aber ich mache mir in gewissem Maße Sorgen, dass es so aussieht, als würde es nur als serverseitige Websprache verwendet.
Antworten:
Lassen Sie sich nicht von der Tatsache täuschen, dass der Ruby vor allem aufgrund von Rails (dem Webanwendungs-Framework) zum allgemeinen Sprachgebrauch aufstieg. Es ist eine Allzweck-Programmiersprache, und Sie können sie für alles verwenden, für das Sie eine andere Sprache verwenden können.
Spielen Sie mit Ruby und sehen Sie, ob Sie sich in ihn verlieben. Entweder du wirst oder du wirst nicht. Es ist ein bisschen wie die Musik der Grateful Dead; Entweder du liebst es oder du hältst es nicht aus.
Ruby wird dein Gehirn dehnen. In vielerlei Hinsicht ist es so weit von C ++ / Java entfernt, wie es nur geht. Ich komme aus C und C # und fand Rubys Dynamik und Metaprogrammierkraft ziemlich berauschend.
Davon abgesehen ist Python eine absolut herausragende Sprache und wird Sie aus Ihrer geschweiften Klammer vertreiben.
Warum nicht beides lernen? Ich benutze beide regelmäßig: Ruby für die Programmierung mit Rails und Python für die Arbeit mit Google AppEngine.
quelle
Zugegeben, ich habe Ruby kaum benutzt, aber hier sind meine Eindrücke von Python:
Diese beiden Dinge fallen mir auf.
quelle
object
). Dieslen(obj)
ist auch eine Abkürzung zum Aufrufenobj.__len__()
und einefor i in range
Zusammenfassung der operativen Details zum Bedienen von Generatorobjekten. Ich denke / äquivalent aber anders / ist genauer.Wenn Sie ein ganzes Jahr Urlaub machen, würde ich vorschlagen, jeweils ein oder zwei Wochen mit Lernen zu verbringen und dann selbst zu entscheiden, was Ihnen am besten gefällt. Ich habe Erfahrung mit beiden und meiner Meinung nach sind beide so fähig, dass Sie sich wirklich nur entscheiden müssen, welches Sie bevorzugen.
quelle
IMO, sollten Sie 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 Web-Entwicklung eingesetzt. Im Gegensatz zu Python eignet sich Ruby nicht für die Entwicklung von GUI-Desktop-Anwendungen, numerischen, statistischen oder Bildverarbeitungsprogrammen.
quelle
Ruby gibt es schon viel länger als Rails, also lassen Sie es mich auf der ganzen Welt so machen
Ruby != web
, obwohl es das sehr gut macht. Es gibt eine Vielzahl von systembezogenen Dingen, die es kann und tut. Es scheint, als hätte das gesamte Rails-Framework den Rest der Ruby-Welt verschlungen. Und ja, ich bin ein Ruby-Fan.Python dagegen hat eine Menge zu bieten, und es wurde in fast alles unter Linux integriert. Das sagt mir, dass es wahrscheinlich ziemlich einfach ist, in größere Programme (im Vergleich zu Ruby, Java usw.) zu integrieren. Es gibt eine ganze Menge von Ubuntu Linux-Infrastrukturen, die mit Python geschrieben wurden, was mir sagt, dass Python eine Anwendung in der Systemprogrammierung hat. Ich habe gehört, dass das Web-Framework wirklich gut ist, ich habe noch nicht damit gespielt.
Trotzdem sind sowohl Ruby als auch Python gleichermaßen fähige Sprachen, und Sie werden feststellen, dass sie Ihnen das Leben erheblich erleichtern. 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.
quelle
Dies ist ein Sonderfall von " Ideal Programming Language Learning Sequence" und ähnlichen Fragen . Was Sie brauchen, ist nicht "die eine perfekte Sprache", Sie brauchen mehrere Sprachparadigmen und mehrere Lernerfahrungen, um Ihren Geist zu öffnen.
Ich weiß, Sie sagten, Sie hätten es auf Ruby und Python beschränkt, aber ich schlage vor, Sie beginnen mit Racket (einem beliebten Schema). Es ist auf Lernen ausgelegt und erweitert Ihr Gehirn auf angenehme Weise in Richtung funktionale Programmierung, interaktive Programmierung und dynamisches Tippen. Es gibt keine Jobs (im wahrsten Sinne des Wortes Null), eine sehr kleine, fragmentierte Community und kein wichtiges Web-Framework. Braten Sie Ihr Gehirn für eine Weile und ziehen Sie dann weiter.
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 wird trotz ihrer Unterschiede viel einfacher sein als das erste. Was mögliche Jobs angeht, ist mein Bauchgefühl, dass es aufgrund von Rails mehr Ruby-Arbeit gibt, aber ich weiß, dass es in diesem Bereich auch einige Zope-Arbeiten gibt. Investieren Sie in mindestens einen von ihnen, aber probieren Sie auch den anderen aus, der mindestens so lang ist, dass Sie etwas Kleines bauen können.
Ehrlich gesagt, Sie werden wahrscheinlich in Ihrer ersten Woche bei einem der beiden mehr lernen, als Sie jemals selbst gelernt haben. Beide haben große Ökosysteme mit vielen Werkzeugen, Kultur und Redewendungen.
tl; dr: Sowohl als auch Schema.
quelle
Auch ich komme aus Java / C ++ und habe in den letzten 4 Monaten mit dem Django-Framework in Python programmiert und es ist wirklich großartig. Wenn ich ein Problem oder eine Frage habe, kann ich Erklärungen zu vorhandenen Beiträgen finden. Ich kann nicht für Ruby bürgen, da ich es noch nicht benutzt habe, aber ich werde es auf jeden Fall versuchen, wenn ich etwas Zeit habe.
Mir persönlich gefällt, wie Sie mit Python wirklich schnell etwas anfangen können, da es viele nützliche Funktionen enthält.
quelle
Ich würde für Ruby stimmen. Ich kam aus dem .NET- und C # -Hintergrund und habe zuerst Python ausprobiert, aber Ruby hat mich einfach verzaubert =) Ich
schreibe eine Menge System-Zeug darin und einige Rails-Entwickler tun dies auch. Es ist als Python in der Systemprogrammierung fähig und im Web fantastisch. Und es fühlt sich für mich polierter an.
quelle