Vue.js-Schöpfer Evan You im Interview: „Man muss verstehen, was die User wollen"
Vorwort
Evan You ist unabhängiger Softwareentwickler und der Schöpfer des Open-Source-JavaScript-Frameworks Vue.js. Wir hatten die Gelegenheit, mit Evan über die Veröffentlichung von Vue 3, seine Meinung zu No-Backend & Fullstack-Ansätzen, Vue.js-Anwendungsfällen und der Work-Life-Balance des Schöpfers der Technologie zu sprechen.
Das Interview
Evrone: Hey Evan, es ist großartig, Sie heute hier zu haben! Beginnen wir mit Ihrem einzigartigen und durch Patreon finanzierten Fulltime-Job. Wie organisieren Sie Ihre Work-Life-Balance und vermeiden Burnouts?
Evan: Ich versuche jeden Tag, obwohl ich selbstständig bin und von zu Hause aus arbeite, einen festen Zeitplan einzuhalten. Kinder zu haben hilft in dieser Hinsicht sehr, weil ich Zeit mit meiner Familie verbringen kann (und muss), wenn ich nicht arbeite. Eine andere wichtige Sache ist, dass ich längere Pausen (mehrere Wochen) mache, wann immer ich es für nötig halte. Das ist natürlich schwieriger, wenn man Vollzeitangestellter in einem Unternehmen ist.
Evrone: Das klingt sehr gut! Die Veröffentlichung von Vue 3 steht vor der Tür. Gönnen Sie sich anschließend eine Pause oder haben Sie bereits Pläne für die nächste Version des neuen Vite-Build-Systems?
Evan: Ich habe immer einiges auf meiner Liste stehen. Für Vite besteht das aktuelle Ziel darin, es stabiler zu machen. Vite ist ein neues System, und die Nutzer versuchen, es in Szenarien zu verwenden, für die ich es ursprünglich nicht entworfen habe. Wir geben dem Ganzen also etwas Zeit, um zu erfahren, welche Richtung wir damit einschlagen sollten. Es gibt auch bereits Ideen für Vue 3.1. Aber ich werde auf jeden Fall eine Pause machen. Es ist wichtig, sich wieder aufzuladen!
Evrone: Sie sind als „Creative Technologist“ mit einem Abschluss in Kunstgeschichte zu Google Creative Lab gekommen. Haben Sie bei der Arbeit an Vue festgestellt, dass Ihnen die nötigen Kenntnisse an Mathematik, Algorithmen und Datenstrukturen fehlen? Sollte man Informatik studieren, um Programmierer zu werden? Oder wäre es besser, als „Software-Autor“ Code zu schreiben, der eher gewöhnlich, aber leicht verständlich ist?
Evan: Ehrlich gesagt nicht viel. Ich persönlich denke, dass Vue oder Front-End-Frameworks im Allgemeinen keine besonders komplexe Mathematik oder schwierige Algorithmen erfordern (im Vergleich zu Datenbanken zum Beispiel). Ich halte mich auch immer noch nicht für sehr gewandt, was Algorithmen oder Datenstrukturen betrifft. Es hilft definitiv, diese Dinge zu beherrschen, aber ein populäres Framework zu bauen, hat viel mehr damit zu tun, seine User zu verstehen, vernünftige APIs zu entwerfen, Communities aufzubauen und eine langfristige Wartungsverpflichtung einzugehen.
Ich denke nicht, dass man als einfacher „Software-Autor“ nur „gewöhnlichen, aber leicht verständlichen“ Code schreibt. Es braucht tatsächlich einige Erfahrung, um langweiligen, aber leicht verständlichen Code zu schreiben (vorausgesetzt, er ist nicht sonderlich effizient)! Ich glaube auch nicht, dass man sich unqualifiziert fühlen sollte, Software zu schreiben, nur weil man keine rigorose IT-Ausbildung durchlaufen hat. Man sollte sie allerdings auch nicht komplett außer Acht lassen. Ich persönlich habe einen pragmatischen Ansatz gewählt, bei dem ich viele Dinge zuerst auf dumme Weise realisiert habe, um dann herauszufinden, was ich mir aneignen muss, um es besser zu machen.
Evrone: Großartig. Mit vielen Technologien wie Nuxt.js und JAMstack ist es für Entwickler verlockend, sich ganz auf den Frontend-Teil ihrer Anwendungen zu konzentrieren und ein minimales/JS/BaaS-Backend zu verwenden. Was halten Sie von diesen „No-Backend“- oder „Fullstack“-Ansätzen?
Evan: Ich denke, dass es eher so ist, dass das Produkt selbst über die verwendete Technologie bestimmt. Die Entwickler bewegen sich auf solche Stacks zu, weil es zu der Art von Produkten passt, die sie bauen: relativ einfache Backend-Logik mit mehr Fokus auf Frontend-Interaktion. Es ist natürlich keine Wunderwaffe, passt jedoch sehr gut in eine bestimmte Kategorie von Apps.
Evrone: Vue wurde mehrfach umprogrammiert. Wenn Sie in die Vergangenheit reisen und Ihrem dortigen Ich nur einen technischen Rat geben könnten, welcher wäre das? Evan: Wie man interne Module besser trennt und entkoppelt.
Evrone: In den letzten Jahren haben wir eine parallele JavaScript- und TypeScript-Evolution beobachtet. Worauf setzen Sie in naher Zukunft? Werden wir irgendwann Typen zum Kern von JavaScript hinzufügen oder wird TypeScript JavaScript ersetzen? Oder etwas ganz Anderes? Evan: Ich denke, dass es sehr, sehr weit hergeholt ist, JS selbst Typen hinzuzufügen. Ich persönlich glaube nicht, dass es dazu kommen wird, denn ein Typensystem durch ein Komitee zu entwerfen (und nach der Arbeitsweise von TC39 zu urteilen) ist … ziemlich unpraktisch. TypeScript wird JS nicht ersetzen, da es so konzipiert ist, dass es JS enthält. Persönlich denke ich, dass die parallele Entwicklung von JS und TS (als Obermenge mit Typen) der praktischste Weg ist, und das wird auch in naher Zukunft so sein.
Evrone: Die Benutzerbasis von Vue umfasst bereits über eine Million Entwickler. Was ist Ihrer Meinung nach der beste Weg, um die Akzeptanz von Technologien zu messen? Fragen auf Stack Overflow, GitHub-Sterne und andere öffentlich zugängliche Metriken sind großartig, aber es gibt viele Arbeitnehmer, die in isolierten Netzwerken ihrer Unternehmen arbeiten, nicht viele Fragen stellen und „die Technologie einfach benutzen“. Wie können wir die Popularität einer Technologie ermitteln, ohne diese Menschen außer Acht zu lassen?
Evan: Dies ist ein an sich schwieriges Problem für Open-Source-Software, da die Benutzer nicht verpflichtet sind, ihre Nutzung in irgendeiner Form zu melden. Wir haben als Autoren auch keine verlässlichen Möglichkeiten, die Nutzung zu verfolgen, insbesondere wenn die Apps nicht öffentlich zugänglich sind. Aus diesem Grund halte ich die Anzahl der Benutzer der devtools-Erweiterung für die zuverlässigste Metrik, da sie alle Benutzer berücksichtigt.
Evrone: Im bevorstehenden Vue.js 3 wird viel mit „Tree Shaking“ gearbeitet. Warum, glauben Sie, hat es so lange gedauert, bis „Tree Shaking“ Teil moderner Frameworks wurde? Gibt es größere Schwierigkeiten damit?
Evan: Die Funktionsweise von Tree Shaking hängt davon ab, dass der Quellcode auf eine bestimmte Art und Weise strukturiert ist. Das bedeutet, dass es am besten funktioniert, wenn der Code vom ersten Tag an unter Berücksichtigung von Tree Shaking geschrieben wird (und APIs entsprechend entworfen werden). Es ist ziemlich schwierig, eine vorhandene, nicht triviale Codebasis für Tree Shaking benutzerfreundlich zu gestalten, da entweder Änderungen in der API oder umfangreiche Umgestaltungen (die mit erheblichen Risiken verbunden sind) erforderlich sind.
Evrone: Der Vorschlag einer „funktionsbasierten Komponenten-API“ für Vue 3 ist bei den Community-Mitgliedern auf massive Ablehnung gestoßen. Haben Sie diesbezüglich noch irgendwelche Gedanken, die Sie mit anderen Entwicklern teilen möchten?
Evan: Die Ablehnung kam hauptsächlich durch die Befürchtung, dass wir die aktuelle (2.x) API von Vue nicht mehr unterstützen werden. Es war ein Fehler unsererseits, dies in Erwägung zu ziehen. Als Autoren und Betreuer interagieren wir bei unserer täglichen Arbeit typischerweise mit den enthusiastischsten frühzeitigen Anwendern, die sich natürlich mehr für neue Ideen begeistern als der durchschnittliche Benutzer. Das hat dazu geführt, dass wir die Bedeutung der Rückwärtskompatibilität falsch eingeschätzt haben. Die User haben es nicht gerne, wenn man ihnen Dinge wegnimmt. Man muss verstehen, was die User wollen. Das ist oft nicht so einfach, und manchmal erhält man diese Informationen auf die harte Tour. Ungeachtet dessen sollte man jedoch immer ein offenes Ohr für die Nutzer haben.
Evrone: Die Anwendungsfälle von Vue reichen von kleinen Unternehmen über mittelgroße Agenturen bis hin zu milliardenschweren öffentlichen Unternehmen. Louis Vuitton und die NASA verwenden Vue. Gibt es Use Cases von Vue, die Sie als Beispiel für das komplexe, mit Vue erstellte Frontend empfehlen würden?
Evan: Das Problem ist, dass die meisten „komplexen Frontend-Projekte“ nicht Open Source sind. Ich würde empfehlen, Vue Devtools und die Vue CLI-Benutzeroberfläche zu testen. Beide sind nicht triviale Schnittstellen, die in Vue geschrieben wurden, obwohl sie keine typischen Web-Apps für Verbraucher darstellen.
Das Fazit
Es war toll, dass wir uns mit Evan unterhalten konnten und mehr über seine Einstellung zum Leben und das Schreiben von Code erfahren durften. Bei Evrone verwenden wir häufig Vue.js, um benutzerdefinierte Lösungen zu erstellen, die den individuellen Anforderungen unserer Kunden gerecht werden. Wir schätzen es sehr, wenn wir die Gelegenheit erhalten, vom Entwickler einer Technologie zu lernen, weil wir dadurch unser Fachwissen stärken und wir dadurch mehr Tools zur Verfügung haben, mit denen wir innovative neue Produkte entwickeln können. Wenn Sie eine Idee für ein Projekt haben, das von Vue.js profitieren würde, wenden Sie sich einfach an uns, und wir helfen Ihnen gerne weiter.