
Vor ein paar Jahren gab es viele Blog-Posts mit dem Titel „Sehen Sie, was für eine interessante Kotlin-Sprache“, in denen die Grundlagen erläutert wurden. Im Jahr 2019 müssen Sie die Grundlagen nicht mehr kauen, aber jetzt wird eine Veröffentlichung in einem völlig anderen Format angezeigt. Marcin Moskala, der seit vielen Jahren Menschen diese Sprache beibringt, veröffentlicht jetzt das Buch „Effective Kotlin“ - also nicht nur „wie man Kotlin schreibt“, sondern „wie man Kotlin am besten schreibt“.
Und bald wird Marchin
mit einem Bericht auf Mobius zu uns kommen. Deshalb fragten wir ihn nach dem neuen Buch, dem Bericht, der Ausbildung der Kotlin-Leute und was in der Branche um diese Sprache herum passiert. Und über den Unterschied zwischen den Wörtern "effektiv" und "effizient".
- Bitte erzählen Sie uns zunächst etwas über sich. Was hast du gemacht, bevor du angefangen hast, Menschen zu erziehen und Kt zu erschaffen ? Akademie ?- Ich programmiere seit meiner Kindheit. Ich habe mit 10 Jahren mit Visual Basic angefangen, weil ich Spiele machen wollte. Später, während des Trainings, entdeckte ich Android für mich und widmete mich der Android-Entwicklung. In den folgenden Jahren arbeitete ich für Unternehmen wie Samsung, Warta und mBank (als Mitarbeiter von Apreel), Docplanner und Gamekit. Und entdeckte auch Kotlin und verliebte sich. Ich begann Präsentationen über ihn zu machen, Artikel und Bücher zu schreiben. Bald wandten sich Firmen an mich, um mich zu schulen, und so erschien Kt. Akademie.
- Haben Sie den JetBrains-Partnerstatus und was bedeutet das? Welche Anforderungen müssen Sie erfüllen? Chatten Sie oft mit JetBrains?- Die Hauptanforderung besteht darin, Kotlin gut zu kennen und Wissen darüber zu verbreiten. Es ist auch notwendig, dass eine Person zuverlässig ist, und es wird nicht überflüssig sein, wenn sie bekannt ist.
Ich halte Kontakt zu einigen Mitgliedern des Kotlin-Teams sowie zu den Evangelisten, bin mir aber nicht sicher, inwieweit dies mit dem Partnerstatus zusammenhängt. Meistens ist dieser Status eine Möglichkeit für JetBrains, zu melden, dass jemand eine bestimmte JetBrains-Technologie kennt, und Zertifikate von dieser Person sind wertvoll.
- Sie unterrichten Kotlin-Leute, so dass Sie von verschiedenen Leuten viele Rückmeldungen und Fragen dazu erhalten. Was sagen sie und was fragen sie am häufigsten?- Die Leute mögen ihn wirklich. Sie bemerken besonders seine Kürze und die Tatsache, dass sie es sehr leicht tun. Und ihre Funktionen auf oberster Ebene und implizite Empfänger in Lambda-Ausdrücken (implizite Empfänger) sind besorgt. Meiner Meinung nach gibt es kein Problem mit der ersten Option, aber was ist mit der zweiten ... Ich denke, die Leute übertreiben es und wir beginnen erst, das Ausmaß des Problems zu erkennen.
- Und gibt es einen gemeinsamen Fehler oder ein Antimuster im Kotlin-Code verschiedener Personen?- Ich denke, dies ist nur ein übermäßiger Wunsch, den Empfänger zu verstecken. Nun, Sie wissen, alle Arten von DSL innerhalb von DSL, gelten innerhalb gelten ... immer häufiger verwendet der Empfänger es verdeckt. Es ist großartig, wenn Sie Code schreiben, aber nicht, wenn Sie ihn lesen.
- Anfangs kamen alle nur von Java nach Kotlin. Müssen Sie jetzt Leute unterrichten, die Java überhaupt nicht kennen, aber Kotlin lernen möchten?- Ja, ich habe viele Entwickler in JavaScript und Swift geschult, ein Team von Rockern und sogar ein Team von Entwicklern in C, für die Kotlin ein großer Sprung war. Kotlin denkt auch viel über Pythonisten nach - ich hoffe, sie machen auch mit.
- Empfehlen Sie, 2019 Kotlin als Muttersprache zu lernen? Oder müssen sich Anfänger noch mit Java auseinandersetzen, damit es schwierig wird?- Wenn jemand sich mit Android-Entwicklung beschäftigen möchte, empfehle ich es auf jeden Fall. Wenn ich mehr Zeit hätte, würde ich ein Buch über die moderne Android-Entwicklung schreiben, das die Ursprünge überhaupt nicht berührte, aber sofort neue Ansätze vorschlug: Kotlin, AndroidX, Room, WorkManager, ConstraintLayout und MVVM mit ViewBinding (und bald Jetpack Compose) ) ... Wir können gut ohne Java, Support Library, DatabaseHelper, AlarmManager leben.
Das Backend ist komplizierter, aber es ist auch dort mit modernen Kotlin-Frameworks wie Ktor aufregend. Für Studenten kann dies auch eine interessante Option sein.
- Verschiedene Sprachen werden im Kontext des Lernens unterschiedlich bewertet: Python wird in dieser Hinsicht oft gelobt, Java wird manchmal kritisiert. Wie ist es, Kotlin im Vergleich zu Java zu unterrichten?- Einerseits ist es in Kotlin viel einfacher, etwas zu tun. Wenn Sie Kotlin unterrichten, hilft die Möglichkeit, viele Klassen und Funktionen in einer Datei zusammenzufassen, sehr.
Kotlin hingegen verfügt über mehr Funktionen als Java, sodass das Erlernen dieser Funktionen einige Zeit in Anspruch nimmt. Obwohl diese Redewendungen bis zu einem gewissen Grad immer noch sich wiederholende Muster aus Java verkörpern: Zum Beispiel Datenklassen, die für einen Anfänger in Java schwierig sind, und in Kotlin trivial ist es ausreichend, den Datenmodifikator hinzuzufügen. Ich würde sagen, dass das Lernen von Kotlin im Allgemeinen mehr Spaß macht.
- Manchmal wird Kotlin nur als „Sprache für Android“ wahrgenommen, hat aber in anderen Bereichen Ambitionen. Was sehen Sie aus Ihren Schulungen: die gesamte Nachfrage von mobilen Entwicklern nach ihnen oder gelten auch Backender?- Vor einem Jahr war fast jeder für Android-Entwickler. Und jetzt, glaube ich, ungefähr 50 bis 50. Das Interesse an den Kotlin Coroutines und Effective Kotlin Trainings wächst ebenfalls.
- Zur Frage von Effective Kotlin: Ihr neues Buch heißt dasselbe und Ihr Bericht über Mobius ist Efficient Kotlin. Bedeuten solche ähnlichen Namen, dass der neue Bericht eine kurze Nacherzählung der Thesen des gesamten Buches ist?- Die Wörter "effektiv" und "effizient" in der Programmierung haben sehr unterschiedliche Bedeutungen, wie "sicher" und "sicher". "Effektiv" bezieht sich allgemeiner auf die unterschiedlichsten Best Practices. Und bei „Efficient Kotlin“ geht es nur um Leistungs- und Speicheroptimierungen, der dritte Teil ist dem im Buch gewidmet. Für Mobius ist dies besser, da die Konferenz für erweiterte Berichte für erfahrene Entwickler bekannt ist. Und die Zeit des Berichts ist begrenzt, das ganze Buch kann dort nicht behandelt werden.
- Und sind die Prinzipien von "Effective Kotlin" und "Efficient Kotlin" für alle Entwickler geeignet, egal was sie auf Kotlin schreiben, oder gibt es dort irgendwelche Besonderheiten?- Jeder: nicht nur Android und das Backend, sondern auch diejenigen, die Kotlin / JS und Kotlin / Native verwenden.
- Der Name "Effective Kotlin" erinnert sofort an "Effective Java" von Joshua Bloch. Wie sieht dein Buch aus wie sie?- Es gibt viele Bücher im Format „Effective X“, und alle basieren auf demselben Prinzip: Zeigen Sie anhand konkreter Beispiele, wie Sie Code besser schreiben können. Ich wurde von Effective Java und anderen von Effective C #, Effective Python, Effective C und Effective JavaScript inspiriert. Es gibt jedoch keine strikte Bindung an eines dieser Bücher - alle diese Sprachen sind unterschiedlich, und bei ihnen sind unterschiedliche Ratschläge erforderlich. Wenn Sie sie alle lesen und dann Effective Kotlin lesen, können Sie jeden meiner Ratschläge mit den Ratschlägen aus anderen „effektiven“ Büchern verknüpfen. Und auch mit Tipps aus anderen einflussreichen Büchern wie Code Complete, Clean Code, Clean Archutecture, Struktur und Implementierung von Computerprogrammen und so weiter. Mein Ziel war es, die besten Tipps, die zu Kotlin passen, auf verständlichste Weise zu präsentieren.
- Es wurden bereits viele Bücher über Kotlin veröffentlicht, aber normalerweise hatten sie das Format „wie man etwas auf Kotlin macht“ und nicht „wie man es am effizientesten macht“. Denken Sie, dass die Community zuerst die Grundlagen von Kotlin brauchte, aber jetzt hat sie es gemeistert und möchte die Qualität verbessern?- Ja, ich denke, die Community ist so stark gewachsen, dass sie jetzt Best Practices benötigt. Laut der offiziellen Website gibt es weltweit bereits mehr als zwei Millionen Kotlin-Entwickler. Das ist sehr viel. Es gibt bereits viele Artikel und Antworten im Format „How to ...“ zu Stack Overflow, aber es gibt immer mehr Menschen, die Kotlin aufgrund von CTO verwenden mussten oder für die es die erste Sprache wurde. Jetzt ist das Setzen von Standards von entscheidender Bedeutung, da Kotlin viel zulässt. Wenn wir die Leute nicht davon abhalten, verrückte Dinge zu tun, werden sie es möglicherweise lieben und anfangen, es als verwirrend und unlesbar zu betrachten.
- Best Practices sind immer ein umstrittenes Thema. Die Meinungen der Menschen zu „Was ist das Beste?“ Sind unterschiedlich. Gibt es Diskussionen in Ihren Schulungen oder Berichten?- Ja, und diese Diskussionen haben mich dazu inspiriert, Effective Kotlin zu schreiben. Wie gesagt, die Leute interessieren sich oft für einige Funktionen. Normalerweise höre ich zu und lasse sie sprechen. Infolgedessen ist es immer möglich, Schlussfolgerungen über die Vor- und Nachteile des Features zu ziehen, und dann entscheiden die Teams, wie sie damit umgehen sollen.
"Sie veröffentlichen das zweite Buch." Wie sieht die Bearbeitung aus? Wie entscheiden Sie beispielsweise, wer es veröffentlichen wird?- Das erste, das ich im Pakt veröffentlicht habe. Ich war mit der Zusammenarbeit nicht ganz zufrieden und habe mich daher entschlossen, Effective Kotlin mit LeanPub selbst zu veröffentlichen. Bisher ist die Erfahrung ausgezeichnet. Ich habe ausgezeichnete freiwillige Rezensenten, einen guten Designer und eine nette Typografie. Probleme traten nur mit dem Konto bei Amazon auf, aber ich hoffe, ich habe Zeit, mich damit zu befassen, bevor die endgültige Version des Buches veröffentlicht wird.
- Raten Sie Entwicklern, Bücher zu schreiben? Wie nützlich ist das für den Entwickler?"Wenn Sie zum Buch kommen, müssen Sie wissen, dass es mit ziemlicher Sicherheit länger dauern wird, als Sie erwarten." Schätzen Sie 1-2 Stunden pro Seite. Und wenn Sie Entwickler sind, ist es unwahrscheinlich, dass das Buch Ihnen mehr Geld bringt, als wenn Sie diese Zeit mit Programmieren verbracht hätten. Auf der anderen Seite werden Sie viel lernen. Um sicher zu schreiben, müssen Sie das Thema sorgfältig studieren und jedes Argument wirklich verstehen. Und das ist eine einzigartige Erfahrung.
- Und die letzte Frage: Wenn Sie eines in Kotlin ändern könnten, welches wäre es?- Ich denke, ich würde Unit loswerden. Er ist ein bisschen nervig. Besonders bei der Interaktion mit einigen anderen Sprachen.
Erinnern Sie sich abschließend an die Links zu dem, was im Text erwähnt wird. Das Buch "Effective Kotlin" wird auf Leanpub veröffentlicht , und die Beschreibung von Marcins neuem Bericht, mit dem er im Dezember bei Mobius eintreffen wird, wird auf der Konferenzwebsite veröffentlicht (und Sie können dort auch das vollständige Programm sehen ).