„Ich bin nur ein Projektenthusiast und Nutzer der Dart-Sprache“ - ein Interview mit Ari Lerner, dem Autor des berühmten ng-book



    Wie schreibe ich neun Bücher über völlig unterschiedliche Technologien, einschließlich Angular, Vue, React, React Native und andere? Was ist das Wichtigste im Training, was ist ein „Flur-Chat“ und was haben Dart und Flutter im Allgemeinen damit zu tun?

    Heute ist unser Gast Autor zahlreicher Bücher und Artikel zum Programmieren, darunter ng-book - Ari Lerner . Was wird das weitere Buch sein , dass der Autor denkt über eine solche ... widersprüchlichen Sprache wie Dart, und warum es so wichtig ist Konferenzen zu kommunizieren, fragen die Jungs von Software HolyJS Conference Committee ( Dmitry DmitryMakhnev Makhnev und Eugene bunopus Cat ).

    - Guten Tag. In unserem Interview gibt es drei Abschnitte, im ersten werden wir über Sie sprechen, im zweiten über Flutter und der dritte wird endgültig sein. Fangen wir an, Ihnen etwas über sich selbst zu erzählen.

    - Zunächst möchte ich mich bei Ihnen für die Einladung bedanken. Ich freue mich sehr, dass Sie die Gelegenheit haben, bei HolyJS zu sprechen. Ich wohne in Brooklyn in New York und programmiere so viel ich kann mich erinnern - Assembler war meine erste Sprache in den frühen 1990ern. Im Moment mache ich Blockchains und tiefes Lernen, bisher getrennt. Ich arbeite größtenteils mit Kunden zusammen und helfe ihnen, zu ICO (Initial Coin Offerings) zu gehen, und ihnen dabei zu helfen, mit „Token Economics“ zu arbeiten. Und noch lebt mit mir ein wunderbarer Hund Ginger, eine Mischung aus Chihuahua und Corgi - ich kann endlos darüber reden.

    - Wie sieht sie aus? Die Größe eines Chihuahua, aber zottelig wie ein Corgi?

    - Ja, dies ist ein reduzierter Corgi mit der Schnauze eines Chihuahua. Sehr schön

    - Was verdienst du jetzt? Schreiben Sie Bücher oder arbeiten Sie in einer Firma?

    - Beide. Ich schreibe ein Buch, aber es dauert nicht mehr lange. Bis ich mich entschieden habe, was als nächstes zu tun ist, arbeite ich für mich.

    - Sie haben Fullstack.io vor 5 oder 6 Jahren gegründet?

    - Ja, das war 2012.

    - Erzähl uns davon.

    - Fullstack besteht aus zwei Teilen: Es ist der Verlag für Lehrbücher zum Programmieren sowie eine Bildungsplattform. Im Hinblick auf die Veröffentlichung von Lehrbüchern ist unser Hauptpublikum ein professioneller Entwickler, aber wir stellen auch Lehrbücher für Universitäten, Schulen und Weiterbildungsprogramme zur Verfügung. Darüber hinaus führen wir Online- und Live-Schulungen durch, meist im Rahmen der Weiterbildung. Wir arbeiten mit Unternehmen wie General Electric, Walmart, den Streitkräften usw. zusammen.

    - Großartig. Konkurrieren Sie mit O'Reilly oder haben Sie ein völlig anderes Feld?

    „Wir machen Dinge in vielerlei Hinsicht ähnlich wie O'Reilly, aber wir konkurrieren nicht direkt mit ihnen, weil wir eine völlig andere Dimension haben - wir stellen keine Bedrohung für O'Reillys Weltherrschaft über Programmbücher dar. Außerdem haben wir einen etwas anderen Ansatz. Normalerweise werden Bücher nach der Veröffentlichung nicht aktualisiert. Sobald Sie sie lesen, ist sie bereits veraltet. Wenn Sie ein Buch bei uns kaufen, erhalten Sie damit laufend Updates.

    - Veröffentlichen Sie Papierbücher oder nur elektronische Bücher?

    - sowohl diese als auch andere. Wir verkaufen Papierbücher über Amazon, sie können jedoch nicht aktualisiert werden. Bei Fullstack gekaufte elektronische Bücher werden automatisch aktualisiert. Sie können kein Update über Amazon durchführen - sie haben zu enge Kontrollen.

    - Soweit ich weiß, sind Sie Mitautor vieler Bücher über Fullstack.io - Fullstack React, Fullstack React Native und natürlich das berühmte ng-book. Um ein Buch zu schreiben, müssen Sie mit dem Themenbereich, über den Sie schreiben, sehr vertraut sein - egal ob es sich um Winkel, Reaktion, Vue oder etwas anderes handelt. Wie sieht Ihre Vorbereitung zum Schreiben eines Buches aus?

    - Gute Frage. Lassen Sie mich zuerst erzählen, wie ich überhaupt angefangen habe, Bücher zu schreiben, und warum mag ich diese Aktivität? Und dann gehen wir weiter, wie die Arbeit an jedem einzelnen Buch läuft.

    - Ja natürlich.

    - Im Jahr 2012 erreichte ich die Höchstgrenze in der Firma, in der ich arbeitete, und entschied, dass es Zeit ist, zu gehen. Ich habe mein Startup erstellt - ob Sie es glauben oder nicht, aber es war eine Planungsfirma. Für sie habe ich ein elegantes Erlang- und Python-Backend mit einem Hauch von Ruby geschrieben. Da es aber kein gutes Frontend gab, begann ich verschiedene Rahmen zu erkunden und stieß auf Angular. Es war lange her, vor Version 1.0. Ich habe angefangen, Frontend für mein Startup zu schreiben, und Angular hat mir wirklich gefallen, aber die Dokumentation war einfach schrecklich. Um zu verstehen, wie dieses Framework funktioniert, fing ich an, den Quellcode zu lesen und zu verstehen, wie er funktioniert - und so kam es zu einer engen Bekanntschaft mit Angular.

    Zu dieser Zeit wurde ich gebeten, einen Vortrag über JavaScript im Entwickler-Trainingslager von San Francisco zu halten, und dann wurde mir klar, dass ich wirklich gern unterrichtete. Daher beschloss ich, diese beiden Interessen zu kombinieren und begann, einen Mini-Guide zu Angular für Anfänger zu schreiben. Zuerst dachte ich, es wären zwei oder drei Seiten Text, aber schließlich kamen 650 Seiten heraus, die ich im Laufe der Jahre immer wieder aktualisiert habe. Am Ende wurde ich Autor oder Co-Autor von neun Büchern. Ich habe als Freiwilliger in jedem großen Trainingslager für Entwickler in San Francisco unterrichtet. Ich arbeite auch freiwillig in Organisationen wie Women Who Code und Bridge Foundry-Projekten und unterrichte ElixirBridge. Ich gab sogar Unterricht in einem allgemeinen Gefängnis in der San Francisco Bay und unterrichte immer noch hier in New York.

    Das Unterrichten ist für mich sehr wichtig, es motiviert mich, mehr selbst zu lernen. Lehren, ich helfe nicht nur anderen, ich zwinge mich, auf eine neue Ebene zu steigen, um erklären zu können, wie diese oder jene Technologie funktioniert. Ich bereite mich normalerweise auf das Lesen der Quelle vor, insbesondere auf JavaScript. Vor ein oder fünf Jahren haben wir Vue kennengelernt und haben gerade angefangen, den Quellcode zu erforschen. Unsere Arbeit mit Vue hat uns große Freude bereitet. Während ich arbeite, schreibe ich alle Probleme auf, die ich treffe, alle Suchanfragen bei Google, alle Dokumentationsfragen. Als Ergebnis erstellen wir ein umfangreiches und sehr detailliertes Inhaltsverzeichnis, das wir bei Änderungen zusammen mit dem gesamten Buch aktualisieren.

    - Geschieht dies automatisch mit Hilfe von Handlern, die all diese Informationen in der Dokumentation überwachen?

    „Wir haben Handler, die die Freigabezyklen verfolgen, aber leider wird fast alles andere - das Bearbeiten von Inhalten und Bildern - manuell durchgeführt. Wir haben Haken bei React und automatische Code-Updates, aber der Inhalt muss manuell aktualisiert werden.

    - Ich verstehe. Soweit ich weiß, sind Sie Mitautor vieler Bücher. Ist es schwieriger, alleine oder mit jemandem ein Buch zu schreiben? Wie organisieren Sie Ihre Arbeit, wie synchronisieren Sie Kapitel?

    - Genau wie bei der Zusammenarbeit in einer Anwendung verwenden wir Git, um den Inhalt zu vereinheitlichen. Daher verfügen wir über Versionen und Verzweigungen. Ein Buch in Co-Autorschaft zu schreiben, kann schwierig sein, obwohl ich denke, dass es bei Büchern über technische Besonderheiten etwas einfacher ist als bei nicht-technischen. Ich denke, das Schwierigste ist, einen einheitlichen Ton für alle Abschnitte sicherzustellen und zu bestimmen, welche Demos verwendet werden sollen. Dies ist jedoch im Allgemeinen keine sehr schwierige Aufgabe. Alle Aufmerksamkeit nimmt das Schreiben und Editieren auf, und wir sind ständig in Kontakt miteinander, was den Prozess erheblich vereinfacht. Im Laufe der Jahre haben wir Briefvorlagen entwickelt, die allen unseren zahlreichen Autoren die Einheit des Stils gewährleisten. Und wir geben unser Bestes, um sicherzustellen, dass unsere Co-Autoren mit uns schreiben, nicht für uns. Wir positionieren uns als Team, in dem alle miteinander arbeiten, und nicht als Verlag. Die Autoren arbeiten für. Darüber hinaus sind wir alle Mitherausgeber der Bücher, die wir schreiben. Ein Redakteur oder ein Redakteur hilft, einen einheitlichen Stil im gesamten Buch sicherzustellen. Jeder Autor bearbeitet einen Abschnitt, der von einem anderen Autor geschrieben wurde.

    Als Werkzeuge verwenden wir Git sowie einfache Texteditoren und Markdown. Normalerweise arbeite ich mit Visual Studio Code oder Spacemacs - einer Kombination aus Emacs und Vim. Ich empfehle es sehr, wenn Sie es noch nicht probiert haben. Außerdem haben wir eine Menge eigener Software, die wir geschrieben haben, um in Echtzeit mit Stil- und Vorschau-Büchern zu arbeiten. Wir verwenden es, bevor wir ein neues Release oder Update eines Buches veröffentlichen. Die meisten unserer Tools sind in JavaScript, TypeScript oder Python geschrieben.

    - Verwenden Sie beim Schreiben von Büchern flexible Methoden wie Scrum?

    - Ja, aber nicht zu aktiv. Wir veranstalten eine Art modifiziertes Stand-Up-Meeting, aber nicht jeden Tag, sondern jede Woche oder eine Woche, je nach Tempo der Arbeit im Buch. Wenn ich alleine arbeite, ist mein ganzer Stand, dass ich meinen Texteditor öffne, aber wenn ich mit jemandem arbeite, sind wir ständig über Slack und Google Hangouts in Kontakt.

    - Wie lange brauchen Sie, um ein Buch zu schreiben?

    - Es hängt davon ab, um welche Art von Buch es sich handelt, ob ich mit Koautoren arbeite und wie schnell das Framework ist. Zum Beispiel habe ich in vier Monaten ng-book geschrieben und abends und am Wochenende gearbeitet. Aber für mich ist das absolut unvorstellbares Tempo, ich verstehe immer noch nicht, wie ich es geschafft habe. Normalerweise dauert ein Buch sechs bis zwölf Monate.

    - Interessant. Sie verbringen viel Zeit damit, mit interessanten Tools und Prozessen zu arbeiten, vielleicht gemeinsam mit einer anderen Person zu verfassen und dann das Buch der Publikation zu übergeben. Wenn der Verlag versucht, die Früchte Ihrer Arbeit in eine andere Sprache zu übersetzen, wie überprüfen Sie die Qualität der Übersetzung? Ich frage, weil ich zu Beginn der Programmierung keine technischen Dokumentationen in englischer Sprache lesen konnte. Daher las ich viele Bücher auf Russisch - beispielsweise die Übersetzung der guten Teile von JavaScript und der berühmtesten Bücher von O'Reilly. Soweit ich weiß, waren diese Übersetzungen schrecklich. Ich denke darüber nach, wie die Autoren der Bücher dies hätten behandeln sollen und wie sie die Übersetzungen überprüfen könnten. Wie ist Ihre allgemeine Meinung zu Übersetzungen?

    - Hier kann ich nur über meine persönlichen Erfahrungen und die Funktionsweise von Fullstack sprechen. Es gibt viele Situationen, in denen wir nicht die Sprache sprechen, in die das Buch übersetzt wird. Beispielsweise werden die meisten unserer Bücher ins Chinesische übersetzt, und ich spreche kein Chinesisch. Zwar habe ich im Laufe der Zeit ein paar Worte gelernt, ich habe eine spezielle Anwendung, Babbel, mit der ich Fremdsprachen lerne. Im Fall von Chinesisch wurden die besten Übersetzungen jedoch erzielt, als unser Übersetzer gleichzeitig Programmierer war. Dank dessen war es für den Übersetzer für alle Fragen einfacher, uns eine Frage auf Englisch zu stellen und die Antwort dann korrekt ins Chinesische zu übersetzen. Ich spreche leider auch kein russisch. Ich kann "Fahrrad" sagen - obwohl nein, wie Sie hören, auch das kann ich nicht sagen. Natürlich ist es schwer, die Sprache, in der die Software geschrieben ist, nicht zu kennen.

    - Eine ähnliche Situation war bei Vue. Soweit ich weiß, waren seine ersten Veröffentlichungen eher schlecht dokumentiert und viele Probleme wurden auf Chinesisch beschrieben. Soweit ich weiß, ist Englisch jetzt obligatorisch.

    - Ja das stimmt. Ich bin froh, dass meine Muttersprache Englisch ist. Obwohl ich nicht perfekt darauf bin, habe ich keine Probleme mit der Dokumentation. Ich glaube, dass Übersetzungen sehr wichtig sind. Außerdem leben wir in einer Zeit, in der die maschinelle Übersetzung vor allem aufgrund des tiefen Lernens immer qualitativer wird. Dies ist einer der Gründe, warum ich mich für tiefes Lernen interessierte. Ich glaube jedoch nicht, dass es ein Allheilmittel für all diese Probleme gibt.

    - Ich bin vor kurzem über eine hitzige Diskussion im russischen Teil von Twitter gestolpert. Eine Partei des Streits argumentierte, Übersetzungen seien per definitionem böse, da Programmierer Englisch beherrschen müssten, es sei eine internationale Sprache für alle. Andere sagten, dass für Junioren und diejenigen, die nicht gut Englisch sprechen, die Dokumentation übersetzt werden muss. Haben Sie eine Meinung zu diesem umstrittenen Thema?

    - Die Argumente beider Seiten liegen mir nahe. Was ich jetzt sagen möchte, ist nur meine erste Reaktion, ich habe dieses Problem lange nicht betrachtet. Vielleicht können wir dieses Thema tiefer besprechen. Es scheint mir, dass jetzt so viel Code auf Englisch geschrieben ist, dass es extrem schwierig sein würde, Englisch loszuwerden. Es gibt internationale Sprachen - zum Beispiel ist JavaScript eine internationale Sprache. Wenn Sie es sprechen, können Sie mit jeder Person auf der ganzen Welt kommunizieren. Eine internationale Sprache - Englisch - macht es uns leichter, mit Entwicklern auf der ganzen Welt zu kommunizieren und zusammenzuarbeiten. Ich habe zum Beispiel mit Entwicklern in Indien, Frankreich, England, China und Australien gesprochen. Natürlich ist das nicht ganz fair in Bezug auf Menschen, die kein Englisch sprechen. Ich bin mir sicher, ob ich kein Englisch sprach. Ich hätte dazu eine andere Meinung. Wie ich bereits gesagt habe, sind dies nur meine primären Gedanken, ich habe dieses Problem lange nicht berücksichtigt und vielleicht wird sich morgen meine Meinung ändern.

    - Ja, wir können das persönlich besprechen. Lassen Sie uns jetzt über Bücher sprechen - sie werden aufgrund der Entstehung von Plattformen wie Media, Twitter usw. weniger populär als zuvor. Glaubst du, Bücher verschwinden?

    - Ich bin nicht überzeugt, dass Bücher weniger populär werden. Ich glaube, dass jeder auf unterschiedliche Weise arbeitet und lernt. Onlinedienste sind den Klassen ähnlich. Meines Erachtens eignet sich Online-Lernen für Entwickler, die verschiedene Sprachen und Rahmenbedingungen unterschiedlich lernen möchten. Einige finden es einfacher, mit Dokumentation zu arbeiten, andere mit Quellen, andere arbeiten besser in Gruppen, andere alleine durch Versuch und Irrtum oder lesen Bücher in Zügen und Flugzeugen und setzen dann das um, was sie in der Praxis lesen. Auf der anderen Seite habe ich in Klassen unterrichtet, in denen alles genau das Gegenteil war und die Schüler sich einfach nicht für ein Buch hinsetzen konnten, es gab ihnen nichts. Es ist nicht so, dass sie überhaupt nicht lesen können, sie bekommen einfach weniger vom Lesen als von der Zusammenarbeit mit anderen Menschen. Ich denke Eine der wichtigsten Errungenschaften des Internets für die Programmierergemeinschaft ist, dass das Lernen leichter zugänglich und der Erfolg leichter erreichbar ist. Websites und Dienste wie Medium oder Coursera tragen zur Verbreitung von Wissen bei und ermöglichen vielfältige Lernmöglichkeiten. Ich bin stolz darauf, an dieser Bildungsentwicklung beteiligt zu sein. Vielleicht werden unsere Bücher in Zukunft interaktiv, und wir können sie mit Online-Kursen kombinieren.

    - Ich erinnere mich, dass einmal Bücher von einer CD oder DVD mit Beispielen verkauft wurden. Jetzt ist dieses Format aus der Mode.

    - Ja, jetzt möchten alle Zip-Archive versenden - zum Beispiel kombinieren wir alle unsere Demos in einem Zip-Archiv. Mit einem der nützlichsten Tools, die wir entwickelt haben, können wir den gesamten Quellcode, der in diesem Buch verwendet wird, an einer Stelle schreiben. Anschließend verfügen wir über Tools, die ihn automatisch aus den Originalquellen aktualisieren. Angenommen, wir müssen eine Zeile, Klasse, ein Objekt oder eine Funktion auswählen, die wir in einem Buch besprechen. Wir verfügen über Tools, mit denen Sie direkte Links zum Quellcode herstellen können. Dies ist auch nützlich, da die Quelle jedes Mal, wenn Sie ein Buch herunterladen, aktualisiert wird. Wir schreiben die Quelle also nicht direkt in den Text, sondern in eine separate Datei.

    - Meine nächste Frage wird sich auf die vorige beziehen. Sie sagten, dass jeder anders lerne und ich als Entwickler Bücher lesen, Videos auf YouTube ansehen und Artikel auf einer Lernplattform lesen kann. Aber warum sollte ich an Konferenzen teilnehmen?

    - Das ist eine gute Frage. Ich kann zwei Gründe nennen, warum es sich lohnt, es zu tun. Der erste ist der naheliegendste: Präsentationen und Berichte auf Konferenzen sind in der Regel gut durchdacht und speziell für die Betrachtung konzipiert. In der Regel ist ein solcher Bericht einem klar definierten Problem gewidmet, beispielsweise dem Refactoring. Wenn Sie im Publikum sitzen, wo es einen guten Bericht über das Refactoring gibt, ist es, als ob Sie sich selbst refactoring, Sie werden in die Präsentation einbezogen. Nun, für mich die Persönlichkeit des Sprechers, seine Gefühle sind immer interessant.

    Der zweite Grund ist weniger offensichtlich. Ich nenne es "Flur-Chat" - neben den eigentlichen Berichten, die Sie treffen und mit Leuten kommunizieren, die dasselbe tun wie Sie. Unsere Aktivitäten als Entwickler sind per Definition individuell. Wenn Sie jedoch mit vielen anderen Menschen in Verbindung treten, die sich im selben Raum wie Sie befinden und dasselbe tun wie Sie, wird diese Aktivität automatisch sozial. Ein weiterer Vorteil von „Geselligkeit in der Lobby“ ist, dass Sie auf Menschen treffen, die Ihre Dienste, Ihr technisches Wissen oder Ihre Lehrerfahrung benötigen. Nach meiner Erfahrung finden wir mehr Kunden als anderswo - sogar unsere Bücher und Videos.

    - Sie haben bereits viele Bücher geschrieben - sagen Sie mir, woran arbeiten Sie gerade? Vielleicht ein paar Spoiler?

    - Jetzt beschäftige ich mich hauptsächlich mit Blockchains. Wenn wir über Blockchains, Augmented Reality und Deep Learning sprechen, ist es in diesen Bereichen großartig, dass sie jetzt sehr beliebt sind. Daher habe ich bei fast jeder Konferenz, an der ich in den letzten Jahren teilgenommen habe, sehr lebhafte Diskussionen mit interessierten Personen geführt Artikel Und oft ist es der Frontend-Entwickler bei Google, der sich in seiner Freizeit mit anderen Themen befasst.

    Was mich persönlich betrifft, beziehen sich meine Projekte hauptsächlich auf die Wirtschaft - und das Erstaunlichste ist, dass dies ein sehr interessantes Thema ist. Außerdem arbeite ich derzeit an einem Buch mit dem Titel "C ++ for JavaScript developer", das sich noch in den Anfängen des Schreibens befindet. Ich würde mich sehr freuen, dieses Thema zu besprechen, wenn das Treffen auf der JavaScript-Konferenz jemand ist, der mit C ++ gearbeitet hat.

    - Wird dieses Buch irgendwie mit WebAssembly zusammenhängen? Sie verstehen, dass C ++ und JavaScript ...

    - Das Buch ist hauptsächlich der EOS gewidmet - dies ist eine ziemlich neue Blockchain. Es ähnelt Etherium, wurde jedoch mit LLVM erstellt. Dadurch können Sie einen Vertrag für alles, was in LLVM kompiliert ist, einschließlich C ++, schreiben.

    - Großartig. Lassen Sie uns zum nächsten Abschnitt übergehen, er wird enger mit Ihrer Präsentation bei HolyJS zusammenhängen. Sie haben früher mit Angular, Vue, React und JavaScript gearbeitet. Jetzt berichten Sie über Flutter, die mobile Plattform von Google, die in Dart geschrieben wurde. Was hat Sie dazu gebracht?

    - In einer solchen Formulierung hört sich das wirklich komisch an. Hier ist eine ähnliche Geschichte, wie ich zu Angular gekommen bin, wie ich oben bereits erwähnt habe. Ich wollte ein paar Anwendungen für mich und meine Freunde schreiben, die verwenden, wer Android ist, wer iPhone ist. Wir haben bereits ein Buch über ReactNative veröffentlicht, und ich hatte Erfahrung mit dieser Plattform, wollte aber etwas anderes ausprobieren. Ich kann in Java, Kotlin und Swift schreiben, also habe ich angefangen, eine Anwendung in Swift zu schreiben. Soweit ich weiß, wird versucht, Swift für Android anzupassen, aber diejenigen, die ich kenne, befinden sich noch in einem sehr frühen Stadium, man kann sich nicht darauf verlassen. Außerdem scheint es mir, dass viele von ihnen Hacks sind. Das heißt, der Entwickler ist an iOS gewöhnt und versucht, seine Erfahrungen einfach auf Java zu übertragen, oder er ist im Gegenteil sehr gut mit Java vertraut und steigt in iOS auf. Außerdem, Ich wollte mich nicht von der JavaScript-Community trennen - ich hatte sehr enge Beziehungen dazu, ich konnte wunderbare Werkzeuge wie Redux verwenden, es gab viele Bibliotheken, in deren Fehlen ich das Rad neu erfinden müsste. Als Ergebnis entschied ich mich, nach einem anderen kreuzkompilierten Framework zu suchen und fand Flutter.

    Flutter ist in Dart geschrieben, es ist eine kompilierte Sprache, ähnlich wie TypeScript. Es bietet eine einfache Integration in JavaScript-Bibliotheken, sodass ich auf meinen Erfahrungen mit Redux aufbauen kann. Ein weiterer Vorteil von Flutter ist, dass alles darin ein Widget ist, sodass das Schreiben von Anwendungen schneller und verständlicher wird. Und Datenimmunität macht Anwendungen sicherer, Fehler werden sehr schnell erkannt. Darüber hinaus verfügt Flutter über eine AOT-Kompilierung und eine JIT-Kompilierung. Viele integrierte Widgets machen es sehr einfach, eine Anwendung mit der bekannten Benutzeroberfläche zu erstellen. Aufgrund der Tatsache, dass Sie sehen können, wie Widgets in Flutter funktionieren, beginnen Sie besser zu verstehen, wie Flutter funktioniert.

    Flutter hat viele andere Stärken - Testen, Paketverwaltung, Verteilung, Kompilieren. Eine der coolsten Funktionen von Flutter ist der Hot Reload, an den wir uns so sehr an das Web gewöhnt haben. Wenn Sie beispielsweise eine Anwendung auf Swift erstellen, kompilieren Sie sie und starten sie dann. Anschließend müssen Sie möglicherweise einige Tasten drücken, um zum Bildschirm zurückzukehren, auf dem Sie gearbeitet haben, um die aufgetretenen Probleme zu lösen. Anschließend wird der gesamte Zyklus wiederholt. Außerdem wird Ihre Benutzeroberfläche mit Flutter immer in derselben Sprache lokalisiert, in der Ihre Geschäftslogik geschrieben ist. In Bezug auf meine Erfahrung mit Flutter habe ich mehrere Anwendungen darauf geschrieben, und ich freue mich über diesen Prozess. Ich muss immer noch sagen, dass Dart TypeScript ziemlich ähnlich ist, was wiederum JavaScript ähnelt.

    „Aber Dart ist eine Sprache mit starker Schreibweise. Daher ist es nicht möglich, Programme so zu schreiben, wie Sie in JavaScript schreiben. Was denkst du allgemein über Dart, wie sieht es mit der Sprache aus? Was sind die Vorteile?

    „Um ganz ehrlich zu sein, ich finde Dart wunderschön.“ Ich mag statisch typisierte Sprachen - obwohl ich nichts gegen dynamische Sprachen habe, mag ich Clojure am meisten. Die statische Typisierung hat jedoch viele Vorteile, und mir scheint, dass viele Entwickler aufgrund von JavaScript angefangen haben, von JavaScript zu TypeScript zu wechseln, obwohl letztere die Möglichkeit hat, die Eingabe zu entfernen und dem Compiler die Möglichkeit zu geben, die Typen selbst zu bestimmen. Dart hat auch etwas Ähnliches, es führt Typeninferenz durch, daher gibt es keine strikte Eingabe. Der Vorteil von Sprachen mit statischer Typisierung, selbst mit Typinferenz, ist jedoch, dass sie sehr schnell in andere Sprachen übersetzt werden können und Fehler erkannt werden können, bevor die Anwendung gestartet wird. Wie bereits erwähnt, haben TypeScript und Flow alles. Die Kompilierung bietet Vorhersagbarkeit und Geschwindigkeit in Flutter tritt es in nativem Code auf. Darüber hinaus verfügt Flutter, wie gesagt, über eine JIT-Kompilierung, die den Entwicklungszyklus wesentlich schneller und einfacher macht, und dank dessen haben Sie einen sehr schnellen Neustart, wenn Sie eine Anwendung auf Flutter entwickeln.

    Es gibt viele andere attraktive Dinge in Dart - zum Beispiel ist der Geltungsbereich viel einfacher als in JavaScript, Sie müssen Funktionen nicht "binden". Klassen sind Objekte erster Ordnung, sie verfügen über explizite Schnittstellen, Konstruktoren werden benannt - wenn Sie in Java arbeiten, gefällt Ihnen das am besten. Ich finde es super cool, es macht es uns einfacher, an Dart zu schreiben, es dann in JavaScript zu kompilieren und dann dieses JavaScript zu verwenden. Übrigens schien ich nicht zu erwähnen, ja, Dart kompiliert JS. Isolate in Dart ermöglichen die Verwendung von Webworkern zusammen mit Dart. Meiner Meinung nach erleichtert Dart die schwierigsten Aspekte der Entwicklung. Darüber hinaus hat Dart viele großartige Tools, großartige Bibliotheken für Flutter. Die Startzeit ist sehr kurz, da der Dart-Code direkt in nativen Code kompiliert wird.

    - Deserialisierung und dergleichen.

    - ja Meiner Meinung nach hat die React Native-Community viele gute Bibliotheken erstellt, aber es gibt noch viele Schwierigkeiten - Sie können beispielsweise keine JavaString-Objekte übergeben, sie müssen in String-Objekte serialisiert werden. Mit Flutter müssen Sie so etwas nicht tun, da die Kompilierung direkt in nativen Code erfolgt. Da Dart Java, C #, ActionScript und JavaScript ähnelt, ist die Umgebung, in der Sie schreiben, vertraut und Sie können sich auf Ihre gesamte Erfahrung mit diesen Sprachen verlassen.

    "Während Clojure zum Beispiel etwas völlig anderes ist." Und bei Dart ist es gemütlich wie unter einer Decke.

    - Ja, ich habe über Clojure geschrieben - alles steht auf dem Kopf.

    - Welche Anwendungen können oder wollen Sie bei Flutter schreiben? Kann ich einen Bankkunden, eine Finanzanwendung oder eine Anwendung schreiben, die viele Bildschirme erfordert? Oder ist es einfach gut genug, "Hello World" darauf zu schreiben?

    - Bisher bin ich sehr beeindruckt von der Geschwindigkeit der Entwicklung und der Geschwindigkeit der Schnittstellen, die ich bei Flutter erstellt habe. Wenn Sie sich zwischen nativer Entwicklung oder einem überkompilierten Framework wie Flutter oder React Native entscheiden, hängt vieles von Ihrem Team ab. Ich denke, in einer richtig gestalteten Anwendung gibt es keine Begrenzung für die Anzahl der Bildschirme, die geschrieben werden können - hier ist Flutter anderen Optionen nicht unterlegen. Wenn Sie ein kleines Team haben und Ihre Anwendung unabhängig von der Plattform so vielen Benutzern wie möglich zur Verfügung stellen müssen, ohne die Leistung Ihrer Anwendung zur Laufzeit zu beeinträchtigen, verwenden Sie auf jeden Fall Flutter. Wenn Sie viele Mitarbeiter haben und Entwickler mit viel Erfahrung in der Erstellung von nativem Code sind, stellt sich eher die Frage, wie Sie Ihr Team einstellen werden. Perfektes Schreiben in Java oder Swift oder Personen, die Code für das Frontend Ihrer Webanwendung und für das Backend auf dem Server sowie für die mobile Anwendung schreiben können. Und hier, ich wiederhole, der Vorteil von Flutter ist für mich, dass Sie in einer Sprache schreiben können, mit der ich gut vertraut bin.

    Wenn Sie Ihre Frage direkter beantworten, eignet sich Flutter hervorragend für Apps, die Inhalte anzeigen - zum Beispiel für Twitter. Anders ist die Situation, wenn Sie Leistung benötigen, die nur eine native Anwendung bieten kann, beispielsweise bei AR- und VR-Anwendungen. Meine einzige AR-Anwendung ist in Swift geschrieben und ich habe sie noch nicht in Flutter übersetzt. Dies liegt zum Teil daran, dass sowohl auf iOS als auch auf Android sehr praktische Rahmenbedingungen für Virtual Reality und Augmented Reality sind.

    - Sie haben erwähnt, dass Flutter geeignet ist, um Twitter zu schreiben - aber Twitter ist jetzt in PWA geschrieben. Kann ich Flutter mit Anwendungen auf PWA vergleichen? Sie sind auch plattformübergreifend und haben viele andere Ähnlichkeiten.

    - Soweit ich weiß, wird es zukünftig möglich sein, Anwendungen auf Flutter in Webanwendungen zu kompilieren. Dies ist vorerst nicht möglich. Wenn Sie jedoch die Geschäftslogik Ihrer Webanwendung auf Dart geschrieben haben, können Sie sie problemlos in einer mobilen Anwendung verwenden. Und Dart ist sehr schnell. Kompilierter Dart-JavaScript-Code ist häufig schneller als Code, der direkt in JavaScript geschrieben wird.

    - Ich denke, das ist eine etwas kontroverse Aussage.

    - Ich werde es anders formulieren. Oft ist das Kompilieren von Fluttercode schneller als Code, den Sie direkt in JavaScript schreiben würden.

    - Ich verstehe. Wenn wir im Allgemeinen von Sprachen sprechen, gibt es viele, die auf anderen Plattformen in Sprachen übersetzt werden können. Eine davon ist natürlich JavaScript - jetzt können Sie alles für jede Plattform in JavaScript schreiben. Es gibt Frameworks dieser Art - für Angular ist dies Ionic, für die plattformübergreifende mobile Entwicklung - Cordova PhoneGap. Gibt es eine Sprache, die alle Bedürfnisse befriedigen kann? Vielleicht ist das Javascript?

    - Eine interessante Frage. Ich denke, die Tatsache ist, dass JavaScript leicht zu erlernen ist und die Community schnell wächst. Dadurch können Sie viele Ideen generieren - dank React Native, Node.js und teilweise Dart. Von allen vorhandenen JavaScript-Sprachen ist meiner Meinung nach das universelle Sprachmodell für alle Plattformen am nächsten. Ich persönlich fühle mich jedoch zu Sprachen hingezogen, die auf einer bestimmten Idee basieren - zum Beispiel mag ich funktionale Sprachen sehr. Ich glaube nicht, dass sie jemals außer Gebrauch geraten werden. Wenn Sie sich jedoch im Jahr 2018 dazu entschieden haben, in einer beliebigen Sprache zu schreiben, und Sie noch nicht wissen, was Sie tun werden - Web, mobile Anwendungen, Backend -, werden Sie es nicht bereuen, wenn Sie JavaScript gewählt haben.

    - Aber wenn JavaScript so großartig ist, warum tauchen dann neue Sprachen auf - Go, ClojureScript, Dart? Warum brauchen wir andere Sprachen, wenn es Javascript gibt?

    - Und wenn ich Äpfel mag, warum dann andere Früchte essen? Ich werde jetzt den Satz sagen, der oft in Trainingslagern wiederholt wird, und nicht nur dort - es ist sehr wichtig, dass das Werkzeug mit der zu erledigenden Arbeit übereinstimmt. Ich schreibe viel Code auf Go, weil alles, was mit Blockchains zu tun ist, die ich auf Go oder C ++ mache, Geschwindigkeit sehr wichtig ist. Und ich schreibe alle Schnittstellen in JavaScript oder Dart, und manchmal verwende ich ClojureScript. Die Quintessenz ist, dass C in naher Zukunft nirgendwohin gehen wird, obwohl es ziemlich alt ist. Es ist für Anwendungen konzipiert, die vor allem Geschwindigkeit und eine gute Speicherverwaltung erfordern. Auf jeden Fall müssen Sie sich mit den Funktionen der Sprache, in der Sie arbeiten, abfinden. Beispielsweise ist die Garbage Collection für JavaScript immer ein Problem, und Sie müssen sich immer damit beschäftigen, wenn Sie große Anwendungen schreiben. Zwangsläufig müssen Sie die Leistung zur Laufzeit der Einfachheit halber im Entwicklungszyklus opfern. Mein Bericht ist keinesfalls gegen Swift oder Java gerichtet - wie gesagt, meine Bewerbung bei AR ist in Swift geschrieben, weil ich sie zum einen noch nicht nach Flutter portiert habe, aber andererseits ist Swift perfekt für diese Aufgabe.

    - Es scheint, dass 2013, als sie die Gründung von Dart ankündigten, es eine Menge Aufregung gab, aber dann vergaßen es viele Menschen, und jetzt hört man in vielen Gemeinden, dass Dart tot ist und es von ihm nichts mehr zu erwarten ist. Was denkst du über die Zukunft von Dart und Flutter und über die Zukunft von Dart neben Flutter? Immerhin gibt es AngularDart und Dart für das Backend.

    - Gute Frage. Wenn ich die Antwort darauf wusste, saß ich irgendwo an einem warmen Strand oder auf meiner eigenen Yacht mit einem Hubschrauberlandeplatz. Wenn Sie Annahmen treffen, müssen Sie zuerst sagen, dass ich nicht zum Flutter-Team gehöre. Ich bin nur ein begeisterter Projektmitarbeiter und ein Benutzer der Dart-Sprache. Ich denke, die Cupertino-Bibliothek - Flutter-Schnittstelle für iOS - wird wachsen. Es scheint, dass das Flutter-Team die Möglichkeit hinzufügen möchte, native Desktop-Anwendungen in Flutter zu schreiben - aber ich bin mir nicht sicher.

    Die Gründung von Dart wurde meiner Meinung nach zu früh angekündigt, was zu übermäßiger Begeisterung und verfrühten Hoffnungen führte. Im Jahr 2013 war es das Jahr von EcmaScript. Ich glaube, es war eine offensichtliche Suche von Google, um das ECMAScript-Team zu beeinflussen. Außerdem sind Flow und TypeScript aus Sicht des Schreibens in der Sprache immer beliebter geworden. Ich wünsche Dart und Flutter alles Gute, insbesondere mit der anstehenden Version von Flutter 1.0.

    Es gibt ein Projekt, das wie Flutter funktioniert, genannt Fuse, aber es basiert auf C #. Das ist über seine Zukunft, ich habe wirklich Zweifel. Gleichzeitig wächst die JavaScript-Community sehr schnell, und da Dart sich in der Nähe von JavaScript befindet, wird dies zum Interesse der Entwickler an Dart und Flutter beitragen.

    - Großartig, danke. Ich möchte über Konferenzen sprechen. Was ist dir am wichtigsten?

    - Wie ich bereits erwähnte, ist für mich bei Konferenzen der "Flur-Chat" das Wertvollste. Und hier hängt viel von den Konferenzteilnehmern selbst ab. Interessante Inhalte, denkwürdige Referenten und Veranstaltungen im Zusammenhang mit der Konferenz helfen, eine Gemeinschaft von Gleichgesinnten zu schaffen und zu stärken. Alles, was dieser Gemeinschaft zum Gedeihen verhilft, ist wichtig. Und wie gesagt, ich gehe gerne auf Konferenzen, weil sie meine Arbeit sozial und nicht individuell machen.

    - Soweit ich weiß, wird dies Ihre erste Reise nach Russland sein?

    - ja

    - Was erwarten Sie von Russland, von Moskau und von HolyJS?

    „Neben Russland werde ich in Russland nichts sehen. Die ersten beiden Teile der Frage werden im Wesentlichen ein und dasselbe sein. Wie bereits erwähnt, war ich noch nie in Russland - ich reiste hauptsächlich nach China und in die Länder dieser Region, dh nach Taiwan und Südkorea. Wie ich aus dem, was ich über Russland gelesen habe, verstanden habe, haben Sie eine andere Kultur, Sie tun alles etwas anders als wir und es wird sehr interessant sein, herauszufinden, wie es in der Praxis aussieht. Dies ist einer der Gründe, warum ich gerne reise - ich bin immer neugierig, wie andere Menschen leben und welche Prioritäten sie haben. New York hat eine eigene Kultur, und alle meine Bekanntschaften mit der russischen Kultur sind auf ein Visum und Besuche in einem lokalen Restaurant zurückzuführen. Was mich erwartet, ist eine neue und faszinierende Erfahrung, welche Art von Erfahrung es sein wird - ich kann es nicht vorhersagen.

    Soweit ich weiß, sind die Entwickler in Russland sehr zielgerichtet, klug und genau. Ich möchte niemanden in Frankreich oder England beleidigen, aber da ist die Schwere eher in der Kommunikation zu finden, daher freue ich mich auf ernsthafte technische Gespräche mit seriösen Technikfreaks. Entwickler in Russland sind meiner Meinung nach sehr cool und ich würde gerne mit Ihnen persönlich und mit Ihrer Community sprechen.

    Und ich erwarte natürlich eine Erkältung in Moskau.

    - Was bist du, was für eine Erkältung, -10 oder -15 Grad Celsius, Unsinn.

    - Nur etwas? Dann werde ich in kurzen Hosen sein.

    - Und in Sonnenbrillen. Aber im Ernst, wir haben coole Dart- und Flutter-Communities - obwohl sie natürlich weit von der JavaScript-Community entfernt sind. Und in beiden Fällen bald bemerkbare Ereignisse: HolyJSfindet vom 24. bis 25. November statt und am 1. Dezember findet eine Konferenz zu Dart und Flutter statt.

    - Großartig. Zu diesem Zeitpunkt ist Flutter nicht mehr in der Betaphase.

    Obwohl im Fall von Flutter der Code auf Dart geschrieben ist, wird der Ari- Bericht über HolyJS für Menschen mit JavaScript-Erfahrung konzipiert: Eine vorläufige Bekanntschaft mit Dart ist nicht erforderlich. Und die Diskussionsbereiche auf der Konferenz bedeuten, dass nach dem Bericht die Möglichkeit besteht, alles zu besprechen, was Ari interessiert: Mindestens eine Frage zu Angular stellen, ihm zumindest ein Buch zur Unterschrift geben. Im Allgemeinen sehen wir uns vom 24. bis 25. November auf Holi !

    Jetzt auch beliebt: