Neue Programmiersprache Android. Was ist Kotlin und was beinhaltet es: ein Tutorial und ein Vergleich der neuen Android-Entwicklungssprache mit Java. Visueller Schnittstelleneditor

In diesem Artikel geht es um die Programmiersprache Kotlin. Sie erfahren mehr über die Gründe für die Entstehung des Projekts, die Fähigkeiten der Sprache und sehen mehrere Beispiele. Der Artikel wurde in erster Linie mit der Erwartung geschrieben, dass der Leser mit der Programmiersprache Java vertraut ist, sich aber auch wer eine andere Sprache beherrscht, in die Materie einarbeiten kann. Der Artikel ist oberflächlich und geht nicht auf Probleme im Zusammenhang mit der Kompilierung in Javascript ein. Die vollständige Dokumentation finden Sie auf der offiziellen Website des Projekts, ich werde jedoch versuchen, kurz auf die Sprache einzugehen.

Über das Projekt

Vor nicht allzu langer Zeit kündigte JetBrains, ein Unternehmen, das Entwicklungsumgebungen erstellt, sein neues Produkt an – die Programmiersprache Kotlin. Eine Welle der Kritik traf das Unternehmen: Kritiker schlugen vor, dass das Unternehmen zur Besinnung kommt und das Plugin für Scala fertigstellt, anstatt eine eigene Sprache zu entwickeln. Den Scala-Entwicklern mangelt es wirklich an einer guten Entwicklungsumgebung, aber die Probleme der Plugin-Entwickler sind verständlich: Scala, das dank Forschern aus der Schweiz geboren wurde, hat viele innovative wissenschaftliche Konzepte und Ansätze integriert, was die Erstellung eines guten Entwicklungstools zu einer äußerst schwierigen Aufgabe gemacht hat . Derzeit ist das Segment moderner statisch typisierter Sprachen für die JVM klein, daher erscheint die Entscheidung, eine eigene Sprache zusammen mit einer Entwicklungsumgebung dafür zu erstellen, sehr weitsichtig. Auch wenn diese Sprache in der Community überhaupt keine Wurzeln schlägt, stellt JetBrains sie in erster Linie für ihre Bedürfnisse her. Jeder Java-Programmierer kann diese Bedürfnisse verstehen: Java als Sprache entwickelt sich sehr langsam, neue Funktionen tauchen nicht in der Sprache auf (wir warten bereits seit mehreren Jahren auf Funktionen erster Ordnung), die Kompatibilität mit älteren Versionen der Sprache macht es möglich Es ist unmöglich, dass viele nützliche Dinge in naher Zukunft erscheinen (z. B. eine anständige Typparametrisierung). Für ein Unternehmen, das Software entwickelt, ist die Programmiersprache das wichtigste Arbeitswerkzeug. Daher sind die Effizienz und Einfachheit der Sprache Indikatoren, von denen nicht nur die Einfachheit der Entwicklung von Werkzeugen dafür abhängt, sondern auch die Codierungskosten des Programmierers, d. h. wie einfach sie sein wird sein, diesen Code zu pflegen und zu verstehen.

Über die Sprache

Die Sprache ist statisch typisiert. Aber im Vergleich zu Java fügt der Kotlin-Compiler dem Typ Informationen darüber hinzu, ob die Referenz Null enthalten kann, was die Typprüfung verschärft und die Ausführung sicherer macht:

