Leute, ist Ruby tot oder nicht?



Wenn ich das letzte Mal mit Entwicklern oder Unternehmen spreche, höre ich oft dieselbe Geschichte mit anderen Worten: "Wir haben in Ruby geschrieben, aber jetzt ziehen wir um." Einerseits nichts überraschendes. Entwicklung ist ein volatiles Geschäft, es erscheint immer etwas Neues, jeden Tag muss man viel Verstand aufwenden, um relevant zu bleiben.

Gleichzeitig gibt es eine gewisse Hingabe an die Technologie und sogar den Kult des Instruments. Sagen Sie dem PHP Shnik, dass es Zeit ist, zu .NET zu wechseln. Sie werden hören, dass "PHP ausgezeichnet ist, es schreibt die halbe Welt darauf", oder Sie werden es einfach auf Ihr Gesicht bekommen.

Was ist los mit Ruby und wohin ging seine explosive Popularität? Ich habe mit ein paar Rubisten gesprochen. Zum Beispiel Maxim Indykov von Staply, dessen Team von Ruby zu Go wechselt, und Alexei Kuznetsov von GeekBrains, einem Unternehmen, das mit Ruby-Kursen begonnen hat und diese nun vollständig aufgegeben hat.

Warum ist Ruby gut?


Maxim Indykov ( maks_ohs ): Durchdachte Syntax, bei der der Code so lesbar wie möglich aussieht. Sie können wirklich klar und präzise schreiben. Eine große Anzahl von Bibliotheken ist implementiert, deren Verbindung keine Probleme verursacht.

Pavel Serezhin: Das Hauptplus von Rubin sind Schienen, das beste Gerüst. Klar implementierte Muster, nicht wie bei node.js, cool wie Sie möchten. Die Codierung selbst ähnelt Englisch.

Alexey Kuznetsov: Die Sprache hat eine leichte und sehr präzise Syntax, die sich gut zur Beschreibung von DSL und Geschäftslogik eignet. Niedrige Eintrittsschwelle, freundliche Gemeinschaft. Ein guter Kandidat, um als Muttersprache zu lernen.

Warum ist Ruby schlecht?


Maxim Indykov: Die gesamte Geschichte der Sprachentwicklung, die Ressourcen benötigt, geht mit ernsthaften Optimierungen des Speicherverbrauchs einher. In der Referenzinterpreter-Implementierung (MRI) gibt es kein echtes Multithreading unter Verwendung mehrerer Prozessorkerne (GIL).

Dynamische Eingabe. Dies ist jedoch schwer den Minuspunkten zuzuordnen, da Sie so die Entwicklung beschleunigen können, wenn auch mit Qualitätsverlust.

Pavel Serezhin: Wie gut Rubin zum Schreiben ist, ist zum Lesen genauso ekelhaft. Es ist ziemlich schwer zu verstehen, was passiert, aber Gott bewahre, der Autor hatte ein Fahrradsyndrom und hat einen Scheiß gemacht - hier hängen Sie sich zumindest sofort auf. Manchmal reicht statisches Tippen nicht aus.

Alexey Kuznetsov: Die Sprache entwickelt sich praktisch nicht vor dem Hintergrund ihrer engsten Konkurrenten (JavaScript und Python). Das explosive Wachstum des Interesses an Ruby beruhte hauptsächlich auf Ruby on Rails. Aber jetzt, da Rails-ähnliche Frameworks in jeder gängigen Java-Sprache verfügbar sind, hat Ruby wenig zu bieten. Das Fehlen einer optionalen statischen Eingabe fügt auch keine Ruby-Punkte hinzu.

Sag mir, warum du es gewählt hast?


Alexey Kuznetsov: Ich bin vor ungefähr 5 Jahren mit C ++ zu Ruby gewechselt und zu dieser Zeit war es eine vernünftige Wahl. Ich wollte Produkte herstellen, die näher am Endverbraucher sind. PHP hatte nicht den besten Ruf. In JS regierte der ES5 + JQuery-Regelball, und die Python-Syntax war nicht inspirierend.

