Wie Sie vielleicht aus dem Titel bemerkt haben, handelt es sich nicht um eine "PHP oder Ruby" - oder "PHP vs. Ruby" -Frage. Dies ist eine Frage zur Nutzung von PHP + Ruby im selben Geschäft.
Ich selbst bin ein PHP-Entwickler, ich liebe die Sprache wegen ihrer Bequemlichkeit und ich liebe besonders das Ökosystem der Ressourcen, die sie umgeben: Joomla, Drupal, Wordpress, Symfony2, Doctrine2 usw. Die Sprache selbst kann jedoch manchmal etwas enttäuschend sein .
OTOH, Ruby sieht aus wie eine sehr schöne Sprache und - vom oberflächlichen Studium in mehreren Aspekten - könnte ich sagen, dass sie schlanker ist als Python als Sprache an sich. Nach allem, was ich gesehen habe, macht so ziemlich nur RoR Geräusche, und ich mag RoR nicht so sehr (hauptsächlich wegen seiner Modellebene).
Als Co-CEO und CTO in meinem Unternehmen versuche ich, über den Tellerrand hinaus zu denken, da ich mich auf die menschliche Seite der Technologie konzentrieren und herausfinden möchte, ob es sinnvoll ist, sowohl PHP als auch Ruby zu verwenden. Hier sind einige zufällige Gedanken:
- Ruby-Leute scheinen im Allgemeinen besser für Programmierer geeignet zu sein als PHP-Leute (im Durchschnitt). Ich weiß, dass die vorherige Aussage etwas Quatsch ist, weil sehr gutes und gut strukturiertes PHP geschrieben werden kann, aber ich würde sagen, dass die Ruby-Programmiererkultur besser ist als PHPs.
- Die Sache mit Ruby ist, dass es besser für eine schnelle Entwicklung geeignet zu sein scheint. Ich weiß nicht wirklich, ob dies nur für RoR der Fall ist, aber ich weiß, dass es bestimmte Praktiken (vielleicht nicht so gut) wie das Patchen von Affen gibt, die das Geschäft ermöglichen muss schneller befriedigt werden.
- Aus Marketing-Sicht (ja, manchmal müssen Sie die Marketing-BS für Ihr Unternehmen nutzen) scheint Ruby besser zu sein, während PHP einige Stigmen enthält.
- PHP 5.4 bringt Eigenschaften mit sich , und das ist besser / sauberer als Mixins. Das könnte PHP für bestimmte Dinge wirklich so schlank wie Ruby machen - oder mehr.
Nun konkret meine Fragen:
- Würde ein PHP-Programmierer Ruby lernen wollen? Ich weiß, dass ich es tue, aber umgekehrt würde ein Ruby-Programmierer PHP lernen wollen?.
- Welche Arten von Projekten oder Situationen wären für Ruby besser geeignet, die nicht für PHP geeignet sind?
- Was ist das eigentliche Ökosystem von Ruby? Abgesehen von RoR habe ich keine anderen hochgespielten Technologien / Frameworks gesehen (ich habe RSpec gesehen, aber ich gebe zu, ein absoluter Neuling darüber zu sein, woraus BDD wirklich besteht und welche Auswirkungen es hat).
- Angenommen, es gibt eine bestimmte Art von Projekten, die ideal für Ruby sind. Gibt es einen Moment, in dem es besser ist, sie auf PHP zu verschieben? Ich weiß, dass PHP mit vielen Dingen umgehen kann, aber ich habe gelesen, dass Ruby beim Skalieren seine Grenzen hat (oder ist das RoR? Oder ist das Quatsch für beide?).
- Schließlich und vor allem, wäre es vernünftig, Projekte in zwei Sprachen zu pflegen? Oder ist das einfach nur dumm? Wie gesagt, es sieht so aus, als ob Ruby kurzfristig schlanker ist und das kann dazu führen, dass ein Projekt zustande kommt und erfolgreich ist, aber ich bin mir auf lange Sicht nicht so sicher.
Ich suche nach Erkenntnissen hauptsächlich von Menschen, die die Stärken und Schwächen der Sprachen - vorzugsweise beider - und Rubys Ökosystem in der Praxis gut kennen, was bedeutet: Frameworks und Anwendungen, wie ich sie aus dem PHP-Ökosystem zitiert habe.
quelle
Ehrlich gesagt scheinen mir Ihre Fragen unklar zu sein, aber ich werde trotzdem versuchen, sie zu beantworten.
Nichts für ungut, aber diese Frage ist nicht zu beantworten. Es hängt wirklich von zu vielen Faktoren ab, von denen viele mit der Persönlichkeit des Programmierers zusammenhängen. Einfache Antwort: Natürlich, warum nicht? Es ist ein weiteres Tool zum Erstellen von Websites.
Was Projekte
betrifft, sind beide genauso geeignet (wenn ich mich recht erinnere, läuft Ruby langsamer, obwohl dies mit einer Prise Salz zutun ist,daAFAIK, Stackchange mit RoR erstellt wird[ich lese nie aktuelle Benchmarks]). Eine Situation, die besser zueinander passt, ist, wenn Sie beabsichtigen, ein bestimmtes Framework zu verwenden, oder wenn Ihr Team aus Personen besteht, die mehr Erfahrung in einer der beiden Sprachen haben. Ich glaube wirklich nicht, dass es eine bestimmte Art von Projekt gibt, die für eine bestimmte Sprache "ideal" ist. Es läuft wirklich auf die Besonderheiten jedes Projekts hinaus (und selbst dann wären die Unterschiede subtil).Ruby on Rails ist ein enormer Teil des Erfolgs von Ruby. Ruby blieb eine unbekannte Sprache, bis RoR eingeführt wurde. Es gibt viele interessante Projekte, die auf Ruby basieren, aber nichts kommt dem Erfolg und der Akzeptanz durch die Community nahe. Es gibt CMS, die auf RoR basieren und bekannt sind. Lovd von Less zum Beispiel.
Der einzige Fall, den ich mir vorstellen kann, ist direkt nach dem Prototyping mit Ruby, wenn Sie der Meinung sind, dass PHP zu einer schnelleren Entwicklung führen würde. Aber wie wollen Sie ein einmal gestartetes Projekt auf PHP verschieben? Den gesamten Code portieren, der geschrieben wurde?
Wenn Sie keine Panzerfaust auf Ihren Kopf haben, absolut nicht.Wenn Sie zwei völlig unterschiedliche Projekte in zwei verschiedenen Sprachen pflegen wollen, dann absolut. Ich glaube nicht, dass Sie jemals lange Zeit mit derselben Sprache arbeiten werden. Zum Beispiel hüpfe ich ständig von Sprache zu Sprache. Ich beherrsche nur wenige, aber ich kenne genug von den anderen, um mich aus jeder Situation zu befreien (bis jetzt). Ich bin freiberuflich tätig, daher haben Menschen, die in Unternehmen arbeiten, möglicherweise eine andere Erfahrung. Mein Punkt ist jedoch, dass die Pflege verschiedener Projekte in verschiedenen Sprachen einfach (genug) ist und Spaß macht.
quelle
Wenn Sie Desktop-Anwendungen entwickeln und dieselbe Programmiersprache verwenden möchten, ist Ruby (insbesondere JRuby) besser geeignet als PHP. /programming/1129383/non-trivial-desktop-apps-that-use-ruby
quelle
Denken Sie beim Lesen daran, dass ich ein Ruby on Rails-Entwickler bin und von diesem Ökosystem aus antworte. Meine Ansichten werden in diese Richtung geneigt sein.
In den meisten Fällen absolut nicht. Nicht nur, weil ich PHP nicht mag (ich nicht, aber ich benutze es), sondern weil die Tool-Sets grundlegende ideale Unterschiede aufweisen. Es gibt viele Tools wie Rake und Rspec, die bei einigen von TDD in der Rubinwelt helfen. In den meisten Ruby-Tutorials (und sicherlich auch in Rails) steht das Testen an erster Stelle. Das heißt nicht, dass Sie dies in PHP nicht tun können, es ist nur so, dass Konventionen unterschiedlich sind. Und die konventionellen Unterschiede zwischen den beiden Sprachen sind im Allgemeinen direkt entgegengesetzt.
Desktop-Anwendungen, Shell-Skripte, MVC-Apps (wieder Rails) und kleine Konsolenanwendungen. Nicht, dass dies mit PHP nicht möglich wäre, Ruby hat einfach eine bessere Unterstützung. Wenn ich eine Rails-App schreibe (sorry), schreibe ich oft ein einziges Skript in Ruby. Dadurch können meine Bereitstellungs- oder Setup-Skripte in derselben Sprache wie meine Anwendung sein, wobei ich mit PHP niemals versuchen würde, ein Shell-Skript in PHP zu schreiben. Ich würde nur Bash verwenden. Ich habe Ruby QT-Apps und MVC-Apps (sowohl Rails als auch nicht) und Ruby geschrieben, und die umgebenden Bibliotheken funktionieren in diesen Fällen einfach "besser".
Dies ist eine Art Missverständnis. RoR ist beliebt, weil es seine Arbeit gut macht, aber es gibt möglicherweise andere Toolsets / Stacks, die im Kern Ruby verwenden. Sie sind weniger beliebt, weil sie einen Raum betreten, der bereits Alternativen bietet. Ich jedenfalls schreibe gerne schnelle GUI-Anwendungen in Ruby. Aber Python, C #, VB, LISP usw. usw. können dies bereits. RoR war ein Game Changer. Daher ist es beliebt. Das gleiche gilt für PHP, nennen Sie ein beliebtes PHP-Framework. Es gibt einige, aber entfernen Sie Produkte (wie WordPress) aus der Liste, und Sie haben nicht mehr viel übrig.
Dies ist eine knifflige Frage und Sie müssen sich fragen, welche Sprache für mein Projekt besser ist. Ich würde niemals einen Blog in Rails schreiben. Ich weiß, dass dies das Standard-Tutorial-Beispiel ist, aber wenn Sie ein Blog möchten, ist WordPress das richtige Werkzeug. Gleiches gilt hier. Wenn Sie auf ein solides Beispiel für die Notwendigkeit stoßen, Sprachen von Ruby wegzuschalten, schließen die technischen Einschränkungen, mit denen Sie konfrontiert sind, auch PHP aus.
Ruby ist auf lange Sicht großartig. Das größte Hindernis für den langfristigen Erfolg ist nicht die Sprache, sondern der Entwickler. Die Verwaltung von zwei Sprachen hängt davon ab, wie Sie ein Projekt definieren. Ich habe ein paar Projekte, die eine starke Anwendung in Schienen haben, und einen Blog oder eine Verkaufsseite, die WordPress / Dupral / einige PHP verwendet. Ich betrachte sie als separate Projekte. Ich werde sagen, je mehr Sprachen Sie unterstützen, desto schwieriger ist es, einen guten Entwickler zu finden, der in allen Sprachen gut ist. Zum Beispiel verwende und empfehle ich WordPress, aber ich bin in PHP nicht annähernd so "gut" wie in RoR. Wenn ein Kunde wirklich die Hälfte seines Kernprodukts in PHP und die Hälfte in RoR haben wollte, müsste ich wirklich herausfinden, warum und abhängig von seiner Antwort würde die Arbeit wahrscheinlich ablehnen.
quelle