Bitte begrüßen Sie unseren wöchentlichen Sponsor Pusher bei Hacker Noon! Pusher erstellt Echtzeit-APIs, mit denen Entwickler auf der ganzen Welt ihren Apps schnell Kommunikations- und Zusammenarbeitsfunktionen hinzufügen können. Mit ihrem Kernprodukt können Entwickler ganz einfach Funktionen wie In-App-Benachrichtigungen, Aktivitätsstreams, Echtzeit-Dashboards, Live-Tracker und vieles mehr erstellen.
Heute treffen wir uns mit dem Pusher Developer Evangelist Zan Markan , um über den Stand von Kotlin zu sprechen, darüber, was ihn zu dem antreibt, was er tut, und was einen Space Cowboy zu einem Space Cowboy macht.
David : Beginnen wir mit dem Stand von Kotlin . Sie haben kürzlich eine Kotlin-Umfrage durchgeführt (weitere Einzelheiten finden Sie hier ). Von Januar bis März 2018 haben Sie 2.744 Personen befragt, um den Puls des Ökosystems zu fühlen. Welche Ergebnisse widersprachen Ihren Annahmen? Welche Ergebnisse bestätigten Ihre Annahmen? Und was ist das Fazit zu den aktuellen Entwicklungen bei Kotlin?
zan : Das stimmt. Wir bemerkten, dass immer mehr Entwickler Kotlin verwenden, wenn sie Anwendungen mit unseren Produkten erstellen. Deshalb beschlossen wir, tiefer zu graben und herauszufinden, was sie motiviert. Ich habe ein paar überraschende Dinge herausgefunden.
Zunächst einmal war ich wirklich überrascht von der Begeisterung, die Studenten und jüngere Entwickler für Kotlin zeigen. Ich hatte einen größeren Unterschied zwischen erfahreneren und weniger erfahrenen Entwicklern erwartet, aber die neuen Leute sind wirklich begeistert von Kotlin, seit Google die Community unterstützt.
Eine weitere Sache, die mich überrascht hat, war, wie viele Leute daran interessiert sind, die Funktionen auszuprobieren, die vom Kotlin-Team als experimentell bezeichnet werden, nämlich Coroutinen und Unterstützung für Multiplattformprojekte – jeweils etwa 25–30 %.
Die Ergebnisse der Umfrage bestätigten mehr oder weniger meine Vermutungen darüber, wie groß Android ist – laut unseren Umfragedaten liegt es bei etwa 80 %. Einige andere Umfragen, die ich gesehen habe, zeigen etwas weniger Android, aber immer noch bequem über der 75-Prozent-Marke. Ein Teil dieses Unterschieds könnte darauf zurückzuführen sein, dass mein Netzwerk hauptsächlich auf Android ausgerichtet ist, aber der Effekt war nicht ganz so groß.
Eine Erkenntnis ist, dass Kotlin eine spannende Sprache ist, die Entwickler glücklich macht.
Das ist ziemlich selten (zumindest für so etwas wie eine Mainstream-Programmiersprache) und hat dazu geführt, dass sich rund um das gesamte Kotlin-Ökosystem eine lebendige und enthusiastische Community gebildet hat.
Kotlin wird hauptsächlich von einem JetBrains-Programmiererteam mit Sitz in Sankt Petersburg, Russland, entwickelt. Was können Sie uns sonst noch über die Gründung erzählen? Und wann haben Sie Kotlin zum ersten Mal verwendet?
Meines Wissens nach bestand Kotlins Geschichte darin, dass JetBrains ein „besseres Java“ für seine Entwicklertools wollte. Interoperabilität und verbesserte Produktivität waren einige ihrer Hauptziele, und keine andere JVM-basierte Sprache erfüllte damals wirklich diese Anforderungen – Scala erfüllte die meisten Anforderungen, aber die Tools waren einfach nicht vorhanden und die Build-Zeiten waren für die Entwicklungsanforderungen von JetBrains viel zu langsam.
Genau diese Idee eines hochgradig interoperablen und besseren Java war der Grund, warum dies so viele Android-Entwickler anzog (mich eingeschlossen, da ich seit den Anfangstagen mit Android arbeite).
Vor ein paar Jahren war das Android-Ökosystem größtenteils auf eine alte Version von Java angewiesen – ein seltsamer Hybrid aus Java 7 und Java 6, der keine schönen Funktionen wie Lambdas hatte und ziemlich wortreich war. Also begannen die Leute, mit dieser neuen Sache zu spielen, die gut interoperabel schien und eine höhere Produktivität ermöglichte (vor allem, wenn nicht alles kaputt ging 😅).
Das hat mich auch dazu gebracht – ich habe 2014 zum ersten Mal davon gehört und dann die Entwicklung von Kotlin aufmerksam verfolgt – entweder indem ich in meiner Freizeit damit spielte oder es für schnelle Prototypen verwendete. Ich habe den ersten Produktions-Kotlin-Code geschrieben, als ich an den Pusher Chatkit- und Feeds- Produkten arbeitete.
Warum ist Kotlin Ihrer Meinung nach auf weniger erfahrene Entwickler zugeschnitten? Und was verhindert, dass es zu einer Modeerscheinung wird?
Ha! Ich denke nicht, dass es sich per se an weniger erfahrene Entwickler richtet. Tatsächlich sehe ich hier eine ziemlich ähnliche Gruppierung wie bei den Ergebnissen der StackOverflow-Umfrage. Es ist also nichts Unerwartetes, was die Entwicklung der Branche angeht.
Wir haben auch festgestellt, dass es zunächst hauptsächlich von erfahrenen (angestellten) Entwicklern aufgegriffen wurde und erst seit Kurzem auch von Studenten und jüngeren Entwicklern angenommen wird.
Ich halte Kotlin für eine Sprache, die man sich schnell aneignen kann. Es gibt hervorragende Tools, mit denen wir produktiv sein können, auch ohne die meisten Kenntnisse zu haben. Kotlin ist mit Java kompatibel, sodass Sie jede Portierung oder Migration in Ihrem eigenen Tempo durchführen können. Und schließlich leisten sowohl Google als auch JetBrains großartige Arbeit bei der Erstellung von Dokumentationen und Ressourcen zur Unterstützung von Kotlin.
Was unterschied Kotlin Ihrer Meinung nach von anderen Programmiersprachen und war der Grund für seine schnelle Verbreitung? Und allgemeiner: Was unterscheidet Ihrer Meinung nach Programmiersprachen, die sich durchsetzen, von Programmiersprachen, die sich nur schwer durchsetzen?
Die Unterstützung von Google und JetBrains hat definitiv geholfen. Andererseits hat Google erst NACH dem massiven Vorstoß der Entwickler-Community beschlossen, Kotlin in Android offiziell zu unterstützen, sodass es auch von der anderen Seite bereits erheblichen Druck gab.
Ich denke tatsächlich, dass es eine Sprache ist, die zur richtigen Zeit in der richtigen Community aufgetaucht ist – in der Android-Community, als sie reifer wurde und die Leute neue Tools wollten, um immer produktiver zu werden. Kotlin war einfach da, sicher hatte es seine Mängel, aber es war da und gut genug, damit die Leute es richtig machen konnten.
Wie wird Kotlin Ihrer Meinung nach in den nächsten etwa fünf Jahren wirksam mit bestehenden Sprachen und Architekturen konkurrieren und diese ergänzen?
Wenn wir mit dem Offensichtlichen beginnen, dann ist Java ziemlich einfach und Kotlin ergänzt es bereits gut. Ich glaube, wir werden definitiv mehr davon sehen, insbesondere wenn sich die Tools konsolidieren und ein paar „Goldstandard“-Tools entstehen. Eines dieser Tools ist Arrow, ein funktionales Programmier-Toolkit für Kotlin, das aus der Zusammenarbeit von Funktionale- und Kategory-Teams entstand, um etwas Besseres, Vollständigeres zu schaffen. Ich denke, das wird der Trend sein.
Was andere Programmiersprachen betrifft, werden wir auf der JVM sehen, was mit Scala und anderen passiert. Außerhalb der JVM-Welt ist es für Aussagen noch zu früh, aber ich habe einige vielversprechende Ideen zu Kotlin/Native und Kotlin für plattformübergreifende Projekte gesehen. Beide sind noch sehr experimentell, aber es gibt einige Proofs of Concept, die funktionieren und ziemlich spannend sind.
Als Alberto Ballanos „ Kotlin Functors, Applicatives, And Monads in Pictures “ es auf Hacker News schaffte, löste es eine interessante Diskussion aus … Wofür ist Kotlin Ihrer Meinung nach eine Einstiegsdroge?
Das klingt schändlich! Es ist eine Einstiegsdroge in moderne Programmiersprachen – Sprachen, die uns produktiv und glücklich machen. Es wird definitiv viele Leute mit funktionaler Programmierung vertraut machen – insbesondere mit Dingen wie Arrow, und es könnte einigen Leuten den Einstieg in anspruchsvollere FP-Sprachen erleichtern.
Darüber hinaus könnte es viele Android-Entwickler dazu anspornen, sich mit der plattformübergreifenden Unterstützung in die Web- oder native Entwicklung zu wagen. Und da immer mehr Entwickler Kotlin als ihre erste Programmiersprache wählen, werden sie es unweigerlich als Maßstab für alle anderen Sprachen betrachten, und das ist auch ziemlich aufregend.
In der Linguistik dauert es sehr lange, bis eine Sprache wie Englisch oder Spanisch angenommen wird. Und es gibt viele Dialekte, aber die Verwendung einer völlig neuen gesprochenen Sprache ist viel weniger verbreitet als die Verwendung neuer Softwaresprachen. Glauben Sie, dass wir einen Reifepunkt in der Branche erreichen werden, an dem die Rate neuer Softwaresprachen zurückgeht? Oder werden weiterhin weitere neue Softwaresprachen entstehen?
Wir haben bereits erlebt, dass eine Reihe hervorragender Programmiersprachen in den letzten Jahren schnell an Popularität gewonnen haben – Swift, Go, TypeScript und Rust fallen mir da ein. Jede von ihnen wird von einer (oder mehreren) großen Entwicklungsorganisationen mit beträchtlichen Ressourcen und bestehenden Entwickler-Communitys unterstützt.
Jeder von ihnen hat auch ein bestimmtes Anliegen seiner Organisation angesprochen, und wenn dieses Anliegen von vielen anderen Entwicklern geteilt wird, wird es angenommen und eine Sprache wird populär, wodurch sie eine „kritische Masse“ erreichen kann. Das ist mit jeder der von mir erwähnten Sprachen passiert – Go zum Beispiel entstand, als Google gute Parallelität wollte, und eines der Ziele von Rust war, dass es nie abstürzt.
Was die Zukunft betrifft, denke ich, dass es definitiv neue Computerparadigmen geben wird, neue Ideen entwickelt werden (wer weiß, vielleicht wird Blockchain eines Tages tatsächlich Realität ) – die mit unseren vorhandenen Werkzeugen nicht besonders nützlich sein werden. Weitere Beispiele sind Quantencomputing oder künstliche Intelligenz.
Obwohl die meisten Sprachen heutzutage behaupten, universell einsetzbar zu sein, bedeutet das noch lange nicht, dass sie für jeden Zweck gleichermaßen geeignet sind. Wir werden neue Einsatzzwecke sehen, die neue Sprachen erfordern werden.
Reden wir über Zan als Person. Die ersten beiden Wörter der Biografie auf Ihrer persönlichen Website lauten „Space Cowboy“. Nennen Sie manche Leute den Gangster der Liebe? Nennen Sie andere Leute Maurice? Verkörpern Sie den Pompatus der Liebe?
Ha, ich liebe dieses Lied! Vielleicht ein Gangster der Liebe, denn ich glaube, niemand hat es geschafft, Zan falsch als Maurice zu schreiben, nicht einmal die Starbucks-Mitarbeiter. Ich liebe auch Raketen und trauere immer noch um Firefly, also ist das auch so eine Art Space-Cowboy-Thema.
Die eigentliche Geschichte hinter diesem „Titel“ ist, dass ich vor ein paar Jahren, als ich noch ein Startup leitete, das ich mit ein paar Freunden von der Uni gegründet hatte, etwas seriöser wirkte, wenn wir Fremde um Geld baten (also eine Investition einsammelten), ließen wir für jeden von uns eine Visitenkarte anfertigen.
Ich halte nicht viel von Titeln, insbesondere von C-Titeln, wenn jeder so ziemlich alles macht, also habe ich mich einfach für den anderen Weg entschieden und Space Cowboy gewählt, was so ziemlich (un)genau ist wie alles andere. Zumindest dachte ich, es wäre ein guter Gesprächsstarter.
Die Tatsache, dass Sie danach gefragt haben, beweist, wie gut es sich tatsächlich als Gesprächsauftakt eignet.
Man sagt, Sie mögen IPAs im West Coast-Stil. Ich bin jetzt in Colorado und vermisse Laguinatis. Welche sind Ihre 3/5 besten West Coast-IPAs?
Ich mag sie heftig stark und unbarmherzig hopfig.
Wenn ich die Westküste besuche, trinke ich immer ein Pliny the Elder von Russian River und natürlich Stone IPA – beide natürlich vom Fass. Wenn ich näher bei mir zu Hause bin, wähle ich Jack Hammer von Brewdog.
Was macht einen guten Entwickler-Evangelisten aus? Wie sind Sie in Ihrem Job besser geworden? Was macht die Pusher-Technologie so evangelisierungswürdig?
Das Wichtigste für einen Dev-Evangelist (jede Person, die sich generell mit Entwicklerbeziehungen beschäftigt) ist eine echte Leidenschaft für das Lehren und Teilen von Wissen. Tatsächlich ist es wahrscheinlich sogar noch wichtiger, authentisch zu sein. Punkt. Entwickler sind natürliche Erkennungser von Blödsinn und hassen es, wenn man ihnen etwas aufschwatzen will.
Es ist auch ein tolles Gefühl, wenn Sie wissen, dass Sie jemandem geholfen haben, ein besserer Entwickler zu werden.
Eines der ersten Dinge, die ich verbessern musste, ist mein Zeitmanagement. Da ich aus der Entwicklerbranche komme, ist es viel üblicher, großen Zeitblock für bestimmte Aufgaben zu haben. Mein aktueller Job ist viel dynamischer und als ich diese Veränderung oder Anpassung zunächst nicht erwartet hatte, war es ziemlich überwältigend. Paul Grahams hervorragender Essay über die Zeitpläne von Machern und Managern hat mir sehr geholfen.
Eine weitere nützliche Fähigkeit, die ich mir angeeignet habe, ist das Projektmanagement. Bei „State of Kotlin“ beispielsweise drehte sich der Großteil meiner Arbeit zunächst um das Einrichten der Umfrage und das Erstellen der Inhalte. Dann ging es in Richtung klassischeres Projektmanagement, etwa die Koordination mit anderen beteiligten Teams, etwa Design und Entwicklung (die haben diese Arbeit gemacht, nicht ich, nochmals vielen Dank – Sie wissen, wer Sie sind), und schließlich die Verbreitung der Information in verschiedenen Veröffentlichungen und das Geben von Interviews im Internet.
Die Technologie von Pusher ist für ihre schnelle Integration bekannt und dafür, dass sie „einfach funktioniert“.
Daher ist es ein Kinderspiel, davon zu überzeugen. Auf einer Konferenz zur Mobilentwicklung kamen sogar schon Leute zu mir und erzählten mir, dass ihre Kollegen im Webteam, die Pusher verwenden, ihnen gesagt hätten, sie sollten mir erzählen, wie toll unser Channels-Produkt ist – das war aufregend 😁
Alles in allem: Welchen Platz nimmt Kotlin in der Verwirklichung der langfristigen Vision von Pusher ein?
Wir haben bereits auf Kotlin als primäre Entwicklungssprache für unsere Android-SDKs gesetzt. Wir haben mit den SDKs für die neuen Produkte – Beams , Chatkit und Feeds – begonnen und sind damit derzeit recht zufrieden.
Wir glauben auch, dass Kotlin eine der spannendsten und engagiertesten Communities hat, und das ist auch einer der Gründe, warum wir uns entschieden haben, die State of Kotlin-Umfrage und den dazugehörigen Bericht zu erstellen. Wir hoffen natürlich, dass Kotlin Entwickler weiterhin glücklich und produktiv macht und dass der State of Kotlin dazu beiträgt, seine Verbreitung weiter voranzutreiben!
Pusher , unser wöchentlicher Sponsor, erstellt APIs für die Kommunikation und Zusammenarbeit, die Apps auf der ganzen Welt unterstützen. Unterstützt werden sie durch einfach zu integrierende SDKs für das Web, Mobilgeräte und die gängigsten Backend-Stacks. Jetzt starten.