Ryan Dahl
# Ryan Dahl

Ryan Dahl (* 1981) ist ein US-amerikanischer Softwareentwickler. Bekannt wurde Ryan Dahl 2009 durch die Vorstellung der JavaScript-Laufzeitumgebung Node.js. Das System wurde zum Quasistandard von serverbasierenden JavaScript-Applikationen. Bereits 2012 gab er die Projektleitung von Node.js an andere Entwickler ab. Seitdem gilt er als Kritiker des von ihm geschaffenen Systems. Auf der „JSConf EU“ 2018 stellte er eine weitere JavaScript-Laufzeitumgebung der Öffentlichkeit vor. Diese neue Umgebung sollte die zehn schwersten Designfehler von Node.js beheben. Er nannte das System Deno. Deno baut genauso wie Node.js auf der Google-Laufzeitumgebung V8 auf. Ryan Dahl bezeichnete die stärkere Sicherheit als einen Vorteil von Deno. Er bezeichnete Deno im Wesentlichen als einen Webbrowser für die Kommandozeile.

## Leben

Ryan Dahl wuchs in San Diego, Kalifornien auf. Mit sechs Jahren bekam er seinen ersten Computer, einen Apple 2C, von seiner Mutter geschenkt. Zuerst studierte er am örtlichen College in San Diego, dann wechselte er an die University of California, San Diego. Danach studierte er Mathematik an der University of Rochester. Nach seinem Studium verbrachte er einige Zeit in Südamerika. Dort lernte er eine Deutsche kennen und ging mit ihr nach Deutschland. Dort lernte er Chris Neukirchen kennen, der an Webserver-Projekten arbeitete. Neukirchen entwickelte „Rack“, eine Abstraktion eines Webservers. Er beschäftigte sich mit Rack und Nginx und arbeitete als Freelancer in mehreren Softwareprojekten mit. In dieser Zeit entstand die Idee von Node.js. Ryan Dahl wollte nach dem Vorbild von Nginx eine Laufzeitentwicklung schaffen, die asynchron arbeitete. Locks sollten auf jeden Fall vermieden werden. Locks entstehen, wenn z. B. Dateien von einem Datenträger gelesen werden. In dieser Zeit kann ein Prozessor eines Computers keine weiteren Aufgaben übernehmen, sofern er aktiv auf die Beendigung der Leseaufgabe wartet. Durch den asynchronen Aufruf der Lesefunktion wird das Problem umgangen und das Programm wird dadurch leistungsfähiger, falls mehrere gleichzeitige Aufrufe auf ein Programm erfolgen, wie es bei Webanwendungen normalerweise der Fall ist. 2008 brachte Google den Webbrowser Chrome und die V8-Javascriptumgebung heraus. V8 war für den Webbrowser konzipiert, aber Ryan Dahl war von der Technologie fasziniert und überlegte, ob man die V8 nicht auch auf einem Server einsetzen konnte. Er zog nach San Francisco und begann für Joyent zu arbeiten, wo es viele professionelle Programmierer gab, die seine Idee unterstützten. Am 25. Mai 2009 stellte er Node.js als eine serverbasierte Laufzeitumgebung auf Basis von V8 der Öffentlichkeit auf der „JsConf“ in Berlin vor. In den Jahren 2012/2013 hörte er auf, sich mit Node.js zu beschäftigen. Er hatte Zweifel an seiner eigenen Idee und besonders an deren Umsetzung. Zuerst versuchte er durch Referate auf die Schwächen von Node.js hinzuweisen, um eine Änderung in der Strategie der Laufzeitumgebung zu erreichen. Später war er überzeugt, dass die neue Programmiersprache Go von Google der bessere Weg sei, Applikationsserver zu entwickeln. Er glaubte nicht mehr daran, dass man JavaScript für größere Webserver-Projekte einsetzen sollte.

2012 gelang dem Team um Ryan Dahl eine Migration von Node.js von Linux auf Microsoft Windows. Viele der Funktionen mussten für Windows neu entwickelt werden. Mit fünf weiteren Entwicklern erstellte er die Bibliothek „libuv“. Nach diesem Erfolg gab er nach vier Jahren als Node.js-Projektleiter auf. Er wollte nicht mehr im Rampenlicht stehen und Entwicklungskonferenzen besuchen, um Node.js zu promoten, und er wollte sich nicht mehr mit Tausenden von Fehlern in Node.js beschäftigen. Er übergab das Projekt an den Joyent-Mitarbeiter Isaac Schlueter, welcher 2014 die „npm inc.“ gründete. „npm“ war 2010 von Isaac Schlueter als Paketmanager für das Node.js-Projekt programmiert worden. Schlueter hatte seit Mitte 2009 mit Dahl am Node.js-Projekt gearbeitet.

Nach seinem Ausscheiden aus dem Projekt Node.js lebte er ein Jahr lang in Mountain View. Er wurde Mitglied im „Google Brain program“, arbeitete am Projekt Tensorflow von Google mit, entwickelte Modelle und schrieb Thesenpapiere. Er arbeitete bei der Bildverarbeitung und der Bilderkennung mit, beschäftigte sich mit der Klassifizierung und der Transformation von Bildern und wurde Mitarbeiter von Google Inc.

2018 gründete er mit einem weiteren Entwickler von Node.js Bert Belder ein Start-up, um die neue Entwicklungsumgebung Deno für JavaScript zu entwickeln. Deno wurde auf der JSConf EU 2018 von Ryan Dahl in seinem Vortrag 10 Things I Regret About Node.js („10 Dinge, die ich an Node.js bereue“) angekündigt. Am 13. Mai 2020 wurde die erste Version von Deno veröffentlicht.

## Zitate

### Über Scriptsprachen

   “I guess I’m unsatisfied with the state of dynamic languages. I find myself wanting to have a quick go-to tool that I can deploy in various situations. Node and Python are good, but I find them unnecessarily complex or poorly designed in various ways. So this is about developing a tool that fits my own workflow, or the workflow that I want to have.”
   „Ich schätze, ich bin mit dem Zustand dynamischer Sprachen unzufrieden. Ich möchte ein schnelles Tool haben, das ich in verschiedenen Situationen einsetzen kann. Node und Python sind gut, aber ich finde sie unnötig komplex oder in vielerlei Hinsicht schlecht gestaltet. Hier geht es also darum, ein Tool zu entwickeln, das zu meinem eigenen Workflow passt oder zu dem Workflow, den ich haben möchte.“

### Über Deno

   “Whether it’s going to survive for five years I have no idea. Probably not, because most things fail. But it excites me and I enjoy working on it.”
   „Ob es fünf Jahre überlebt, weiß ich nicht. Wahrscheinlich nicht, denn die meisten Dinge scheitern. Aber es reizt mich und ich arbeite gerne daran.“

### Über Applikationsserver und die Sprache Go von Google

   “For a particular class of application, which is like, if you’re building a server, I can’t imagine using anything other than Go.”
   „Für eine bestimmte Klasse von Anwendungen, etwa wenn man einen Server baut, kann ich mir nicht vorstellen, etwas anderes als Go zu verwenden.“

### Über Software im Allgemeinen

   “I hate almost all software.”
   „Ich hasse fast jede Software“

## Webseiten

* Pramod Shashidhara: Interview with Ryan Dahl, Creator of Node.js. In: Mapping The Journey. 31. August 2017; abgerufen am 31. August 2021 (englisch).
   * Pramod Shashidhara: Interview with Ryan Dahl, Creator of Node.js. (mp3-Audio; 42,2 MB; 30:40 Minuten) In: Mapping The Journey. 31. August 2017; abgerufen am 31. August 2021 (englisch).
   * Pramod Shashidhara: Interview mit Ryan Dahl, Schöpfer von Node.js. In: Weekly-Geekly ES. 2019; abgerufen am 31. August 2021 (deutsche Übersetzung des Interviews bei Mapping The Journey).

## Einzelnachweise und Bemerkungen