Pavel Serezhin: Erstens ist es aufgrund der Schienen ideal für den Bereich der Webentwicklung geeignet, den ich machen wollte. Und es ist schön, in einer entwicklerorientierten Sprache zu schreiben.

Maxim Indykov: Die Community hat wirklich beeinflusst. Eine große Anzahl hochwertiger schriftlicher Tutorials und Best Practices. Rails-Framework, das die Entwicklung vom Beginn des Projekts bis zur Bereitstellung so klar wie möglich macht. Eine Fülle von Ansätzen und Implementierungen zum Schreiben von Tests: RSpec, MiniTest und so weiter.

Hast du in diesem Moment gedacht, dass er eine Zukunft hat?


Maxim Indykov: Ja, die Sprache hat sich ständig weiterentwickelt (und tut dies auch jetzt noch). Es gab eine Vielzahl von Stellenangeboten. Vor dem Hintergrund von PHP schien alles am logischsten und korrektesten zu sein.

Pavel Serezhin: Ich hätte nie gedacht, dass Rubin oben sein würde, aber umgekehrt. Es schien immer, dass es nur wenige Entwickler geben würde, und dies würde aus heiterem Himmel Konkurrenz schaffen. Richtig - dies ist einer der Minuspunkte, es ist fast unmöglich, ab Juni einzutreten, außer in den Hauptstädten.

Warum wird Ruby jetzt immer weniger benötigt?


Pavel Serezhin: Jetzt wählen sie immer häufiger populärere Sprachen und Frameworks, um neue Projekte zu erstellen. Sowohl Rubin als auch Schienen sind etwas leistungsschwächer und halten nicht mit den Trends Schritt. Die Webpack-Unterstützung wurde auf Schienen bereitgestellt, was nicht viel hilft - es ist einfacher, sie in zwei separate Projekte aufzuteilen.

Alexey Kuznetsov: Node.js kannibalisiert aktiv die Nische von Webanwendungen, und Go gehen alle Arten von Dienstprogrammen aus.

Maxim Indykov: Es scheint mir, dass mich die ständige Komplikation von Aufgaben beeinflusst hat. Die Lösung erfordert entweder eine konstante Kapazitätserhöhung und einen zunehmenden Einsatz von Ressourcen oder Versuche, nicht an die Decke zu stoßen - architektonische Tricks.

Ruby wurde als solcher PL erstellt, der von Entwicklern und nicht von Unternehmen gemocht wird. Denken Sie, dass seine derzeitige Unbeliebtheit ein Indikator dafür ist, dass eine solche Strategie nicht funktioniert?


Alexey Kuznetsov: Mir scheint, dass die Situation umgekehrt ist. Andere Sprachen erreichten das Niveau, auf dem Entwickler gerne mit ihnen arbeiteten (Destrukturierung in ES6, Streams in Java8, keine Schwäche in Kotlin und Swift, ein Wettbewerbsmodell in Go).

Maxim Indykov: Unternehmen wollen Geld sparen - Serverressourcen. Wenn Technologie verfügbar ist, die die Last um Größenordnungen höher halten kann, werden sich nur wenige weigern, zu sparen.
Wenn diese Technologie eine strenge Typisierung aufweist, was ein Plus für die Zuverlässigkeit ist, ist dies ein weiterer Stein im Ruby-Garten.

Es scheint, dass dies die Situation in Russland ist: Es gab und gibt PHP-Entwicklung. Dann kam die lokale Popularität von Ruby, das als PHP-Killer dargestellt wurde, aber oft keine anderen geschäftlichen Argumente außer "Nun, es ist wirklich praktisch, über Ruby zu schreiben" fehlte. Alle hatten Angst vor dem Mangel an Spezialisten. Mit dem Aufkommen von Elixir and Go sind die Argumente viel verständlicher.

Musst du mit Ruby gehen?


Alexei Kuznetsov: Ich denke nicht, dass wir mit Ruby laufen sollten, aber es lohnt sich, nach Alternativen zu suchen.

Maxim Indykov: Der gesamte Markt wandert. Große Unternehmen kündigen den Einsatz von Go an. Wir sprechen jedoch über Migration in bestimmten Bereichen des Problems. Kenntnisse über neue populäre Technologien müssen unbedingt vorhanden sein.

Pavel Serezhin: Jetzt ist js viel beliebter und ziemlich unpraktisch, zwei verschiedene Syntaxsprachen zu besprühen. Historisch gesehen habe ich mehr Seele für React, also denke ich, den vollen Stack nach vorne zu lassen.

Wird er zu den völlig nicht beanspruchten Sprachen gehören?


Maxim Indykov: Nein, für das schnelle Schreiben von Prototypen und MVP, bei denen eine einfache Implementierung erforderlich ist, ist er seinesgleichen. Es gibt ein ungepflügtes Feld von Projekten, die schnell und effizient umgesetzt werden müssen. Der Moment, in dem eine Optimierung erforderlich ist, kommt möglicherweise nicht, aber wie Sie wissen, ist eine vorzeitige Optimierung böse.

Pavel Serezhin: Das glaube ich nicht. Für Ruby bleibt der Ruf einer etwas unbeliebten Sprache, einer Nische mit ihrer Community, bestehen.

Alexey Kuznetsov: Das ist noch ein langer Weg. Es gibt viele Situationen, in denen es nicht so wichtig ist, worüber das Projekt geschrieben wird. Und viele Entwickler sind bereit für das Wochenende, um MVP zu sammeln.
Und mit einem aufgepumpten Team von Rubisten können Sie das Produkt jahrelang erfolgreich entwickeln (GitHub und GitLab - beide in RoR geschrieben).

Ruby hat Millionen von Codezeilen geschrieben, die jemand pflegen muss.
Die Anzahl neuer Projekte wird jedoch mit der Zeit nur abnehmen. Ich denke an fünf Jahre, die die Sprache noch hat.

Was könnte Ruby helfen, beliebt zu bleiben?


Maxim Indykov: Große Flexibilität für Sprachentwickler. Implementieren Sie Verbesserungen für die Arbeit mit Multithreading.

Pavel Serezhin: Verbesserung der Leistung der Sprache selbst und der Schienen. Und setzen Sie das Unternehmen mit einer Menge Unterstützungsgeld.

Alexey Kuznetsov: Ruby hat sich nicht in einen Kürbis verwandelt. Andere Wagen erschienen gerade. Einige kommen mit Düsentriebwerken, andere leuchten stärker.
Ich denke, die optionale statische Eingabe (und die darüber hinausgehende Abstimmung) könnte helfen.

Welches der beliebten YaPs ist jetzt am besten für den Rubisten geeignet?


Maxim Indykov: Es kommt eher auf die Aufgaben an, aber meistens lautet die Antwort auf diese Frage: Elixier. Eine Sprache, die von Leuten aus der Ruby / Rails-Community erstellt wurde.

Alexey Kuznetsov: Im Allgemeinen bin ich nicht nahe daran, mich nach Programmiersprachen in Entwickler aufzuteilen. Für einen Softwareentwickler sollte es kein Problem sein, einen neuen Stack in 2-4 Wochen auf einem ausreichenden Niveau zu beherrschen.

Und so würde ich in Richtung Go / JS / Swift schauen, abhängig von den Aufgaben, auf die sich der Entwickler konzentrieren möchte. Es gibt Elixier und Clojure, aber sie sind kein Mainstream.

Pavel Serezhin: Fast jeder Rubin mit Selbstachtung fährt nach Golang. Die Antwort liegt also auf der Hand.

Source: https://habr.com/ru/post/de433672/


All Articles