Spaß foo(text:String) ( println(text.toLowerCase()) // NPE? Nein! ) val str:String? = null // String? -- nullbarer Typ foo(str) //<- компилятор не пропустит такой вызов -- // тип str должен быть String, чтобы // передать его в foo

Obwohl dieser Ansatz dem Programmierer eine Reihe von Problemen im Zusammenhang mit NPE ersparen kann, erscheint er für einen Java-Programmierer zunächst unnötig – Sie müssen unnötige Überprüfungen oder Konvertierungen durchführen. Aber nachdem Sie einige Zeit in Kotlin programmiert und zu Java zurückgekehrt sind, haben Sie das Gefühl, dass Ihnen diese Informationen über den Typ fehlen, und denken darüber nach, Nullable/NotNull-Annotationen zu verwenden. Damit verbunden sind Probleme der Abwärtskompatibilität mit Java – diese Informationen sind nicht im Java-Bytecode enthalten, aber meines Wissens wird dieses Problem noch gelöst, und im Moment sind alle aus Java stammenden Typen nullbar.

Übrigens zur Abwärtskompatibilität: Kotlin wird in JVM-Bytecode kompiliert (die Ersteller der Sprache geben sich große Mühe, die Kompatibilität aufrechtzuerhalten), was die Verwendung im selben Projekt mit Java und die Möglichkeit der gegenseitigen Verwendung von Java ermöglicht und Kotlin-Klassen bilden die Schwelle für die Einführung von Kotlin in ein großes bestehendes, sehr minimales Java-Projekt. In diesem Zusammenhang ist die Möglichkeit wichtig, mehrere Java-Entwicklungen zu nutzen, indem ein Projekt vollständig in Kotlin erstellt wird. Zum Beispiel war es für mich fast einfach, ein kleines Projekt auf Basis von spring-webmvc zu erstellen.

Schauen wir uns das Controller-Fragment an:

Path(array("/notes/")) Controller-Klasse NotesController ( privater automatisch verdrahteter Wert NotesService: NotesService? = null path(array("all")) fun all() = render("notes/notes") ( addObject(" Notes", NotesService!!.all) ) //... )

Die Besonderheiten der Verwendung von Annotationen in Kotlin sind sichtbar: An manchen Stellen sieht es nicht so ordentlich aus wie in Java (dies gilt für Sonderfälle, zum Beispiel ein Array aus einem Element), aber Annotationen können als „hausgemachte“ Schlüsselwörter verwendet werden, z als Autowired oder Controller (wenn Sie beim Importieren einen Aliastyp angeben) und in Bezug auf die Fähigkeiten ähneln Annotationen eher echten Klassen.

Es sollte beachtet werden, dass Spring nicht in der Lage war, Kotlin-Klassen zur Verwaltung von Transaktionen zu verpacken – ich hoffe, dass dies in Zukunft möglich sein wird.

Die Sprache unterstützt erstklassige Funktionen. Das bedeutet, dass eine Funktion ein in die Sprache eingebauter Typ ist, für den es eine spezielle Syntax gibt. Funktionen können lokal erstellt, als Parameter an andere Funktionen übergeben und Verweise darauf gespeichert werden:

Fun doSomething(thing:()->Unit) ( // einen Parameter vom Typ Funktion deklarieren // ()->Unit akzeptiert nichts und // gibt nichts Wichtiges zurück thing() // call ) doSomething() ( // und hier erstellen wir spontan eine Funktion vom Typ // ()->Unit und übergeben sie an die doShomething-Funktion // wenn die Funktion der letzte Parameter ist, können Sie // sie außerhalb der Aufrufklammern verschieben println("Hallo Welt") )

Wenn wir dieser Erweiterung Funktionen hinzufügen, die es uns ermöglichen, eine bereits vorhandene Klasse mit einer Methode zu erweitern, die die Kapselung der Klasse nicht verletzt, auf die aber als Methoden dieser Klasse zugegriffen werden kann, erhalten wir einen ziemlich leistungsfähigen Mechanismus zum Erweitern Standard-Java-Bibliotheken, die hinsichtlich der Benutzerfreundlichkeit recht dürftig sind. Fügen wir traditionell die Möglichkeit hinzu, die Liste zu filtern, die bereits in der Standardbibliothek vorhanden ist:

Spaß Liste .filter(condition:(T)->Boolean):List ( val result = list () for(item in this) ( if(condition(item)) result.add(item) ) return result ) val someList = list(1, 2, 3, 4).filter ( it > 2 ) // someList= =

Bitte beachten Sie, dass für Variablen keine Typen angegeben sind – der Kotlin-Compiler leitet sie nach Möglichkeit ab und beeinträchtigt nicht die Verständlichkeit der Schnittstelle. Im Allgemeinen ist die Sprache so konzipiert, dass die Person an der Tastatur möglichst keine unnötigen Zeichen eingeben muss: eine kurze, aber klare Syntax mit einem Minimum an Schlüsselwörtern, keine Notwendigkeit von Semikolons zur Trennung von Ausdrücken, Typrückschluss, wo angemessen, kein neues Schlüsselwort zum Erstellen einer Klasse – nur das, was notwendig ist.

Um das Thema Klassen und Kürze zu veranschaulichen, schauen wir uns den folgenden Code an:

// Das Erstellen von Bean-Klassen wird // lakonisch, Felder können // direkt in der Konstruktor-Deklaration deklariert werden. Klasse TimeLord(Wertname:String) // Die Klasse darf überhaupt keinen Körper haben. Klasse TARDIS(Wertbesitzer:TimeLord) Fun Main (Argumente:Array ) ( val doctor = TimeLord("Doctor") val tardis = TARDIS(doctor) println(tardis.owner.name) )

In wenigen Zeilen konnten wir zwei Klassen deklarieren, zwei Objekte erstellen und den Namen des TARDIS-Besitzers ausgeben! Sie können feststellen, dass die Klasse mit den Parametern ihres einzig möglichen Konstruktors deklariert wird, die auch die Deklaration ihrer Eigenschaften darstellen. Extrem kurz, aber informativ. Sicherlich wird es diejenigen geben, die die Unmöglichkeit, mehr als einen Konstruktor zu deklarieren, verurteilen, aber mir scheint, dass dies seinen eigenen Pragmatismus hat – schließlich ermöglichen mehrere Konstruktoren in Java die Deklaration von Standardparametern, die Kotlin in der Sprache unterstützt Ebene oder konvertieren Sie einen Typ in einen anderen, mit dem diese Klasse funktioniert, und dies kann bereits sicher der Factory-Methode überlassen werden. Achten Sie auf die Deklaration von „Variablen“ und Feldern. Kotlin zwingt uns, eine Wahl zu treffen: val oder var . Wobei val eine unveränderliche Endreferenz und var eine Variable deklariert, was dazu beiträgt, die weit verbreitete Verwendung veränderlicher Referenzen zu vermeiden.

Beispiel

Jetzt sind wir an dem Punkt angelangt, an dem wir etwas Interessanteres tun können. In Vorstellungsgesprächen gebe ich oft die Aufgabe, einen Baum zu implementieren, ihn zu durchlaufen und eine Aktion mit einem Element festzulegen. Mal sehen, wie dies in Kotlin implementiert wird.

Ich möchte, dass die Verwendung so aussieht:

Fun main(args: Array ) ( // einen kleinen Baum erstellen val tree= tree("root") ( node("1-1") ( node("2-1") node("2-2") ) node("1-2 " ) ( node("2-3") ) ) // Durchlaufe es und gebe die Werte auf der Konsole aus. tree.traverse ( println(it) ) )

Versuchen wir nun, dies umzusetzen. Erstellen wir eine Baumknotenklasse:

/** * @param value node data */ class Node (Wertwert:T) ( // Knotenkinder privater Wert Kinder:Liste > = arrayList() /** * Methode, die ein untergeordnetes Element erstellt und zu einem Knoten hinzufügt * @param value der Wert für den neuen Knoten * @param init-Funktion zum Initialisieren des neuen Knotens, optional * Parameter */ fun node(value: T, init:Node .()->Unit = ()):Knoten ( val node = Node (Wert) node.init() children.add(node) return node ) /** * Die Methode durchläuft rekursiv alle untergeordneten Knoten, beginnend mit dem * Knoten selbst. Jeder Knoten wird über einen Handler * @param handler-Funktionshandler für den benachrichtigt Wert jedes Knotens */ fun traverse(handler:(T)->Unit) ( handler(value) children.forEach ( child -> child.traverse(handler) ) ) )

Fügen wir nun eine Funktion hinzu, um die Spitze des Baums zu erstellen:

/** * Erstellt einen Baumknoten mit dem Wert value und initialisiert * seine untergeordneten Knoten mit der Init-Methode. */ Spaß Baum(Wert:T, init:Node .()->Einheit): Knoten

( val node = Node(value) // Rufen Sie die im // Parameter übergebene Init-Methode auf dem Knotenobjekt auf. node.init() return node )

An zwei Stellen im Code wurde eine Konstruktion wie Node.()->Unit verwendet, die bedeutet, dass als Eingabe ein Funktionstyp erwartet wird, der als Methode eines Objekts vom Typ Node ausgeführt wird. Vom Hauptteil dieser Funktion aus besteht Zugriff auf andere Methoden dieses Objekts, beispielsweise auf die Methode Node.node(), mit der Sie eine Bauminitialisierung ähnlich der im Beispiel beschriebenen durchführen können.

Statt einer Schlussfolgerung

Wenn Sie sich für die Sprache interessieren, finden Sie alle Informationen zur Sprache auf der offiziellen Website des Projekts, ihre Quellen finden Sie auf Github und alle gefundenen Fehler können im Issue Tracker veröffentlicht werden. Es gibt immer noch viele Probleme, aber Sprachentwickler bekämpfen sie aktiv. Jetzt arbeitet das Team an der noch nicht sehr stabilen Version von Meilenstein 3, nach der Stabilisierung ist meines Wissens nach die Verwendung der Sprache innerhalb der Firma JetBrains geplant, danach ist bereits die erste Veröffentlichung geplant.

Tags: Tags hinzufügen

2017 gab es einen neuen Hype um YP (Programmiersprache) Kotlin, und vor diesem Hintergrund möchte ich Ihnen auch über weitere Neuerungen bei der Entwicklung von Programmen für Smartphones auf Basis des Android-Betriebssystems berichten. Aber dies ist mein persönlicher Blog und keine akademische Ressource, und deshalb werde ich mir zunächst einige lyrische Exkurse erlauben und meinen Blick auf die Vergangenheit richten.

Historischer Ausflug

Meine erste Bekanntschaft mit der Programmierung von Smartphones mit dem Android-Betriebssystem war Anfang 2012, also vor genau 6 Jahren. In jenen fernen Zeiten hatte Google seine großartige IDE noch nicht erstellt (Integrierte Entwicklungsumgebung, Integrierte Entwicklungsumgebung) Android Studio und ich sind in der Eclipse-IDE mit installiertem ADT-Plugin (Android-Entwicklungstools, Android-Entwicklertools). Der Grund für unsere Bekanntschaft war der Kauf meines ersten Smartphones, HTC Desire HD, weniger als ein Jahr zuvor, im Frühsommer 2011.

Java galt als native Programmiersprache für Android. Für mich war es eine neue Sprache, also stand ich vor einer dreifachen Herausforderung: eine neue IDE, eine neue Sprache und ein neues Betriebssystem (Betriebssystem), und das alles gleichzeitig. Trotzdem habe ich irgendwie gelernt, Programme für Android zu schreiben, und sogar ein kommerzielles Produkt geschrieben, für das ich gerne eine Belohnung von 1000 € erhalten habe.

Allerdings war die Programmierung für Android äußerst umständlich, was ich sogar regelmäßig erwähne. Hier liegt die Unvollkommenheit der IDE und die Unterentwicklung der Standardbibliotheken in Richtung Android, und zwar sowie die Störungen von all dem separat.

Ein weiteres Jahr später Anfang 2013 Ich habe sogar angefangen, einen speziellen Blog mit dem Titel „Android, Tricks mit deinen Ohren“ zu schreiben, mit dem charakteristischen Epigraph „ Die Igel weinten, spritzten sich, nagten aber weiter am Kaktus...", in dem ich regelmäßig Lösungen für bestimmte Probleme veröffentlichte, auf die ich gestoßen bin, und auch einige zusätzliche Hintergrundinformationen veröffentlichte, als ob ich mich an mein Gedächtnis erinnern würde.

Im Jahr 2014 Die erste stabile Version der IDE von Google selbst ist erschienen (allerdings basierend auf der IntelliJ IDEA IDE, geschrieben in der legal tschechischen Firma JetBrains, gegründet in Prag von drei russischen Programmierern).

Im Allgemeinen begann alles mit dem russischen Unternehmen StarSoft, das seine Tätigkeit unmittelbar nach dem Putsch im August 1991 auf der Grundlage des Softwarelabors der Unabhängigen Humanitären Akademie in St. Petersburg aufnahm und damals aus drei Personen bestand. 1993 begann die Arbeit am Together-Projekt (Software-Design-Tool), dessen Idee von einem aus Deutschland stammenden Deutschen vorgeschlagen wurde. 1995 wurde das Unternehmen in STAR SPb umbenannt und offiziell als russische Repräsentanz der STAR Group registriert. 1999 wurde aus STAR SPb das „russisch-deutsche“ Unternehmen TogetherSoft, bestehend aus Spezialisten, die am Together-Produkt gearbeitet haben, ausgegliedert. Zu den Mitbegründern gehörten wie immer Amerikaner, die beschlossen, dass gute Programmierer dringend von St. Petersburg nach Europa gebracht werden mussten, und im selben Jahr 1999 das Spitzenteam von TogetherSoft (ca. 50 Personen) ging nach Prag. Unter ihnen waren die drei zukünftigen Gründer von JetBrains. Und so gründeten sie im Jahr 2000 die Firma JetBrains und registrierten sich am selben Ort, an dem sie damals lebten, in Prag.

Das Flaggschiffprodukt von JetBrains ist IntelliJ IDEA, eine IDE für viele Programmiersprachen. Google hat es als Grundlage für seine IDE Android Studio genommen. Der Mitbegründer von Google stammt übrigens auch aus Russland. Wenn man ein wenig nachforscht, ragen überall russische Wurzeln hervor ... Er wurde in Moskau geboren und lebte dort, bis er fünf Jahre alt war, und dann wanderte seine Familie 1979 nach Amerika aus, wie es damals unter Juden üblich war. Aufgrund des Antisemitismus, insbesondere der Quoten für den Zugang von Juden zu Universitäten. Zuerst isolieren sich die Juden als Volk, betonen auf jede erdenkliche Weise ihre Auserwähltheit Gottes und verbergen ihre nicht immer akzeptable Mentalität in Regionen mit einer anderen vorherrschenden Religion und einer anderen Mentalität nicht, und dann sind sie über das Ergebnis überrascht . Dies ist jedoch ein anderes Thema. Trotz seiner, gelinde gesagt, skeptischen Haltung gegenüber seiner ehemaligen Heimat (Was kann man sonst noch von einer Person erwarten, die von sowjetischen Emigranten großgezogen wurde) Ich teile seine Ansichten voll und ganz, insbesondere im Internet. Und viele kritische Aussagen über Russland sind durchaus berechtigt, wenn auch unangenehm, wenn man sie aus dem Mund eines Ausländers hört. Allerdings wurde ich wieder abgelenkt...

Als Android Studio erschien, bin ich sofort darauf umgestiegen, da es sich um eine möglicherweise vielversprechendere IDE für die Entwicklung für Android handelt. Ich muss sagen, dass zunächst sowohl die Vor- als auch die Nachteile im Vergleich zu Eclipse erkennbar waren. Dennoch gab es noch viele weitere Vorteile, und ich war fest davon überzeugt.

Als Amateur programmiere ich nicht regelmäßig und habe das letzte Jahr 2017 in Sachen Android komplett verpasst. Und jetzt habe ich beschlossen, die IDE zu aktualisieren und zu sehen, was in der Zwischenzeit dort Neues aufgetaucht ist. Und es stellte sich heraus, dass dort viele bedeutende Dinge auftauchten! Im Folgenden liste ich einige besonders bemerkenswerte Neuerungen auf, die ich sehr positiv bewerte.

Neue Programmiersprache Kotlin

Bis vor kurzem unterstützte Android Studio nur die Programmierung in Java (Java, früher häufiger Java genannt. Die Sprache ist nach einer Kaffeemarke benannt, die wiederum nach einer Insel in Indonesien benannt ist.) und in C++ für nativen Code. Die Java-Sprache ist noch nicht sehr alt, aber angesichts des relativ jungen Schwerpunkts ihrer Verwendung (Multiplattform), ziemlich alt. Es wurde 1995 von der berühmten Firma Sun Microsystems entwickelt. Die Sprache hieß ursprünglich Oak ("Eiche") und wurde für die Programmierung von Geräten der Unterhaltungselektronik entwickelt. Anschließend wurde es in Java umbenannt und zum Schreiben von Clientanwendungen und Serversoftware verwendet. Später kamen weitere Verwendungsmöglichkeiten hinzu.

Ich stelle fest, dass Java mit einem Compiler zusammenarbeitet, der keinen vollständigen Code für seine Ausführung im Betriebssystem erzeugt. In dieser Sprache geschriebene Quelltexte werden in einen speziellen Bytecode kompiliert, der auf einer speziellen virtuellen Maschine ausgeführt wird, die zusätzlich auf dem System installiert ist und diesen Code in für das Betriebssystem und den Prozessor verständliche Befehle übersetzt. Somit können in dieser Sprache geschriebene Programme auf jedem Gerät ausgeführt werden, auf dem eine solche virtuelle Maschine installiert ist. Und Java Virtual Machines wurden bereits für eine Vielzahl von Architekturen geschrieben. So werden Multiplattform-Programme realisiert. Der Nachteil dieses Ansatzes ist die erhöhte Ausführungszeit durch eine zusätzliche Schicht in Form einer virtuellen Maschine zwischen Code und Prozessor. Außerdem laufen Java-Programme aufgrund der Unvollkommenheiten vieler Java-Bibliotheken, beispielsweise GUI-Bibliotheken, oft langsamer. Aber das alles ist der Preis für Multiplattform.

Und erst kürzlich, Ende 2017, wurde Android Studio 3.0 veröffentlicht, das zusammen mit den Sprachen Java und C++ begann, die Sprache Kotlin zu unterstützen (Kotlin), das wie Java darauf ausgelegt ist, denselben Bytecode für dieselbe virtuelle Maschine zu erstellen, aber eine andere Syntax hat, die es Ihnen ermöglicht, viel kompakteren Quellcode zu schreiben. Gleichzeitig können Quelldateien in beiden Sprachen ohne Einschränkungen in einem Projekt gemischt werden, was eine schrittweise Übertragung des gesamten Projekts nach Kotlin ermöglicht.

Die Sprache ist völlig frisch. Die Entwicklung begann im Jahr 2010, wurde 2011 der Öffentlichkeit vorgestellt, die Programmierung für Android wurde 2012 möglich und die offizielle Veröffentlichung erfolgte erst vor kurzem, im Jahr 2016. Übrigens, der Überlieferung nach (dasselbe wie Java) Die Sprache ist nach der Insel benannt. Diesmal ist es die russische Insel Kotlin im Finnischen Meerbusen, auf der sich die Stadt Kronstadt befindet. Und die Sprache wurde von Programmierern aus St. Petersburg entwickelt, alle bei der gleichen Firma JetBrains! Oh, wie, eine echte russische Programmiersprache! [Patrioten sollten Fahnen schwenken, und der Autor dieses Beitrags läuft bereits im Kreis im Raum herum und schwenkt bedrohlich den Stab ...]

Ich habe bereits versucht, in dieser Sprache für Android zu schreiben, und ich kann mit Sicherheit sagen, dass die Sprache durchaus geeignet ist. Früher habe ich mich in Java-Code vertieft, weil man in Android alles und jeden schreiben muss und am Ende sehr lange Quellcodebögen hatte. Dadurch wuchs der Quellcode auf unanständige Größen an, und er musste fein in Klassen unterteilt und in verschiedene Dateien gestopft werden, und schon war ich in den Dateien verloren. Kotlin verfolgt die Philosophie „Alles, was automatisch generiert werden kann, sollte automatisch generiert werden.“ Einerseits wird der Code weniger transparent (Minus, aber vielleicht nur für Anfänger), aber einfacher und kompakter (ein großes Plus für alle).

Die Kompaktheit des Codes wird nicht nur durch verkürzte Syntaxstrukturen erreicht, sondern auch durch Standardbibliotheken, deren Verwendungsweise speziell auf Kompaktheit und ergonomische Nutzung zugeschnitten ist. Ein Beispiel hierfür wären Coroutinen (oder, als Pauspapier aus dem Englischen, Coroutinen). Coroutinen sind eine sehr übersichtliche und kompakte Möglichkeit, Code zu formatieren, der vom Hauptthread asynchron ausgeführt werden muss. Es ist nicht nötig, zusätzliche Klassen mit Methoden separat zu schreiben; alles wird direkt im Hauptcode erledigt, und das ist großartig! Darüber hinaus werden Coroutinen auf der Ebene der Bibliothek selbst implementiert und erzeugen keine hochbelastbaren System-Threads. Man nennt sie sogar leichte Fäden. Daher gibt es praktisch keine Beschränkungen hinsichtlich der Anzahl gleichzeitiger Starts. Coroutinen sind unglaublich!

Architekturkomponenten für Android von Google

Es erwies sich auch als sehr kompakt, eine SQLite-Datenbank mithilfe der Room-Bibliothek zu erstellen und zu verwenden, die ein Wrapper über der bekannten SQLiteOpenHelper-Klasse ist. Um Room zu verwenden, reicht es aus, zwei kleine Klassen zu beschreiben, die die Tabelle und die Datenbank beschreiben, und eine kleine Schnittstelle, die die Funktionen für die Interaktion mit dieser Datenbank beschreibt. In Kotlin ist es nicht nötig, all dies in verschiedene Dateien zu packen. Basierend auf diesen spärlichen Informationen reproduziert Room alle Aktionen, die zuvor in riesigen Dateien geschrieben werden mussten, automatisch und intern. Wunder!

In realen Anwendungen müssen Sie Änderungen an Daten in der Datenbank verfolgen und Informationen in visuellen Komponenten automatisch aktualisieren. Daher wird die Room-Komponente am häufigsten nicht allein, sondern zusammen mit der LiveData-Komponente aus der android.arch.lifecycle-Bibliothek verwendet. Auch diese Komponente ist einfach zu bedienen. Die zu verfolgenden Daten werden nicht direkt von der Datenbank an die Variable übertragen, sondern in Form der LiveData-Klasse, die diese Daten als Parameter in Room erhalten hat. Danach legt Kotlin im Hauptcode die Überwachung dieser Daten und die Aktualisierungsfunktion der visuellen Komponente fest, die gestartet wird, wenn sich die Daten ändern. Alles ist elementar!

Eine weitere nützliche Komponente aus der android.arch.lifecycle-Bibliothek, die das Problem beim Speichern von Aktivitätsdaten beim Drehen des Bildschirms löst, ist ViewModel. Bisher war es notwendig, alle möglichen ausgeklügelten Krücken zu schreiben, damit keine Daten verloren gingen und Berechnungen nicht unterbrochen wurden. Dafür gibt es jetzt eine offizielle Komponente! Wenn wir früher die Schnittstelle vom Code getrennt haben (Markup und Aktivität), dann ist es jetzt an der Zeit, den Code zu trennen, der nur während des Lebenszyklus der Aktivität ausgeführt werden soll (zum Beispiel Sicherstellung der Funktionsfähigkeit der Benutzeroberfläche) aus Code, der außerhalb eines bestimmten Aktivitätslebenszyklus ausgeführt werden muss (z. B. Empfangen, Verarbeiten und Senden von Daten). In diesem Fall können wir das Ergebnis des zweiten Teils des Codes in der nach dem Drehen des Bildschirms neu erstellten Aktivität automatisch lesen.

Um dieses gesamte Schema mit ViewModel zu implementieren, sind ebenfalls ein Minimum an Aktionen erforderlich. Eine separate Klasse wird mit Code geschrieben, der nicht unterbrochen werden sollte (das sogenannte Ansichtsmodell, ich weiß nicht, warum „Modell“; vielleicht übersetze ich es falsch) und im Hauptcode wird in einer Zeile der Modellanbieter aufgerufen, an den diese Klasse als Parameter übergeben wird. Der Anbieter gibt entweder ein vorhandenes Modellklassenobjekt zurück (nach dem Drehen des Bildschirms), oder erstellt ein solches Objekt basierend auf der übergebenen Klasse, falls diese noch nicht existiert, und gibt es auch zurück (wenn die Aktivität zum ersten Mal gestartet wird). Eine Aktivität kann immer auf die Funktionen und Variablen dieses Objekts zugreifen.

Alle drei Komponenten werden unter dem offiziellen Namen Android Architecture Components zusammengefasst. Es enthält zwar auch die LifeCycle-Komponente, die sich ebenfalls in der Bibliothek android.arch.lifecycle befindet, aber sie wird in enger Verbindung mit LiveData verwendet und ich würde sie überhaupt nicht hervorheben. Die Einführung solcher High-Level-Komponenten ist für Google ein willkommener Schritt in die richtige Richtung. Ich habe mich schon lange darüber beschwert, wie viele verschiedene Klassen ich erweitern und alle miteinander verbinden muss, damit etwas mehr als nur primitive Lehrbuchbeispiele funktionieren. Und schließlich tauchten in den Bibliotheken die richtigen Komponenten auf. Ich hoffe, dass dieser Trend anhält.

Visueller Schnittstelleneditor

Die Innovationen, die ich in der Smartphone-Programmierung entdeckt habe, enden hier nicht. Von Anfang an hatte Android Studio große Schwierigkeiten mit der Stabilität und Vorhersehbarkeit des visuellen Schnittstelleneditors, obwohl dieser stabiler war als in Eclipse. Auch wenn das XML-Markup der Benutzeroberfläche direkt bearbeitet wurde, war es sehr schwierig, all diese Layouts und anderen visuellen Komponenten so zu konfigurieren, dass sie an den richtigen Stellen und in der richtigen Form angezeigt wurden.

Glücklicherweise gibt es in Android Studio ab Version 2.2 keine Möglichkeit, eine knifflige Benutzeroberfläche durch Layouts mit linearer Anordnung von Elementen zu erstellen (LinearLayout) Es wird vorgeschlagen, das neue erzwungene Layout zu verwenden (ConstraintLayout). Außerdem wurde der visuelle Editor endlich fertiggestellt. Das alles zusammen hatte einen sehr positiven Effekt. Jetzt ist es nicht mehr so ​​schwierig, die Elemente richtig zu positionieren, und sie verhalten sich ziemlich vorhersehbar. Jetzt können Sie nicht einmal das XML-Markup berühren, sondern alle Aktionen im visuellen Editor ausführen.

Die vom St. Petersburger Unternehmen JetBrains entwickelte Programmiersprache Kotlin ist zur offiziellen Entwicklungssprache für Android geworden. Dies wurde auf der Google I/O-Konferenz offiziell bekannt gegeben. Das Kotlin-Team wird von Andrey Breslav, Absolvent der ITMO-Universität, geleitet. Warum Kotlin neben vielen anderen „jungen“ Sprachen beim IT-Riesen so beliebt ist, wie und warum im Allgemeinen neue Programmiersprachen auftauchen, lesen Sie in den Kommentaren von Experten und der ITMO.NEWS-Informationssammlung.

Wie Programmiersprachen entwickelt werden

Verschiedenen Schätzungen zufolge gibt es weltweit bereits mehr als zweitausend verschiedene Programmiersprachen. Es werden ständig Updates für alte Sprachen veröffentlicht und es erscheinen auch neue Sprachen. Wenn sich die Syntax einer Sprache nicht ändert, sondern nur komplexer und erweitert wird, braucht der Entwickler nur ein wenig Übung, um in seiner Lieblingssprache weiterzuschreiben. Manchmal ändert sich die Struktur der Sprache selbst, und dann muss der Programmierer manchmal neu lernen und sich an die aktualisierte Sprache anpassen. Typischerweise erfolgt der Übergang zu einer neuen Struktur schrittweise und in Teilen, d. h. nur 10–20 % des Programmcodes werden in der neuen Sprache geschrieben.

« Programmierer waren mit den Sprachen C++ und Java nicht ganz zufrieden, da es sich um recht komplexe Sprachen handelt und die erste schwieriger ist als die zweite. Daher erschien die Scala-Sprache, die vielen Programmierern gefällt, aber auch sehr komplex ist. Die große Erfahrung von JetBrains bei der Entwicklung von Programmentwicklungstools für verschiedene Programmiersprachen ermöglichte es JetBrains, in sieben Jahren die Kotlin-Sprache zu entwickeln, die vollständig mit Java kompatibel, aber einfacher und bequemer als diese ist. Programmiersprachen werden ständig weiterentwickelt; niemand stellt sich mehr die Aufgabe, eine universelle Sprache zu schaffen. Dennoch ist jede Sprache in einem bestimmten Bereich, in dem sie am häufigsten verwendet wird, effektiver. Es gibt sogar eine Richtung beim Erstellen von Sprachen, wenn diese für ein bestimmtes Fachgebiet entwickelt werden", kommentierte der Leiter der Abteilung für Programmiertechnologie an der ITMO-Universität.


Heutzutage erstellen einige Unternehmen sogar eigene Sprachbewertungen. Beispielsweise berechnet das auf die Beurteilung der Qualität von Software spezialisierte Unternehmen TIOBE seit 2001 monatlich den Beliebtheitsindex bestimmter Sprachen. Die generierte Liste umfasst 50 Zeilen und damit eine Programmiersprache in den Index aufgenommen werden kann, müssen Entwickler einen entsprechenden Brief an das Unternehmen schreiben. Die Berechnung basiert auf Daten von 25 Internet-Suchmaschinen. Bisher führt Java mit großem Abstand das Ranking an, gefolgt von C. Gleichzeitig betonen die Compiler der Liste, dass beide Programmiersprachen im vergangenen Jahr um etwa 6 % an Popularität verloren haben. Gleichzeitig zeigt TIOBE, dass die C-Sprache bis 2002 die Sprache Nr. 1 war und Java 1997 auf dem 14. Platz lag, aber fünf Jahre später C auf dem ersten Platz ablöste.

Sie können einen hervorragenden Vortrag über die Geschichte der Sprachentwicklung halten: Der Kurator für akademische Programme bei Yandex, Direktor des Zentrums für Studentenwettbewerbe an der Fakultät für Informatik der Higher School of Economics, spricht darüber, wie die Sprachen C , PHP, Ruby und Java erschienen. Michail Gustokaschin. Der Dozent betont, dass für jede Aufgabe eine andere Programmiersprache gewählt werden sollte. Er sagt zum Beispiel, dass es für die Militärindustrie am besten sei, in der guten alten Pascal-Sprache zu schreiben – einer Sprache, die bereits 1970 geboren wurde! Warum? Weil es zuverlässiger ist. Geschäftsanwendungen können in Java geschrieben werden, da diese Sprache ebenfalls recht zuverlässig, aber viel einfacher zu verwenden ist. Der Experte betont außerdem, dass es wichtig sei, das Interesse der Programmierer an der Sprache aufrechtzuerhalten, indem man eine Community von Entwicklern aufbaut, die in dieser Sprache schreiben. Nur wenn eine Infrastruktur rund um eine neue Sprache geschaffen wird und Menschen zusammenkommen, um sie zu verwenden, wird die Sprache nur dann populär. Übrigens haben auch Kotlin-Entwickler diese Strategie übernommen.

Ein wenig über Kotlin

Die Entwicklung der Programmiersprache Kotlin begann 2010 bei der St. Petersburger Firma JetBrains. Die offizielle Veröffentlichung des Produkts erfolgte im Jahr 2016. Diesen Namen erhielt die Sprache zu Ehren der Insel im Finnischen Meerbusen, auf der Kronstadt liegt. Ein interessanter Zufall ist, dass der Name der beliebten Java-Sprache auch der Name einer Insel in Indonesien ist. Der Zufall ist wahrscheinlich kein Zufall. Wie es in der Pressemitteilung heißt, sollte Kotlin überall dort funktionieren, wo Java läuft, und eines der Ziele bestand darin, ein Produkt zu entwickeln, das in gemischten Projekten verwendet werden kann, die in mehreren Sprachen erstellt werden.


Wie die Kotlin-Autoren anmerken, war es für sie das Wichtigste, ein „pragmatisches“ Produkt zu schaffen. Das bedeutet, dass sie sich nicht nur auf die Behebung von Fehlern und die Verbesserung des Produkts konzentrierten, was jeder Programmierer tun würde, sondern dass sie ein nützliches Tool entwickeln wollten.

« Entwicklungstools, einschließlich Programmiersprachen, entwickeln sich ständig weiter. Sprachen unterscheiden sich von anderen Werkzeugen dadurch, dass es ziemlich schwierig ist, sie evolutionär weiterzuentwickeln. Die neue Version der Sprache muss alle vorhandenen Programme unterstützen. Dies schränkt die Möglichkeiten zur Entwicklung bestehender Sprachen ein und schafft die Notwendigkeit der Entstehung neuer Sprachen. Der Faktor, der den Erfolg einer neuen Programmiersprache bestimmt, ist in erster Linie die Bequemlichkeit für Entwickler. Kotlin ist nicht nur prägnant und ausdrucksstark, sondern verfügt auch über eine hohe Kompatibilität mit Java-Code: Sie können alle vorhandenen Bibliotheken verwenden und sogar Code in zwei Sprachen in einem Projekt mischen, sodass es keine besonderen Übergangsschwierigkeiten gibt„, kommentierte Kotlin-Projektmanager bei JetBrains, ein Absolvent der ITMO-Universität.

Warum Google Kotlin liebte

Auf der offiziellen Website schreiben Android-Entwickler, dass sie in den letzten Jahren den „Aufstieg“ von Kotlin beobachten konnten. Google-Mitarbeiter scheuen sich nicht davor, die Sprache als beeindruckend, prägnant, kraftvoll und unterhaltsam zu beschreiben. Es hat die Produktivität gesteigert: Der darin enthaltene Programmcode ist im Durchschnitt 40 % kürzer als in anderen Sprachen, und mit Kotlin können Sie außerdem einige Fehler im Code vermeiden. Einer der entscheidenden Faktoren für die Beliebtheit von Kotlin bei Google war seine Kompatibilität mit Java, das bereits bei der Entwicklung von Anwendungen für Android verwendet wird.

Wenn Programmierer jetzt mit der Erstellung einer neuen Anwendung in der offiziellen Android Studio-Entwicklungsumgebung beginnen, können sie das Plugin „Kotlin-Unterstützung“ sofort aktivieren. Sie können auch bereits erstellte Codezeilen in anderen Sprachen in die Kotlin-Sprache konvertieren und Blöcke in anderen Sprachen in Codezeilen in Kotlin einfügen. In Zukunft werden mehr Bibliotheken und Tools für die Sprache entwickelt, mehr Schulungsmaterialien entwickelt und es wird einfacher sein, Lösungen für mögliche Probleme zu finden.

« Das Fehlen von Garantien für die Sprachunterstützung durch Google hielt viele Entwickler davon ab, auf Kotlin umzusteigen. Auch wenn Ihnen die Sprache wirklich gefällt,Ein Programmierer denkt immer über das Risiko nach, dass diese Sprache irgendwann einfach nicht mehr funktioniert. Jetzt gibt es eine Garantie dafür, dass Kotlin nicht aufhört zu funktionieren, und wir gehen davon aus, dass die Zahl der Benutzer der Sprache stark zunehmen wird. Es liegt nahe, anzunehmen, dass viele Unternehmen irgendwann vollständig auf Kotlin umsteigen werden, obwohl sie technisch gesehen nichts dazu zwingt, sondern lediglich eine Frage der Präferenz ist„- betonte Andrey Breslav.

Er fügte hinzu, dass Kotlin sehr aktiv weiterentwickelt werde. Das Entwicklungsteam arbeitet derzeit am Build-System, der Kompilierungsgeschwindigkeit, der Verbesserung der IDE-Leistung und dem Hinzufügen neuer Funktionen zum Toolkit, einschließlich solcher im Zusammenhang mit der Integration in Android Studio. Derzeit wird auch an Multiplattform-Projekten gearbeitet (die Möglichkeit, den gleichen Code für mehrere Plattformen zu kompilieren), und eine Reihe von Sprachverbesserungen befinden sich in der Entwurfsphase.


Google betonte zudem, dass man sich vom Konzept der Kotlin-Sprache inspirieren lasse, wonach diese seit jeher für Entwickler kostenlos, also ein Open-Source-Projekt, sei und auch bleiben werde. Dies bedeutet, dass die Sprache nicht an ein bestimmtes Unternehmen gebunden ist und der Quellcode unter einer kostenlosen Lizenz vertrieben wird. Sie können das Produkt herunterladen. Um die Entwicklung von Kotlin zu unterstützen, werden Google und JetBrains eine gemeinnützige Partnerschaft eingehen. Außerdem ist es im Rahmen der „Mission“ von Android sehr wichtig, dass die Autoren von Kotlin rund um ihr Produkt eine Community von Menschen schaffen, die sich beruflich mit der Entwicklung dieser Sprache befassen und ihre Erfahrungen gerne teilen. Beispielsweise findet im November die Kotlin-Konferenz in den USA statt, außerdem können Entwickler täglich Neuigkeiten und Tipps zum Softwareprodukt erhalten und sich vor Ort treffen.

Das Android Studio-Projekt selbst wurde übrigens auf Basis der Softwareentwicklungsumgebung IntelliJ IDEA entwickelt, die ebenfalls von JetBrains erstellt wurde. Doch trotz der engen Zusammenarbeit betont das St. Petersburger Unternehmen, dass von einem Verkauf von JetBrains an den amerikanischen IT-Riesen keine Rede sei. Gleichzeitig wird Koltin nicht nur für Android entwickelt. Ziel des Unternehmens ist es, die Programmiersprache für verschiedene Entwicklungsplattformen geeignet zu machen.

Letzte Aktualisierung: 02.12.2017

Kotlin ist eine statisch typisierte Programmiersprache von JetBrains. Mit Kotlin können Mobil- und Webanwendungen erstellt werden.

Kotlin läuft auf der Java Virtual Machine (JVM) und wird beim Kompilieren in Bytecode kompiliert. Das heißt, wie im Fall von Java können wir eine Kotlin-Anwendung überall dort ausführen, wo die JVM installiert ist. Allerdings ist es auch möglich, den Code in JavaScript zu kompilieren und im Browser auszuführen. Darüber hinaus können Sie Kotlin-Code in native Binärdateien kompilieren, die ohne virtuelle Maschine funktionieren. Daher ist die Palette der Plattformen, für die Sie in Kotlin Anwendungen erstellen können, äußerst groß – Windows, Linux, Mac OS, iOS, Android.

Die erste Version der Sprache wurde am 15. Februar 2016 veröffentlicht. Obwohl die Entwicklung der Sprache selbst seit 2010 erfolgt. Die derzeit aktuelle Version der Sprache ist Version 1.2, die am 28. November 2017 veröffentlicht wurde.

Kotlin wurde von vielen Sprachen beeinflusst: Java, Scala, Groovy, C#, JavaScript, Swift und ermöglicht das Schreiben von Programmen sowohl im objektorientierten als auch im funktionalen Stil. Es hat eine klare und verständliche Syntax und ist recht einfach zu erlernen.

Der beliebteste Einsatzbereich von Kotlin ist vor allem die Entwicklung für das Android-Betriebssystem. Darüber hinaus ist es so beliebt, dass Google Kotlin auf der Google I/O 2017-Konferenz zu einer der offiziellen Sprachen für die Android-Entwicklung (neben Java und C++) erklärt hat und Tools für die Arbeit mit dieser Sprache standardmäßig in die Funktionalität aufgenommen wurden der Android Strudio-Entwicklungsumgebung ab Version 3.0.

Sie können den Compiler direkt für die Kotlin-Sprache selbst unter herunterladen.

Das Archiv finden Sie unter der oben genannten Adresse. Laden Sie den Kotlinc-Ordner aus dem Archiv herunter und entpacken Sie ihn. Im entpackten Archiv im Ordner bin finden wir das Dienstprogramm kotlinc, das zum Kompilieren verwendet wird:

Definieren wir nun ein Verzeichnis auf der Festplatte für die Quellcodedateien. In meinem Fall befindet sich das Verzeichnis beispielsweise entlang des Pfads c:/kotlin. Erstellen wir in diesem Verzeichnis eine Textdatei und benennen sie in app.kt um. Die kt-Erweiterung ist eine Erweiterung von Dateien in der Kotlin-Sprache.

Fun main(args: Array )( println("Hallo Kotlin") )

In diesem Fall definieren wir die Hauptfunktion, die die vom Programm ausgeführten Aktionen darstellt. Um eine Funktion zu definieren, verwenden Sie das Schlüsselwort fun.

Diese Funktion benötigt einen args-Parameter, der ein Array von Zeichenfolgen darstellt.

Innerhalb der Hauptfunktion wird eine weitere Funktion ausgeführt – println(), die eine Nachricht an die Konsole ausgibt.

Öffnen wir die Befehlszeile. Navigieren Sie zunächst mit dem Befehl cd zu dem Ordner, in dem sich die Datei app.kt befindet. Geben Sie dann zum Kompilieren des Programms den folgenden Befehl ein:

C:\kotlin\bin\kotlinc app.kt -include-runtime -d app.jar

In diesem Fall übergeben wir die Datei app.kt zur Kompilierung an den Compiler c:\kotlin\bin\kotlinc. (Um zu vermeiden, dass der vollständige Pfad zum Compiler geschrieben wird, können Sie den Pfad dazu zur PATH-Variablen in den Umgebungsvariablen hinzufügen.) Als Nächstes geben Sie mit dem Parameter -include-runtime an, dass die generierte Datei die Kotlin-Umgebung enthalten soll. Und der Parameter -d gibt an, wie die erstellte Anwendungsdatei heißen wird, also in diesem Fall app.jar .

Nach Ausführung dieses Befehls wird die Datei app.jar erstellt. Lassen Sie es uns jetzt ausführen. Geben Sie dazu den Befehl ein

Java -jar app.jar

In diesem Fall wird davon ausgegangen, dass in der Variablen PATH in den Umgebungsvariablen der Pfad zum auf dem Computer installierten JDK angegeben ist. Andernfalls müssen Sie anstelle von „java“ den vollständigen Pfad zum Java-Dienstprogramm schreiben.

Als Ergebnis sehen wir beim Ausführen der Datei die Zeile „Hallo Kotlin“ auf der Konsole.

Im Jahr 2010 machte sich eine Gruppe von Entwicklern der russischen Niederlassung von JetBrains daran, eine Sprache zu entwickeln, die bequemer und typsicherer als Java, aber nicht so komplex wie Scala wäre. Der Name dieser Sprache wurde zu Ehren der im Finnischen Meerbusen gelegenen Insel Kotlin vergeben (in Analogie zu Java, das ebenfalls nach der Insel benannt ist).

Wenn Sie sich einen modernen Überblick über die vielversprechendsten Programmiersprachen ansehen, werden Sie dort sicherlich Kotlin finden. Was ist das Wesen dieser Sprache, warum gefällt sie allen so gut, welche Perspektiven hat sie – dazu später mehr.

Syntax

Die Idee, eine Sprache zu schaffen, die sowohl für Anfänger als auch für erfahrene Entwickler gleichermaßen geeignet ist, kommt direkt in ihrer Syntax zum Ausdruck. Wie jedes moderne Analogon ist Kotlin äußerst prägnant, kompakt und verständlich. Eine große Menge Code, der früher in Java geschrieben werden musste, kann jetzt einfach ignoriert werden. Ein einfaches Beispiel: Die Verwendung eines Semikolons zum Trennen von Anweisungen ist nicht erforderlich – der Compiler versteht jetzt alles von selbst, wenn Sie einfach in eine neue Zeile gehen. Bei der Deklaration von Variablen ist es in vielen Fällen nicht notwendig, den Typ anzugeben – er wird automatisch ermittelt.

Gleichzeitig muss man sagen, dass sich Kotlin in puncto Aufnahme ein wenig zum Pascal-Stil zurückbewegt hat – auch hier siegt die Klarheit über die Klarheit der Strukturen. Mehr dazu können Sie in diesem kurzen Artikel lesen. Es behandelt nur die Grundprinzipien der Konstruktion der Sprachen Java und Kotlin und ist daher für absolut jeden verständlich.

Wir lassen jedoch noch einen kleinen Code übrig:

fun main(args: Array ) {
val Scope = „Welt“
println("Hallo, $scope!")
}

Ein äußerst einfacher Eintrag, der für jeden verständlich sein sollte, der mindestens ein Jahr lang in der Schule oder Universität Programmieren studiert hat.

Es ist wichtig zu erwähnen, dass Kotlin vollständig mit Java kompatibel ist. Deshalb wurde es zunächst als einfacher syntaktischer Zucker betrachtet, der für komplexe Aufgaben verwendet wurde, bei denen man einfach Zeit und Mühe sparen wollte.

Vorteile

Generell wurden alle Vorteile gegenüber Java bereits erwähnt, daher fassen wir sie nur an einer Stelle zusammen:

    Codevolumen. Der Verzicht auf unnötige veraltete Codeteile beschleunigt den Entwicklungsprozess und erhöht die Lesbarkeit;

    Sicherheit. Die in die Sprachsyntax eingebetteten Regeln zum Erstellen von Code ermöglichen es Ihnen, kleine, schwer nachvollziehbare Fehler zu vermeiden, die nur während der Programmausführung auftreten;

    Kompatibilität in Java. Dies ist sowohl im Hinblick auf das Erlernen einer neuen Sprache als auch im Hinblick auf die schrittweise Übertragung Ihrer Softwareprodukte von Java auf Kotlin praktisch. Genau das ist beispielsweise bei der Basecamp-Anwendung passiert.

Mängel

Als Sprache, die auf Basis von Java entwickelt wurde, hat Kotlin im Vergleich zwei offensichtliche Nachteile: Geschwindigkeit und Ausarbeitung. Im ersten Fall ist alles klar: Bei der Arbeit mit der JVM ist Java in puncto Leistung kaum zu schlagen. Das zweite Problem ist für eine so junge Sprache etwas weit hergeholt, da sie seit etwas mehr als einem Jahr im offiziellen Umlauf ist. Ja, hier gibt es deutlich weniger Tools und Bibliotheken als in Java. Aber erstens ist das noch nicht kritisch, und zweitens hat sich in der Java-Welt Quantität nicht immer in Qualität niedergeschlagen.

Kotlin bewältigt vorerst seine Hauptaufgaben, und die vollständige Kompatibilität mit Java hilft uns, die Augen vor diesen Lücken zu verschließen.

Aussichten

Obwohl die Entwicklung von Kotlin im Jahr 2010 begann, wurde die erste offizielle Version erst im Februar 2016 veröffentlicht. Seitdem wächst die Nachfrage nach der Sprache rasant, im TIOBE-Rating schaffte sie innerhalb eines Jahres den Sprung in die TOP-50 , und letzten Monat kündigte /O auf der Google I-Konferenz die offizielle Unterstützung für Kotlin im Android-Anwendungsentwicklungssystem an.

Angesichts der hohen Beliebtheit von IntelliJ IDEA bei Entwicklern und der strategischen Ausrichtung des Unternehmens auf Kotlin können wir mit Sicherheit sagen, dass wir es in drei bis vier Jahren zu den vollwertigen Konkurrenten von Java und Swift im Bereich der mobilen Entwicklung zählen werden. Wenn die Entwickler der Sprache von ihrem Produkt nicht enttäuscht sind, wird Kotlin darüber hinaus sicherlich ernsthaft andere Horizonte erobern: Web, KI, Internet der Dinge, Big Data, Desktop-Anwendungen.

Wenn Sie sich ernsthaft für diese Sprache interessieren, werfen Sie unbedingt einen Blick auf die offizielle Website (russische Version) und erleben Sie alle Vorteile aus eigener Erfahrung. Beeilen Sie sich, bevor es zum Mainstream wird.