* ↑ About Node.js, and why you should add Node.js to your skill set? In: training.com. 11. September 2016, abgerufen am 31. August 2021 (englisch): „Developed originally in 2009 by Ryan Dahl, Node.js is an open-source, JavaScript run time environment.“ Elizabeth Lvova: Node.js Creator Ryan Dahl Interview. In: DZone. 18. Februar 2021, abgerufen am 31. August 2021 (englisch).
* ↑ Deno.land. Abgerufen am 31. August 2021 (englisch).
* ↑ Björn Bohn: Ryan Dahl: Designfehler von Node.js und sein neues Projekt. In: heise online. 11. Juni 2018, abgerufen am 31. August 2021: „Im Rahmen der JSConf EU 2018 hat Ryan Dahl, Erfinder der JavaScript-Laufzeitumgebung Node.js, über zehn Designfehler bei der Entwicklung gesprochen. Außerdem nutzte Dahl, der schon seit 2012 nicht mehr groß im Node.js-Projekt involviert ist, die Gelegenheit, sein neues Projekt vorzustellen, das diese Probleme beheben soll: Deno, eine auf Googles JavaScript-Implementierung V8 gebaute TypeScript-Laufzeitumgebung.“
* ↑ Ann-Cathrin Klose: Deno: Ryan Dahl präsentiert mögliche Alternative zu Node.js. In: Entwickler.de. 8. Juni 2018, abgerufen am 31. August 2021: „Node.js ist der defacto Standard in Sachen serverseitigem JavaScript. Neben Node konnten sich wenig Alternativen am Markt etablieren – jetzt hat Ryan Dahl, Erfinder von Node, mit Deno einen neuen Anlauf gestartet. Seine Präsentation wirft Fragen auf.“
* ↑ Ann-Cathrin Klose: „Deno ist im Wesentlichen ein Webbrowser für Kommandozeilen-Skripte“: Ryan Dahl im Interview zu Deno 1.0. In: Entwickler.de. 22. April 2020, abgerufen am 31. August 2021.
* 1 2 Pramod Shashidhara: Interview with Ryan Dahl, Creator of Node.js. In: Mapping The Journey. 31. August 2017, abgerufen am 31. August 2021 (englisch).
* ↑ Joyent war eine Software- und Cloud-Computing-Firma in San Francisco. 2016 wurde die Firma von Samsung übernommen.
* 1 2 3 4 “I have only one learning technique: projects that I’m working on” — interview with Ryan Dahl. In: medium.com. 7. Mai 2019, abgerufen am 31. August 2021 (englisch).
* ↑ Pramod Shashidhara: Interview with Ryan Dahl, Creator of Node.js. In: Mapping The Journey. 31. August 2017, abgerufen am 31. August 2021 (englisch): „When he first came out, I read a lot of lectures and tried to explain that maybe we did everything wrong, and non-blocking I / O would help solve many development problems …“
* ↑ Pramod Shashidhara: Interview with Ryan Dahl, Creator of Node.js. In: Mapping The Journey. 31. August 2017, abgerufen am 31. August 2021 (englisch): „Yes, for some types of Go applications are best suited – for example, when building a server. I can not imagine how to work with something else.“
* ↑ Pramod Shashidhara: Interview with Ryan Dahl, Creator of Node.js. In: Mapping The Journey. 31. August 2017, abgerufen am 31. August 2021 (englisch): „However, I believe that Node is not the best option for a large-scale web server. For this, I myself would choose Go. Honestly, that's why I stopped working on Node. I just realized that this is not an ideal server development system.“
* ↑ Pramod Shashidhara: Interview with Ryan Dahl, Creator of Node.js. In: Mapping The Journey. 31. August 2017, abgerufen am 31. August 2021 (englisch): „Then I thought: fine. I achieved my goal, and I am glad that I managed to bring everything to mind. Of course, there are still a thousand bugs that can be fixed until the end of life, but there are enough people in the team who can take care of this.“
* ↑ Leandro Fahur: What and Why Node.js? A historical context and a developer perspective. In: medium.com. 11. März 2021, abgerufen am 1. September 2021 (englisch).
* ↑ Silke Hahn: Deno 1.0 soll Node.js als Framework für Skriptsprachen ersetzen. In: Heise Online. 14. Mai 2020, abgerufen am 1. September 2021.
* ↑ Ryan Dahl: I hate almost all software. In: tinyclouds.org. Oktober 2011, abgerufen am 1. September 2021 (englisch).
