
Ryan Dahl stellte Node.js 2009 vor, ging einige Jahre später in den Ruhestand und machte letzte Woche ein neues Projekt:
deno - Eine sichere TypeScript-Laufzeit auf V8 (
GitHub ,
Entpacken ).
Es ist Zeit, sich an das
Interview zu erinnern, das Ryan im August 2017 im Podcast von Mapping The Journey gegeben hat, über sich selbst, seine Karriere, über Node.js und warum er damit aufgehört hat, woran er gerade (zu dieser Zeit) arbeitet.
Ein Fragment der Übersetzung dieses Interviews befand sich bereits auf Habré:
Creator of Node.js: "Für Server kann ich mir keine andere Sprache als Go vorstellen .
" Dieser Beitrag enthält die vollständige Übersetzung.
Ryan Dahl ist Ingenieur beim Google Brain-Projekt und Entwickler von Node.js, einer JavaScript-Laufzeit, die auf der Chrome V8-Engine basiert. Ryan beschäftigt sich derzeit mit Deep-Learning-Forschung. Er beschäftigt sich hauptsächlich mit Bildtransformation - Kolorierung und Superauflösung. Er war an der Entwicklung mehrerer Open Source-Projekte beteiligt, darunter HTTP Parser und libuv.
Pramod: Hallo allerseits. Willkommen bei der Kartierung der Reise. Wenn es um Node.js geht, kennt jeder den Namen Ryan Dahl. Er zeigte, dass wir falsch mit Input / Output umgehen, und brachte uns bei, wie man sich mit dem Modell „pure async“ entwickelt. Unser heutiger Gast ist Ryan Dahl, ein Hacker, talentierter Programmierer und Schöpfer von Node. Ryan, ich freue mich sehr, Sie kennenzulernen. Es ist eine große Ehre. Willkommen zurück!Ryan: Hi! Ich freue mich auch, dich zu sehen.
P.: Ryan, du bist am besten als der Schöpfer von Node bekannt. Sag mir, was hast du gemacht, bevor du dich für Technologie interessierst?R: Als Kind habe ich in San Diego gelebt. Als ich 6 Jahre alt war, kaufte mir meine Mutter einen Apple 2C, so dass ich ziemlich früh Zugang zu einem Computer bekam. Übrigens bin ich jetzt 36. Also bin ich gerade während der Bildung des Internets aufgewachsen. Zuerst studierte ich an einem örtlichen College und nach ihm ging ich an die University of California in San Diego, um Mathematik zu studieren. Dann trat ich in die Graduiertenschule für Mathematik an der Universität von Rochester ein. Ja, dort habe ich algebraische Topologie studiert - eine ziemlich abstrakte Disziplin, die mir sehr schön erschien. Aber nach einiger Zeit langweilte ich mich, weil ich dachte, dass sie keine realen Anwendungen hatte. Nach meinem Abschluss entschied ich mich für eine Promotion, erkannte jedoch, dass ich den Rest meines Lebens nicht der Mathematik widmen und das Programm beenden wollte. Ich kaufte ein One-Way-Ticket nach Südamerika und verbrachte dort ein Jahr als "hungriger Student". Und dann fing er an, mit einem Mann, Eric, Websites zu erstellen. Und so begann meine Karriere als Entwickler. Ich habe auf Ruby on Rails eine Seite für eine Snowboardfirma erstellt.
P.: Großartig! Dies ist wahrscheinlich eine interessante Erfahrung - beenden Sie das Ph.D.-Programm, gehen Sie nach Südamerika und werden Sie Webentwickler.R.: Ich würde. Es ist nur so, dass Sie sich nach dem Studium an die Arbeit mit abstrakten Aufgaben gewöhnen, und die Entwicklung von Websites ist ein sehr spezifischer Prozess. Aber ich habe versucht, all dies in eine Art schöne mathematische Theorie zu verwandeln, wie ich sie in Magistratur studiert habe. Ich denke, es hat mir sehr gut gefallen, dass Ruby es Ihnen ermöglicht, Gedanken während der Entwicklung klarer auszudrücken. Das interessierte mich und veranlasste einige Gedanken. Ich denke, es geht nur um Rails. Das Model-View-Controller-Schema war damals nicht neu, aber es scheint mir, dass es gerade dank Rails populär wurde. Es war diese Kombination, die ich mochte.
P: Ja, Webentwicklung ist eine interessante Aktivität, und Ruby ist ein großartiges Werkzeug. Danach waren Sie freiberuflicher Entwickler in Deutschland. Eines Ihrer Projekte war Node. Sie haben noch 6-8 Monate daran gearbeitet, oder?R: Das war's. Nach Südamerika zog ich das Mädchen nach Deutschland - sie ist Deutsche und musste zur Universität zurückkehren. Ich ging zu einer Ruby-Konferenz, auf der die Leute über dieses neue Model-View-Controller-Paradigma diskutierten. Dort traf ich einen Mann namens Chris Neukirchen. Er schuf Rack, ein Projekt, das im Wesentlichen eine vereinfachte Abstraktion eines Webservers war. Rack verwandelte den Webserver in eine Schnittstelle mit einer einzigen Funktion, über die Sie Anfragen stellen und Antworten erhalten konnten. Dann habe ich mit dem Nginx-Modul in einem freiberuflichen Projekt für Engineyard gearbeitet. Ich möchte Sie daran erinnern, dass in Nginx alles asynchron funktioniert. Wenn Sie also ein Modul dafür erstellen, müssen Sie Sperren vermeiden. Ich habe Chris Neukirchens Rack-Projekt gerade kennengelernt, als ich mit nicht blockierenden E / A auf dem Nginx-Webserver gearbeitet habe. Ich denke, deshalb hatte ich die Idee, diese beiden Dinge zu kombinieren.
P .: Es stellt sich heraus, dass Sie auf der Basis von Rack und Nginx auf die Idee gekommen sind, ein Framework zu entwickeln, das Javascript-Code von der Serverseite aus ausführt und die Leistung erheblich steigert. Wie haben Sie beschlossen, die nächsten 6 Monate damit zu verbringen?R: Diese beiden Elemente - Rack und Nginx mit seiner Asynchronität - vereinfachten zusammen die Webserver-Oberfläche. Im Dezember 2008 wurde Chrome veröffentlicht. Und damit die JavaScript V8 Engine. Genauer gesagt, nicht die Engine selbst, sondern die Laufzeit, in der die JIT-Kompilierung stattfindet. Im Allgemeinen begann ich mit der Veröffentlichung von V8, dies zu verstehen. Der V8 sah interessant, ordentlich und schnell aus. Und plötzlich dämmerte es mir. JavaScript ist Single-Threaded und jeder schreibt bereits nicht blockierende Algorithmen darauf. Ich meine, jeder macht bereits AJAX-Anfragen im Browser, die sowieso nicht blockieren. Ich dachte: Großartig, JavaScript plus asynchrone E / A und ein bisschen Funktionalität für einen HTTP-Server sind das, was ich brauche. Und ich war so begeistert von der Idee, dass ich ohne Pause die nächsten 4 Jahre daran gearbeitet habe.
P.: Ja, JavaScript und asynchrone E / A haben einwandfrei funktioniert. Ich denke, die Entwickler haben nur auf ein solches Framework gewartet. Und ich frage aus Neugier: Als Sie Node entwickelt haben, hatten Sie eine Art Mentor oder haben Sie es selbst geschafft?R: Im Allgemeinen habe ich alles selbst gemacht. Einige meiner Freunde sind Programmierer, und sie gaben einige Ratschläge, aber ich fing an, alleine in meinem Zimmer zu arbeiten. Dann bin ich nach San Francisco gezogen und habe bei Joyent viele wirklich professionelle Programmierer bei der Arbeit getroffen. Bereits dort gaben viele Ratschläge und Vorschläge für Node.
P.: Klar. Bitte erzählen Sie uns etwas über den Knotenentwicklungsprozess. Natürlich ist seit 2009 viel Zeit vergangen ...R: Für mich sind die besten Momente im Leben, wenn ich mit meinem Kopf in etwas eintauche, wenn ich an eine Idee glaube. Und wenn ich Zeit habe, fleißig daran zu arbeiten. Node war eine solche Idee, die umgesetzt werden musste, und wenn ich nicht gewesen wäre, hätte es jemand anderes übernommen. Es ist einfach so passiert, dass ich wenig Arbeit und genug Freizeit hatte. Ich könnte Node mehrere Monate lang widmen - genau in dieser Zeit können Sie die ursprüngliche Version veröffentlichen. Und es war großartig und hat Spaß gemacht.
P.: Klasse, du hast einen tollen Job gemacht. Der Knoten basiert auf dem reinen asynchronen Programmiermodell. Glaubst du, diese Idee hat gut funktioniert?R: Eine interessante Frage. Es ist einige Jahre her und ich selbst habe von 2012 bis 2013 nicht irgendwo an Node gearbeitet. Natürlich ist Node in dieser Zeit enorm gewachsen. Als er das erste Mal ging, hielt ich viele Vorträge und versuchte zu erklären, dass wir vielleicht alles falsch gemacht haben und nicht blockierende E / A helfen würden, viele Entwicklungsprobleme zu lösen. Oder wir könnten Threads komplett vergessen und mit Prozessabstraktionen und Serialisierung auskommen. Gleichzeitig würden im Rahmen eines Prozesses viele Anforderungen verarbeitet, sodass eine Asynchronität erreicht würde. Zu dieser Zeit habe ich aufrichtig an diese Idee geglaubt, aber in den letzten Jahren wurde mir klar, dass dies bei weitem nicht die einzige Gelegenheit ist. Besonders nach der Veröffentlichung von Go. Meiner Meinung nach ist Go noch früher aufgetaucht, aber ich habe 2012 zum ersten Mal davon gehört. Dann hatte er bereits eine gute Laufzeit und hochwertige grüne Fäden, und mit all dem war es einfach, Abstraktionen zu verwenden. Es war wie das Blockieren von E / A, aber nach meinem Verständnis ist die Schnittstelle zwischen Go und dem Betriebssystem über grüne Threads tatsächlich nicht blockierend.
All dies stand dem Benutzer jedoch in Form einer blockierenden Schnittstelle zur Verfügung, und meiner Meinung nach hat dieses Modell Vorteile. In der Regel ist es einfacher zu verstehen, was beim Blockieren von Algorithmen geschieht. Wenn es eine Abfolge von Aktionen gibt, können Sie diese befolgen: A ausführen, auf eine Antwort warten oder möglicherweise einen Fehler abfangen. Führen Sie dann B aus und erhalten Sie auch eine Antwort oder einen Fehler. In Node ist alles komplizierter, weil Sie in einen anderen Funktionsaufruf springen müssen.
P.: Ich mag auch das Programmiermodell in Go sehr. Die Verwendung von Goroutinen ist ein Vergnügen. Jetzt schreibt mein Team nur noch eine verteilte Anwendung auf Go.R: Ja, für einige Arten von Anwendungen ist Go am besten geeignet - zum Beispiel beim Erstellen eines Servers. Ich kann mir gar nicht vorstellen, wie ich mit etwas anderem arbeiten soll. Obwohl ich denke, dass das nicht blockierende Paradigma für Javascript, in dem es keine Threads gibt, großartig funktioniert hat. Darüber hinaus gibt es in Javascript jetzt das Schlüsselwort async und Sie können mit asynchronen Funktionen arbeiten, sodass Sie nicht mehr zwischen anonymen Funktionen wechseln und die Wildnis von Rückrufen verstehen müssen. Neuere Versionen von Javascript haben die Arbeit erleichtert. Ich glaube jedoch, dass Node nicht die beste Option für einen großen Webserver ist. Dafür würde ich mich definitiv für Go entscheiden. Ehrlich gesagt, deshalb habe ich aufgehört, an Node zu arbeiten. Ich habe gerade festgestellt, dass dies kein ideales System für die Entwicklung eines Servers ist.
Seltsamerweise scheint es mir, dass Node sich wirklich brillant nur auf der Client-Seite gezeigt hat. Es ermöglicht Ihnen, beim Erstellen von Websites geschickt Skripte zu verwenden. Beispielsweise packt Browserify sozusagen clientseitiges Javascript. Dadurch kann der Client JavaScript auf dem Server verarbeiten. Ein weiteres Beispiel sind kleine Entwicklungsserver oder sogar Produktionsserver, die Live-Verkehr verarbeiten. Der Knoten kann für einige Dinge sehr nützlich und bequem sein. Wenn Sie jedoch einen großen verteilten DNS-Server einrichten, würde ich die Auswahl von Node nicht empfehlen.
P: Entwickler auf der ganzen Welt werden es nützlich finden, darüber nachzudenken. Für jedes Unternehmen ist es wichtig, das richtige Tool auszuwählen, damit Sie eine ziemlich objektive Einstellung gegenüber Node haben. Sie haben Node.js erstmals auf der Berliner Konferenz JsConf 2009 vorgestellt. Vielleicht waren Sie überrascht, dass er so schnell Erfolg hatte?R: Natürlich. Im Allgemeinen hörte ich vier Jahre lang nicht auf, mich zu wundern. Node hat sich in einem unglaublichen Tempo entwickelt und die Community hat es wirklich gemocht.
P: Danach sind Sie zu Joyant nach San Francisco gekommen und haben kontinuierlich an Node gearbeitet, oder? Erzählen Sie uns von Ihren Erfahrungen dort. Die Entwickler waren sehr zufrieden und Sie standen im Mittelpunkt der Ereignisse.R: Ja, es war einer der Höhepunkte meines Lebens. Ich war wirklich im Zentrum der Ereignisse, ging zu verschiedenen Konferenzen. Einmal war ich sogar in Japan und die Leute baten mich, ein Foto mit mir zu machen ... Ich fühlte mich sogar unwohl. Als ich etwas im Internet kommentierte, fühlte es sich an, als hätten mir hundert Leute sofort geantwortet. Dann wurde mir klar, dass ich meine Worte sorgfältig auswählen und darüber nachdenken musste, wie sie mich wahrnehmen - es scheint, dass sie mir wirklich zuhörten, und das war ungewöhnlich. Das alles hat mir nicht gefallen. Schließlich bin ich Programmierer und möchte nur Code schreiben und manchmal meine Meinung ohne übermäßige Vorsicht äußern. In dieser Hinsicht war ich etwas unruhig.
P: Sie waren 29 oder 30 Jahre alt, als Sie Node erstellt haben? Und er ist bereits zu einer so einflussreichen Technologie geworden.R: Ja. Aber dann war ich noch eher ein Anfänger.
P.: Ryan, zu dieser Zeit gab es viele verschiedene Projekte, die auf der Serverseite mit JavaScript arbeiteten. Node war nicht die einzige Lösung, aber die erfolgreichste - warum denkst du?R: Es stimmt, mehrere Leute haben versucht, JavaScript für die Serverarbeit anzupassen. Jetzt erinnere ich mich nicht einmal an ihre Namen.
Tatsache ist, dass in all diesen Projekten das Blockieren der Eingabe / Ausgabe verwendet wurde, und dies passte nicht sehr gut zu der Art und Weise, wie JavaScript angeordnet wurde, da es nicht mit Streams funktioniert. Wenn Sie blockierende E / A verwenden, können Sie keine Anforderungen verarbeiten. Das heißt, Sie müssen sie einzeln verarbeiten, und es wird nichts daraus. Außerdem habe ich ein hochwertiges HTTP-Modul hinzugefügt und gezeigt, wie ein HTTP-Server sowie ein einfacher TCP-Server konfiguriert werden. Ich habe versucht sicherzustellen, dass diese Dinge richtig funktionieren und die Leute problemlos Websites erstellen können. Ich muss zugeben, dass das Erhöhen eines Webservers keine leichte Aufgabe ist und viele Projekte Funktionen benötigten, die die Community selbst ausführen musste. Aber niemand hat etwas gebaut, weil es nichts gab, mit dem man das System benutzen konnte. Meiner Meinung nach benötigen Sie für jedes neue Framework oder das gesamte Produkt ein Basismuster, das Sie sofort verwenden können. Dies war der Vorteil von Node - die Leute konnten es einfach herunterladen und sofort einen Webserver einrichten.
P.: In der Tat sind gute Designs sehr wichtig, ebenso wie die einfache Installation und Verwendung. Viele weitere konnten bereits Code in JavaScript schreiben, sodass sie sofort zur Sache kommen konnten. Als ich anfing, mit Node zu arbeiten, haben mir auch meine Kenntnisse in JavaScript sehr geholfen.R: Mir scheint, wir sind es gewohnt zu denken, dass das Wechseln zwischen Sprachen ziemlich einfach ist. Aber selbst wenn Sie bereits eine Sprache beherrschen, ist es nicht so einfach, einen Kontext für eine neue Sprache zu erstellen. Viele Entwickler kennen Javascript bereits und sind daher daran interessiert, eine vertraute Sprache in einem neuen Kontext mit neuen Tools zu verwenden. Es stellt sich heraus, dass dieselbe Sprache mehr Möglichkeiten eröffnet.
P.: Das ist sicher. Im Jahr 2012 hat eine große Anzahl von Entwicklern an Node gearbeitet. Warum haben Sie beschlossen, das Projekt von Joyent an Isaac Schluter zu übergeben?R: Ich denke, dafür gab es zwei Gründe. Dann habe ich 4 Jahre an Node gearbeitet und im Allgemeinen alles getan, was ich geplant hatte. Ich hätte nie erwartet, dass Node zu einer riesigen API wird. Meine Idee war es, einen kleinen, kompakten Kern zu schaffen, auf dem die Leute ihre Module aufbauen können. Ich wollte mehrere wichtige Funktionen unterstützen. Erweiterungsmodule wurden von Anfang an hinzugefügt, dann haben wir die Netzwerkbibliotheken, HTTP, UDP, TCP aufgeräumt und den Zugriff auf alle Dateisysteme bereitgestellt. Dann übernahm ein fünfköpfiges Team die wichtige Aufgabe, alles für Windows einzurichten. Wir wollten Windows-Abstraktionen - Abschlussports - für asynchrone E / A verwenden. Daher mussten wir die Root-Bibliothek neu schreiben, und daraus haben wir die libuv-Bibliothek erhalten. Irgendwann war alles fertig und wir haben Node für Windows veröffentlicht. Dann dachte ich: toll. Ich habe mein Ziel erreicht und bin froh, dass ich es geschafft habe, alles in den Sinn zu bringen. Natürlich gibt es immer noch tausend Fehler, die bis zum Ende des Lebens behoben werden können, aber das Team hat genug Leute, die sich darum kümmern können. Ich wollte andere Dinge tun. Außerdem kam Go heraus und für mich war Node nicht mehr die einzige Lösung für die Serverentwicklung. Nun, ich wollte einfach nicht jedes Mal im Mittelpunkt stehen, wenn ich etwas in einem Blog schreibe.
P.: Klar. Ja, nicht jeder mag es. Als Sie anfingen, an Node zu arbeiten, hatten Sie wahrscheinlich bestimmte Pläne. Glaubst du, Node hat sie jetzt fertiggestellt?R: Natürlich hat Node alle meine Erwartungen übertroffen. Immerhin wird es jetzt von Hunderttausenden von Menschen benutzt.
P.: Sagen Sie mir, was haben Sie beschlossen, als Sie diese interessante Phase der Knotenentwicklung abgeschlossen haben?R: Nachdem ich Joyent verlassen hatte, zog ich nach New York und machte einen kurzen Urlaub, um an meinen eigenen Projekten zu arbeiten. Ich hatte mehrere davon. Instagram kam zu dieser Zeit heraus, dann war es originell und unkompliziert. Alle sagten: "Wow, es ist so einfach, ich hätte es selbst gebaut." Und das habe ich natürlich auch gedacht. Ich hatte ein soziales Netzwerkprojekt, ich baute auch ein Build-System für C ++ und ein anderes Build-System für HTML, das Browserify ähnelte - es packte Javascript und HTML intelligent. Im Allgemeinen hatte ich viele Projekte, aber meines Erachtens war keines davon wirklich erfolgreich. Einige von ihnen befinden sich noch in der Entwicklung, zum Beispiel mein soziales Netzwerk. Eines Tages werde ich es wieder nehmen. Das habe ich eine Weile gemacht. Dann fing ich an, über Faltungs-Neuronale Netze zu lesen und zu lernen und wie das Problem der Bildklassifizierung gelöst wird, und ich war sehr an maschinellem Lernen interessiert.
P: Sie waren auch Einwohner des Google Brain-Programms. Was sind deine Eindrücke?R: Ja, ich habe vor kurzem ein Jahr in Mountain View verbracht. Ich komme gleich wieder: TensorFlow ist vor zwei Jahren herausgekommen.
Gleichzeitig kündigte Google Brain im Labor für maschinelles Lernen ein neues Programm für Anwohner an, nach dem rund 20 Personen eingeladen werden. Ich denke, die Idee war, Leute einzuladen, die nicht unbedingt mit maschinellem Lernen vertraut sind, aber in Mathematik und Programmierung denken. Diejenigen, die daran interessiert waren, mit diesen neuen Ideen zu arbeiten. Das maschinelle Lernen ändert sich ständig und es wird viel Arbeit geleistet, aber jetzt hat sich die Community endlich auf neuronale Netze konzentriert. Es wird angenommen, dass dies der effizienteste Algorithmus für maschinelles Lernen ist. Daher kam eine solche Idee auf - Menschen zu sammeln, die an der Arbeit mit dem neuen TensorFlow-Framework interessiert sind, um möglicherweise zu interessanten Schlussfolgerungen zu gelangen. Ich habe ein Jahr im Labor verbracht. Grundsätzlich habe ich Modelle entwickelt und wissenschaftliche Arbeiten darüber geschrieben. Zum größten Teil habe ich mit Bildtransformationsaufgaben gearbeitet. Das heißt, wenn es eine Art Quellbild gibt, müssen Sie vorhersagen, welches Bild ausgegeben wird. Meiner Meinung nach ist dies eine sehr interessante Aufgabe. Eines der wirklichen Beispiele ist die Kolorierung. Sie können ein Schwarzweißbild aufnehmen und versuchen, vorherzusagen, welche Farben resultieren werden. Das Interessanteste ist, dass es für diese Aufgabe unendlich viele Daten für das Training gibt. Schließlich können Sie die Sättigung von jedem Farbfoto vollständig entfernen und das ursprüngliche Schwarzweißbild erhalten. Eines der Hauptprobleme beim maschinellen Lernen ist der Bedarf an einer großen Datenmenge, und es gibt viele Daten für solche Aufgaben. In jüngerer Zeit viel Forschung über generative Modelle. Zum Beispiel gibt es generativ-kontradiktorische Netzwerke und Pixel-Faltungsnetzwerke, die gelernt haben, reale Bilder wahrzunehmen, dh zwischen realen Bildern und künstlichen Kopien zu unterscheiden, die wie echte aussehen.
Ich wollte die Ergebnisse dieser Studien über generative Modelle und eine endlose Datenbank für das Training nutzen und all dies auf die Aufgaben der Bildtransformation anwenden. Ich habe die Superauflösung untersucht - dies ist ein Prozess, mit dem Sie die Auflösung des Originalbilds erhöhen können. Ich habe auch an der Aufgabe gearbeitet, zwischen Bildern zu transformieren, und zwei Kolorierungsprojekte abgeschlossen.P: Danke für die tolle Erklärung, Ryan! Ich habe auch gelesen, dass TensorFlow eine leistungsstarke Plattform für maschinelle Lernaufgaben ist. Bildklassifizierung, Transformation - natürlich bin ich besonders gut darin, aber ich bin mir sicher, dass dies alles sehr aufregend ist. Arbeiten Sie weiterhin im Bereich des maschinellen Lernens?R: Ja, ich arbeite immer noch bei Google, aber bereits als Ingenieur, und erledige ähnliche Aufgaben. Ich studiere generative Modelle und helfe Forschern beim Aufbau neuer Systeme und Modelle.P.: Großartig! Obwohl die generativen Modelle fast nichts mit Ihren früheren Aktivitäten zu tun haben - Javascript, Node und Webentwicklung ...R: Das ist sicher. Trotzdem habe ich mit Mathematik angefangen und ich habe eine gute mathematische Basis. Nun, ich gehöre nicht zu denen, die sich für einen bestimmten Bereich einsetzen. Ich möchte weder in JavaScript noch beim maschinellen Lernen zum Guru werden. Ich mag es einfach, interessante Möglichkeiten zu erkunden. Vor allem inspiriert es mich, etwas Neues zu erfinden und zu bauen, das der Menschheit zugute kommt..: . , . Optimistic Nihilism , , . , ?R: Ja, ich muss mit den Vorhersagen vorsichtiger sein ... Also teile ich nur meine persönliche Meinung: Wir sind unvorstellbar weit davon entfernt, menschliche Intelligenz zu modellieren. Die maschinellen Lernsysteme, mit denen wir arbeiten, sind entweder sehr primitiv oder überhaupt nicht funktionsfähig. Ich habe gerade einen Blogbeitrag über meinen Wohnsitz in Google Brain geschrieben und dort die Probleme aufgelistet, die bei der Entwicklung solcher Modelle auftreten. Es scheint mir, dass diejenigen, die weit von dieser Sphäre entfernt sind, oft denken, dass man ein Modell nehmen, Daten an es weitergeben kann und alles von selbst funktioniert. Aber es ist nicht so einfach. Es gibt viele Fallstricke und wenig erforschte Probleme. Um selbst die bescheidensten Ergebnisse zu erzielen, sind manchmal viele Monate des Experimentierens und der filigranen Anpassung erforderlich. Wir sind also noch weit davon entfernt, das menschliche Gehirn nachzuahmen.Es entstehen jedoch bereits vielversprechende Technologien - zum Beispiel Faltungs-Neuronale Netze oder die Fehlermethode der Rückausbreitung. Und was ermutigend ist, diese Technologien basieren auf einem Modell neuronaler Netze, das nicht so sehr dem menschlichen Gehirn ähnelt, sondern in gewissem Maße vom Wissen darüber inspiriert ist. Wir haben auch GPUs und Methoden, um sie zu trainieren, und wir wissen bereits, wie wir zumindest teilweise verteilte Schulungen mit ihnen durchführen können. Daher werden meiner Meinung nach gerade die Grundlagen für größere und intelligentere Systeme gelegt. Persönlich bin ich Atheist und glaube nicht, dass mein Gehirn mehr als Chemikalien und Neuronen ist. Mein Bewusstsein und das Bewusstsein eines Menschen sind irgendwie in den Interaktionen dieser Neuronen kodiert. Daher gibt es grundsätzlich keine HindernisseUm diese Prozesse zu simulieren, sind lediglich weitere Forschungen und Entwicklungen in diesem Bereich erforderlich. Es ist zu früh, um vorherzusagen, wie lange es dauern wird.P.: Ich verstehe. Ryan, du hast viel gesehen - sag mir, wie wird sich die Technologie in 20 Jahren entwickeln?R: Ich verfolge mit großem Interesse das maschinelle Lernen und die Möglichkeiten, die es eröffnet. Noch bevor wir echte künstliche Intelligenz schaffen, können diese Technologien in vielen verschiedenen Anwendungen eingesetzt werden. Im Prinzip sind sie in jedem System sehr nützlich, in dem Sie vernünftige Annahmen treffen müssen. Sie können beispielsweise Computer Vision verwenden, um Materialien in Recyclingzentren zu sortieren. Es gibt einfach unzählige Bereiche, in denen grundlegende Technologien für maschinelles Lernen nützlich wären. Ich denke, dass sie zunehmend in einer Vielzahl von Prozessen angewendet werden, und dies wird enorme Auswirkungen auf das Gebiet der Technologie und auf die Menschheit insgesamt haben.P.: Ich stimme zu, maschinelles Lernen ist ein spannendes Thema. Es ist so interessant zu sehen, wie Autos ohne Fahrer entlang Mountain View fahren. Eines Tages in der Zukunft wird es großartig sein, sich einfach auf einen Stuhl zurückzulehnen und der Maschine die vollständige Kontrolle anzuvertrauen. Ryan, vielen Dank für das hervorragende Node-Framework und den Besuch bei uns. Und viel Glück bei zukünftigen Projekten!R: Danke für die Einladung, es war interessant zu reden!P.: Danke! Das ist alles Ich freute mich, mit Ryan zu plaudern, einem bescheidenen und großartigen Kerl. Er hat bereits zu Beginn seiner Karriere als Entwickler viel erreicht und einen beeindruckenden Weg gegangen. Treffen Sie mich in 2 Wochen, um die nächste Geschichte zu sehen!