Was sind die Aussichten für Node.js nach der Wiedervereinigung - Expertenmeinungen



    Es war einmal, dass PHP, Apache und MySQL in Kombination mit JavaScript über AJAX die perfekte Ergänzung für einen Webentwickler waren. Es schien so, als ob dieses Werkzeugset jedes Problem lösen könnte. Die Anforderungen nahmen jedoch zu, der Quellcode wuchs vor unseren Augen, die Last nahm zu und die üblichen Tools hörten auf zu funktionieren.

    Experten waren überzeugt, dass das klassische „Request-Response“ -Schema schuld war. Die Seitenanforderung veranlasste den Webserver, ein Skript abzurufen, es linear auszuführen und das Ergebnis an den Client-Browser zurückzugeben. Und erst danach fahren Sie mit der Verarbeitung der nächsten Anforderung fort.

    Auf der Suche nach einem Ausweg aus dieser Situation haben sich kluge Köpfe daran erinnert, dass der Server auch in JavaScript geschrieben werden kann.

    Dann wäre es möglich, die Server- und Client-Teile der Site in derselben Sprache zu entwickeln. Ende der 2000er Jahre war es eine einfache und gleichzeitig flexible Sprache, mit der Sie Code in verschiedenen Paradigmen schreiben konnten: von der üblichen Vorgehensweise bis zum OOP in Kombination mit einem funktionalen Stil. Eine andere Eigenschaft von JavaScript spielte jedoch eine entscheidende Rolle - die Asynchronität.

    Hier ist ein Beispiel für die Einschränkungen der sequentiellen Ausführung von PHP-Code, die wir hier ausgeliehen haben :
    $result = $db->fetchOne('SELECT user_name FROM user_accounts WHERE id = 1');
    echo 'Мое имя: ' . $result . ';';
    Die erste Zeile enthält eine einfache SQL-Abfrage an die Datenbank, um den Namen des Benutzers mit id = 1 abzurufen. Zu diesem Zeitpunkt wird das Skript angehalten und die nächste Zeile wird erst ausgeführt, wenn die Datenbank verarbeitet und das Ergebnis zurückgegeben wird $ result Variable. In unserem Beispiel sind dies Tausendstelsekunden, aber in Wirklichkeit sind Abfragen viel komplizierter, und die Größe der Datenbank beträgt häufig Gigabyte, und es können mehrere Tausend Abfragen gleichzeitig vorliegen.

    Asynchrone JS-Codeausführung:
    db.query('SELECT user_name FROM user_accounts WHERE id = 1', function(err, res)
    {
    if (!err) sys.log('Мое имя: ' + res);
    });
    sys.log('Продолжаем выполнение');
    Auch hier wird eine Abfrage an die Datenbank erstellt. Zusätzlich zum SQL-Ausdruck selbst übergibt die Anforderung jedoch auch eine Rückruffunktion. Diese Funktion wird genau dann aufgerufen, wenn eine Antwort aus der Datenbank eingeht, und bis zu diesem Zeitpunkt wird das Skript nie aufhören, ausgeführt zu werden. Die Grundlage jeder Version von serverseitigem JavaScript ist das Konzept von Ereignissen und Rückrufen, dh Ereignishandlern. Die Aktionen, die im Ereignisfall ausgeführt werden müssen, sind in den Funktionen der Event-Handler beschrieben.

    Solche Überlegungen veranlassten JS-Liebhaber, ihre eigenen Server-Engines zu erstellen.

    Node.js


    Am 2. September wurde die erste öffentliche Version des offenen Chromium-Browsers offiziell vorgestellt. Während der Entwicklung wurde auch V8, ein browserbasierter JavaScript-Interpreter, erstellt. Hauptentwickler war Lars Buck. Die Hauptprobleme, die die Entwickler in der Engine lösen mussten, waren Leistung und Skalierbarkeit.

    Nach dem Erfolg des Browsers erkannten kluge Köpfe, dass eine so schnelle Engine auch auf dem Server erfolgreich eingesetzt werden kann.

    Weitere Experimente führten zur Entstehung des Node.js-Projekts - einer völlig unabhängigen Plattform, die neben der Engine einen integrierten Server (HTTP und TCP / UDP / Unix-Socket) und eine Reihe grundlegender Bibliotheken umfasst sowie die vollständig asynchrone Arbeit mit Dateien und Netzwerkgeräten ermöglicht.

    Node.js wurde 2009 von Ryan Dahl entwickelt. Er kam zu dem Schluss, dass man sich anstelle des traditionellen Modells der auf Flüssen basierenden Parallelität ereignisorientierten Systemen zuwenden sollte. Dieses Modell wurde aufgrund seiner Einfachheit, seines geringen Overheads (verglichen mit der Ideologie von „einem Thread pro Verbindung“) und seiner Geschwindigkeit ausgewählt.

    Um einen HTTP-Server zu starten, der Tausende von Verbindungen asynchron verarbeiten kann, benötigen Sie einige Codezeilen:

    // Загружаем модуль http
    var http = require('http');
    // Создаем web-сервер с обработчиком запросов
    var server = http.createServer(function (req, res) {
        console.log('Начало обработки запроса');
        // Передаем код ответа и http-заголовки
        res.writeHead(200, {
            'Content-Type': 'text/plain; charset=UTF-8'
        });
        res.end('Hello world!');
    });
    // Запускаем web-сервер
    server.listen(2002, "127.0.0.1", function () {
        console.log('Сервер запущен http://127.0.0.1:2002/');
    });

    Das Aufkommen von Node.js sorgte bei den Entwicklern für Aufsehen. Bereits in einem frühen Stadium der Projektentwicklung haben Unternehmen wie Netflix, Walmart, PayPal, Dow Jones und Groupon damit begonnen.

    Und sie würden glücklich leben, aber ...


    Im November 2014 kam es zu einer Trennung in der Node.js-Community. Einige Teilnehmer waren mit den Richtlinien von Joyent unzufrieden, die die Entwicklung von Node.js überwachen.

    Es wurde auch behauptet, dass Joyent die Meinung der Community ignorierte, nur in ihren eigenen Interessen handelte und die Kontrolle über das Projekt nur in ihren eigenen Händen konzentrierte. Außerdem hatte Joyent zu diesem Zeitpunkt der Gewährleistung der Stabilität der Codebasis absolute Priorität eingeräumt, was die Integration neuer Funktionen erschwerte. Seit Anfang 2013 gab es keine wesentlichen Releases mehr, die letzte aktuelle Filiale 0.10 basierte auf einer veralteten Version der V8-Engine.

    Die Initiative zur Trennung von Joyent wurde von 5 von 7 Schlüsselentwicklern von Node.js unterstützt, darunter Isaac Schlüter, ein ehemaliger Projektleiter.

    Innerhalb weniger Monate stellte sich heraus, dass io.js sowohl die Produktivität als auch die Entwicklungsgeschwindigkeit übertraf.

    Wiedersehen


    Im Mai 2015 fand eine Sitzung des Technischen Komitees des io.js-Projekts statt, bei der beschlossen wurde, sich mit Node.js zusammenzutun und gemeinsam unter der Schirmherrschaft der Node Foundation weiterzuentwickeln.

    Kurator des Verbundprojekts war die Linux Foundation, die eine effektive und unabhängige Plattform für die Entwicklung von Node.js bildete. Joyent beteiligte sich weiterhin an der Entwicklung, Unterstützung und Finanzierung des Projekts, jedoch als gewöhnliches Mitglied der Gemeinschaft. Zu den Gründern der Node.js Foundation gehörten neben Joyent Unternehmen wie IBM, Microsoft, PayPal, Fidelity und SAP.

    8. September 2015 Node.js v4.0.0 wurde als Ergebnis der Fusion von Node.js v0.12.7 und io.js v3.3.0 veröffentlicht

    Nach der Assoziation machte die Community auf beeindruckende Statistiken aufmerksam: In den Jahren 2010 bis 2015 fügten Entwickler dem Code-Repository mehr als 190.000 Module für Node.js (und andere JavaScript-Bibliotheken) hinzu. Dies übersteigt das gesamte in 20 Jahren erstellte Perl-CPAN-Repository und umgeht Java Maven Central, trotz weniger Node.js-Entwickler.

    Node.js 7


    Am Ende September 2016 herauskam Node.js 7 Beta. Es verwendet die aktualisierte Engine V8 5.4. Darüber hinaus werden 98% des ECMAScript 6-Standards unterstützt. Im Vergleich zu 56% in Node.js 5 ist dies ein bedeutender Fortschritt.

    Es wachsen jedoch nicht nur die Versionsnummern von Node.js. Laut Indeed.com wächst die Nachfrage nach Node.js Fachleuten auf dem Arbeitsmarkt weiter.



    Da solche Statistiken jedoch nicht immer den tatsächlichen Stand der Dinge widerspiegeln, haben wir uns entschlossen, mit Experten über die Verwendung der Technologie, über die Wettbewerber von Node.j und über die Aussichten für die Entwicklung des Projekts zu sprechen.

    1. Wie schnell entwickelt sich Node.js? Sind Sie mit dem aktuellen Tempo zufrieden?

    2. Wie beurteilen Sie die Relevanz, Popularität im Hinblick auf eine ernsthafte Entwicklung in IT-Unternehmen? Wie berechtigt ist das? Für welche Projekte ist Node.js geeignet?

    3. Wie hat sich der Node.js-Entwicklermarkt verändert? Sind sie weniger, mehr? Wie hat sich die Qualität ihrer Arbeit für Sie verändert?

    4. Können Sie die Konkurrenten für Node.js nennen? Wie stark sind sie?

    5. Wie sehen die Aussichten für Node.js für die nächsten 5 Jahre aus?

    Anton Kulakov , Front-End-Entwickler




    Wie schnell entwickelt sich Node.js Ihrer Meinung nach? Sind Sie mit dem aktuellen Tempo zufrieden?

    Nach der Gründung der Node.js Foundation wurde es viel besser. Jetzt passt alles zu mir persönlich.

    Wie beurteilen Sie die Relevanz, Popularität im Hinblick auf eine ernsthafte Entwicklung in IT-Unternehmen? Wie berechtigt ist das? Für welche Projekte ist Node.js geeignet?

    Ich habe keine solchen Statistiken, daher kann ich nur nach meinen Gefühlen urteilen.

    Nachfrage - ja. Viele Dinge sind mit Node.js sehr einfach zu erledigen. Popularität ist schwer zu sagen. Wir können definitiv sagen, dass es bei Front-End-Entwicklern sehr beliebt ist.

    Wie berechtigt ist das? Auf die Aufgabe kommt es an. JavaScript ist für manche Aufgaben besser, für manche schlechter. Node.js mit einem Frontend Build zu beauftragen ist gerechtfertigt und richtig. Es ist wahrscheinlich möglich, Node.js mit der Steuerung von Raumfahrzeugen zu beauftragen, aber ich würde zuverlässigere Technologien wählen.

    Wie hat sich der Node.js-Entwicklermarkt verändert? Sind sie weniger, mehr? Wie hat sich die Qualität ihrer Arbeit verändert

    ? Ich habe keine nennenswerte Veränderung der Nachfrage nach Node.js-Entwicklern bemerkt. Vielleicht ist der Besitz von Node.js in letzter Zeit für Front-End-Entwickler zu einer Pflicht geworden. Es gibt viel mehr Spezialisten, aber ihre Qualität ist schwer zu bewerten. Ich habe keine solchen Statistiken.

    Node.js ist nur ein Tool zum Ausführen von JavaScript-Skripten. Dies ist natürlich eines der beliebtesten Tools zum Ausführen von JavaScript, das nicht im Browser enthalten ist.

    Was sind die Aussichten für Node.js für die nächsten 5 Jahre?

    Ich denke, Node.js hat eine großartige Zukunft. Vor allem bei Frontend-Entwicklern. In anderen Bereichen liegen die Vorteile von JavaScript nicht ganz auf der Hand.

    Danil Skachkov , Senior Software Developer, api.ai




    Wie schnell entwickelt sich Node.js Ihrer Meinung nach?

    Es entwickelt sich gut, aber meiner Meinung nach entwickeln sich Body Kits zu schnell und etwas chaotisch. Es gibt keine Beschwerden über node.js selbst als Laufzeit.

    Sind Sie mit dem aktuellen Tempo zufrieden?

    Und warum nicht, besser zu entwickeln als still zu stehen.

    Wie beurteilen Sie die Relevanz, Popularität im Hinblick auf eine ernsthafte Entwicklung in IT-Unternehmen?

    Kurz gesagt, es ist mehrdeutig. Aber hier hängt alles sehr davon ab, welche Sprache Sie für die Entwicklung unter Node.js verwenden. Wenn Sie nur JavaScript verwenden, werden Sie sehr schnell feststellen, dass es unklar wird, was in Ihrem Programm verbunden ist und wie. Dies liegt daran, dass JS dynamisch ist. Wenn Sie beispielsweise TypeScript verwenden, wird die Typüberprüfung bereits in der Kompilierungsphase durchgeführt, und das Programm weist dementsprechend eine geringere Unschärfe auf.

    Wie berechtigt ist das? Für welche Projekte ist Node.js geeignet?

    Es kommt auf die Aufgabe an. Für Microservices ist es meiner Meinung nach das Richtige.

    Können Sie die Konkurrenten für Node.js nennen? Wie stark sind sie?

    Hier können Sie sich sehr lange erinnern. Soweit ich mir vorstellen kann, wird jedes Produkt, das zum Schreiben eines Backends geeignet ist, ein Konkurrent sein. Und alle Produkte haben ihre eigenen Stärken und Schwächen. Node.js ist im Moment stark in seiner Einfachheit bei kleinen Aufgaben.

    Zum Beispiel, um kleine REST-Services zu schreiben. Bei viel Code kann es Probleme mit der Transparenz der Anwendungslogik geben, aber wie gesagt, dies ist eine Funktion von JavaScript, die sehr gut mit Typescript oder ähnlichem gelöst werden kann.

    Was sind die Aussichten für Node.js für die nächsten 5 Jahre?

    Die Aussichten einer Technologie in einem solchen Zeitraum sind ziemlich schwer vorherzusagen. Ich denke, dass in naher Zukunft die Popularität aufgrund der Popularität von Microservices und der Einfachheit für kleine Aufgaben zunehmen wird. Na dann werden wir sehen.

    Denis Izmailov , Mitbegründer von Moscow Node.js Meetup, Gründer der Node.js-Gruppe bei Telegram, befasst sich mit kundenspezifischer Entwicklung auf dem internationalen Markt:




    Wie schnell entwickelt sich Node.js Ihrer Meinung nach? Sind Sie mit dem aktuellen Tempo zufrieden?

    Vor zwei Jahren hätten wir unglücklich sein können, aber wir alle erinnern uns an die Geschichte, als Fedor Indutny im vergangenen Januar fork io.js veröffentlichte, um die Einführung der neuesten Versionen von V8 zu erzwingen und den Entwicklungsprozess offener zu gestalten. Dies führte dazu, dass vor einem Jahr eine legendäre Version von Node.js 4.0.0 veröffentlicht wurde und wir seitdem jeden Monat Veröffentlichungen beobachten .

    Eine andere Frage ist der Inhalt dieser Änderungen, aber dies ist ein Thema für eine separate Diskussion. Die gute Nachricht ist, dass wir mit einem so aktiven und kontinuierlichen Entwicklungszyklus einen Mittelweg gefunden haben und nun die Befürworter der Stabilität dank der LTS-Versionen, die für die Produktion und große Projekte von entscheidender Bedeutung sind, zufrieden sind.

    Wie beurteilen Sie die Relevanz, Popularität im Hinblick auf eine ernsthafte Entwicklung in IT-Unternehmen? Wie berechtigt ist das? Für welche Projekte ist Node.js geeignet?

    Für alle mit der richtigen Konfiguration des Clusters auf Kubernetes. So haben wir für unsere Kunden Probleme mit der Skalierbarkeit und Elastizität des Systems entschieden. Wenn Sie sich jedoch die Erfahrungen der Kollegen ansehen und alle Nuancen auf dem Arbeitsmarkt berücksichtigen, bleibt noch eine kleine Bandbreite spezifischer Aufgaben übrig, die (aus geschäftlicher Sicht) mit Python, Golang oder Erlang sicherer zu erledigen wären - wie Data Mining, Datenverarbeitung und andere Dinge.

    Wenn wir über die Nachfrage von Unternehmen oder IT-Abteilungen sprechen, wächst sie hier ständig und es gibt viele Gründe - sowohl die Vermeidung von PHP, Ruby und Java bei der Webentwicklung als auch die Möglichkeit isomorpher Anwendungen, über die ich in meinen Berichten viel gesprochen habe bei Konferenzen und Tagungen. All dies kann die Kosten erheblich senken und die Produktqualität verbessern.

    Wie hat sich der Node.js-Entwicklermarkt verändert? Sind sie weniger, mehr? Wie hat sich die Qualität ihrer Arbeit für Sie verändert?

    Wo genau ist der Markt? Weltweit hat es stark zugenommen und nimmt weiter zu. Die Nachfrage nach Fullstack JS auf dem internationalen Markt ist um ein Vielfaches höher als das Angebot. Dies wird sowohl durch das Wachstum von Start-ups als auch durch die Reife des gesamten Ökosystems erleichtert. Viele Entwickler ziehen zu hohen Gehältern in die USA, nach Europa und nach Asien oder wechseln einfach zu einer abgelegenen Arbeitsform. In diesem Sinne sehen wir auf dem lokalen Markt sogar einen leichten Rückgang der professionellen Entwickler einerseits und einen großen Zustrom von Junioren andererseits.

    Aus diesem Grund haben wir in Moskau begonnen, Meetings auf Node.js abzuhalten, bei denen sich die Jungs live mit den Entwicklern des Node.js-Kerns unterhalten können - so interessante Persönlichkeiten wie Vladimir Kurchatkin und Nikita Skovoroda.

    Können Sie die Konkurrenten für Node.js nennen? Wie stark sind sie?

    Natürlich bietet sich die Antwort auf Golang sofort an. Auch der Marktanteil wächst deutlich. Meistens jedoch aufgrund von Großunternehmen und DevOps-Lösungen, bei denen Millisekunden entscheidend sind. Dort zahlt sich der Service auf Golang zwar aus, aber dies ist der Fall, wenn das Budget des Projekts dies zulässt.

    Was sind die Aussichten für Node.js für die nächsten 5 Jahre?

    Vor einiger Zeit hatten viele Hoffnung auf WebAssembly. Und wenn asm.js nicht erfolgreich war, ist es jetzt möglich, "Bytecode" im Browser zu starten, was bedeutet, dass in einer beliebigen Sprache programmiert wird. Aber heute sehen wir wieder, dass die Hersteller nicht zustimmen können, was bedeutet, dass JavaScript eine große Zukunft hat.

    Jetzt werde ich nichts über Multithreading, Analoga von Goroutine und Channels oder die Tatsache sagen, dass Node.js nach der Stabilisierung von ES6 V8 aufgibt, einfach weil die Interaktion von Diensten eine etwas andere Spezifität hat als Browser. Ich stelle jedoch fest, dass Microsoft aufgrund hochwertiger Tools interessante Chancen hat, die Führung in der Community und insbesondere in diesem Segment wiederherzustellen.

    In der Zwischenzeit warten wir aktiv auf Node.js v7.x, was uns verspricht, endlich Async-Warten zu bringen.

    Ilya Kantor , Schöpfer von JavaScript.ru, einer der ersten professionellen JS-Sprachlehrer in Russland:




    Wie schnell entwickelt sich Node.js Ihrer Meinung nach? Sind Sie mit dem aktuellen Tempo zufrieden?

    Jetzt entwickelt sich Node.JS sehr schnell: sowohl Node.JS selbst als auch die JavaScript-Sprache und die zugehörige Infrastruktur.

    Natürlich möchte ich schnell neue Funktionen einführen, aber die Situation ändert sich sehr schnell. Zum Beispiel hat sich der Callback-Stil kürzlich zu Versprechungen + Generatoren geändert, und Async / Warten wird sie im kommenden Jahr ersetzen. Wenn Sie Code schreiben, müssen Sie dies berücksichtigen, damit Sie ihn später nicht erneut schreiben.

    Wie beurteilen Sie die Relevanz, Popularität im Hinblick auf eine ernsthafte Entwicklung in IT-Unternehmen? Wie berechtigt ist das? Für welche Projekte ist Node.js geeignet?

    Es gibt viele Werkzeuge. Die Wahl hängt weitgehend von den persönlichen Vorlieben ab.
    Einige Vorteile von Node.JS:

    1) Es ist schnell in Bezug auf die Leistung. Natürlich gibt es Sprachen, die schneller sind, vor allem bei starker Typisierung, aber im Großen und Ganzen ist Node.JS ziemlich schnell. In der Regel ist ein Dienst auf Node.JS schneller als in PHP oder Ruby geschrieben.

    Seit seiner Gründung wurde Node.JS für Anwendungen mit einer großen Anzahl von gleichzeitigen Verbindungen verwendet, zwischen denen Daten "fliegen". Damit ist auch kein Problem verbunden.

    2) Die Entwicklung ist auch ziemlich schnell.

    3) JavaScript im Frontend und im Backend bei der Entwicklung von Webanwendungen ermöglicht es Ihnen, einen Code sowohl dort als auch dort zu verwenden. Isomorphe Anwendungen - das ist alles. Und es ist für Entwickler bequemer, eine Sprache zu verwenden. Nach den letzten Verbesserungen ist JavaScript viel besser geworden.

    Wie hat sich der Node.js-Entwicklermarkt verändert? Sind sie weniger, mehr? Wie hat sich die Qualität ihrer Arbeit für Sie verändert?

    Entschuldigung, ich verfolge den "Markt" nicht. Gute Entwickler sind immer wenige. In Bezug auf Node.JS ist es normalerweise einfacher zu wachsen als ein fertiges zu finden.

    Können Sie die Konkurrenten für Node.js nennen? Wie stark sind sie?

    Node.JS hat keine ernsthaften Konkurrenten unter den JavaScript-Plattformen. Wenn wir über andere Sprachen sprechen, hängt die Auswahl von der Aufgabe sowie den persönlichen Vorlieben des Entwicklers ab, die verständlicher und ihm näher sind. Was die Leute gerne programmieren, worauf sie schreiben werden.

    Was sind die Aussichten für Node.js für die nächsten 5 Jahre?

    Jetzt entwickelt sich alles sehr schnell, 5 Jahre sind eine lange Zeit. Wenn Sie sich die aktuellen Trends ansehen, bewegt sich Node.JS schnell vorwärts. Ein wichtiger Vorteil von Node.JS ist jedoch, dass JavaScript die einzige browserübergreifende Entwicklungssprache ist, insbesondere auf Browserebene.

    Vielleicht wird in Zukunft der WebAssembly-Standard eingeführt, der ihm diesen Vorteil nimmt. Auf der anderen Seite, selbst wenn dies passiert, wird es nicht so bald sein und Node.JS wird zu diesem Zeitpunkt gewachsen sein. Vielleicht ist dieser Vorteil für ihn nicht so relevant.

    Jetzt auch beliebt: