Kotlin 1.1をご芧くださいJavaScript、コルヌチンなど

Kotlinプログラミング蚀語の新しいバヌゞョンであるKotlin 1.1をご玹介したす。







コトリン1.1

私たちの目暙は、最新のアプリケヌションのすべおのコンポヌネントを効果的に蚘述できる、衚珟力豊かな静的型付け蚀語を䜜成するこずです。 本日のリリヌスでは、この方向に2぀の重芁なステップを螏みたす。









たず、JavaScriptのサポヌトは実隓的なものではなくなりたした。 蚀語のすべおの機胜が利甚可胜です。暙準ラむブラリの重芁な郚分であり、もちろん、JavaScriptコヌドず察話する機胜もありたす。 これで、アプリケヌションのクラむアント郚分もKotlinに移行できるようになり、Reactなどの通垞のラむブラリずフレヌムワヌクを攟棄する必芁がなくなりたした。







第二に、コルチンのサポヌトがありたす。コルチンは、スレッドの軜量類䌌物であり、アプリケヌションを適切にスケヌリングし、1台のマシンで倧きな負荷をサポヌトできたす。 さらに、コルヌチンは非同期コヌドの蚘述を倧幅に簡玠化したす。これは、すべおのプラットフォヌムでのUIの「応答性」にずっお重芁です。







これらの倉曎の詳现に぀いおは、以䞋で説明したす。 他の革新には、 型゚むリアス 、 バむンドされた呌び出し可胜な参照 、 ラムダでの砎壊が含たれたす。 興味深い倉曎の完党なリストは、 新機胜ペヌゞにありたす䟋を実行するこずに泚意しおください。







コルヌチンコルヌチン



Kotlinのコルヌチンにより、非同期コヌドを通垞の同期コヌドず同じくらい簡単に䜜成できたす。







非同期コヌドは倧きくなっおきおおり、それを曞くのは非垞に難しいこずがよくありたす。 この䜜業を容易にするために、Kotlin蚀語レベルのコルヌチンサポヌトを远加したした。これには、1぀のプリミティブ サスペンド関数のみが含たれたす。 このような関数の実行は、スレッドをブロックせずに䞀時停止し、埌で再開できたす。 さらに、実行の䞭断ず再開のロゞックに察する制埡は、ラむブラリの䜜成者に完党に属し、スレッドの軜量な代替ずしおコルヌチンを䜿甚できたす。 珟圚、費甚のかかるフロヌのブロックの代わりに、コルヌチンのほが無料のサスペンションを䜿甚できたす。







蚀語の構文にはほずんど远加されおいたせん1぀の修食子が、ラむブラリにはアクティビティの巚倧なスコヌプが䞎えられおいたす。 たずえば、 kotlinx.coroutinesプロゞェクトでは、Rx、CompletableFuture、NIO、JavaFx、およびSwingのサポヌトを既に実装しおいたす。 このようなラむブラリヌは、AndroidおよびJavaScript甚に䜜成できたす予定されおいたす。 他のプログラミング蚀語に組み蟌たれおいるコンストラクトでさえ、ラむブラリのKotlinで実装できたす。たずえば、ゞェネレヌタヌ/ Pythonからの出力、チャネル/ Goからの遞択、たたはCからの非同期/埅機







// runs the code in the background thread pool fun asyncOverlay() = async(CommonPool) { // start two async operations val original = asyncLoadImage("original") val overlay = asyncLoadImage("overlay") // and then apply overlay to both results applyOverlay(original.await(), overlay.await()) } // launches new coroutine in UI context launch(UI) { // wait for async overlay to complete val image = asyncOverlay().await() // and then show it in UI showImage(image) }
      
      





ドキュメントの詳现







重芁なお知らせ 。 コルヌチンが提䟛するすべおの利点にもかかわらず、その蚭蚈はただ比范的新しいものです。 したがっお、すべおを正しく実行したこずを確認するために、実際に集䞭的に怜蚌する必芁がありたす。 したがっお、1.1のコルヌチンは「実隓的」 フラグの䞋に出おきたす。 蚀語コンストラクトが倉曎される可胜性は䜎いず想定しおいたすが、Kotlin 1.2では、コルヌチン関連のAPIぞの倉曎が可胜です。







JavaScriptサポヌト



䞊で述べたように、Kotlinのすべおの機胜は、JVM / AndroidずJavaScriptの䞡方で同等に利甚できるようになりたしたリフレクションを陀き、珟圚取り組んでいたす。 これにより、JetBrains内の䞀郚の補品で成功しおいるKotlinで完党にWebアプリケヌションを開発できたす。 近い将来、関連するドキュメントず手順を公開する予定です。







JavaScript甚のKotlinは、JavaScriptコヌドず察話するための動的タむプをサポヌトしおいたす。 人気のあるラむブラリぞの型付きアクセスの堎合、 DefinitelyTypedのヘッダヌでts2ktコンバヌタヌを䜿甚できたす。







ドキュメントの詳现







ツヌルキット



䞭間リリヌスでは、蚀語の構文に関係のない新しい機胜をリリヌスしようずしおいたす。 Kotlin 1.0以降に登堎した最も印象的なものは次のずおりです。









ただし、バヌゞョン1.1.xのツヌルキットの改善は既に停止しおおり、既に準備䞭です。







Kotlinの最初の幎コミュニティず配垃



芁するに、私たちは成長しおいたす 過去1幎間で16䞇人を超えるプログラマヌがKotlinを䜿甚したした。 Githubのオヌプン゜ヌスプロゞェクトのKotlinの行数は、2.4から1,000䞇に増加したした。 リリヌス1.0の時点で、Kotlinのスラックチャンネルには1'400人がいたした-珟圚は5'900人です。 毎週、コミュニティのアクティブなメンバヌによっお線成された新しいmitapずナヌザヌグルヌプが䞖界䞭に衚瀺されたす。 より倚くの新しい本やオンラむンコヌスが公開されおいたす。







画像







Kotlinは、サヌバヌ偎ずAndroid開発者の間でほが同じくらい人気がありたす。 Spring Framework 5.0 では、Kotlinずvert.x 3.4の サポヌトが導入されおいたす。 GradleずTeamCityは、KotlinベヌスのDSLを䜿甚しおビルドスクリプトをプログラムしたす。 すべおの䞻芁なKotlinプロゞェクトずラむブラリのリストは、 kotlin.linkにありたす。







倚数の䞖界的に有名な䌁業が補品コヌドにKotlinを䜿甚し始めたした Amazon Web Services 、 Pinterest 、 Coursera 、 Netflix 、 Uber 、 Square 、 Trello 、 Basecamp 、その他倚数。 Corda-有名な銀行のコン゜ヌシアムゎヌルドマンサックス、りェルズファヌゎ、JPモヌガン、ドむツ銀行、UBS、HSBC、BNPパリバ、゜シ゚テゞェネラルなどによっお開発された分散ワヌクフロヌシステムは、Kotlinの最初から開発されたした。 Kotlinは、Avito、Rocketbank、Avi​​asalesなどのロシア䌁業でも䜿甚されおいたす。







私たちは、䞖界䞭のすべおのナヌザヌ、貢献者、積極的なサポヌタヌに際限なく感謝しおいたす。 あなたのサポヌトは私たちにずっお非垞に重芁です







Kotlin 1.1むベントを構築する



このリリヌスは、他のKotlinナヌザヌに䌚う正圓な理由です。 あなたの街でこのような䌚議を開催するのに圹立぀䞀連の資料を甚意したした。3月23日に、Kotlinチヌムの代衚者ずのラむブ䌚議をブロヌドキャストしたす。さらに、お土産やFuture Features Surveyのセットを入手できたす。 詳现ず登録フォヌムはこちら 。







次は䜕ですか



Kotlinを真にナニバヌサルなフルスタック蚀語にするために、耇数のプラットフォヌムの共通コヌドを䞀床にコンパむルするための蚀語ずツヌルのサポヌトに取り組んでいたす。 これにより、クラむアント偎ずサヌバヌ偎の䞡方でコヌドが䜿甚されるモゞュヌルを䜜成できたす。 たた、サヌドパヌティのJavaScriptラむブラリのツヌルずサポヌトを改善し続けおいたす。 JavaScriptのむンクリメンタルコンパむルが進行䞭です。バヌゞョン1.1.xのいずれかでリリヌスしたす。







Java 9のサポヌトは、このプラットフォヌムの公匏バヌゞョンのリリヌスこの倏たでに衚瀺されたす。







コルヌチンに関する倚くのフィヌドバックを期埅しおおり、蚭蚈、パフォヌマンス、およびラむブラリが利甚可胜になったずきにラむブラリの改善に努めたす。







しかし、抂しお、次のリリヌスでは、既存の蚀語機胜のツヌルの品質、パフォヌマンスの向䞊、むンフラストラクチャの拡倧、バグの修正に䞻に焊点を圓おたす。 Kotlinは埐々に倚くのプロゞェクトのキヌテクノロゞヌになり぀぀あり、それに応じお成長に察応しおいたす。







PSすべおの䞻芁プラットフォヌムでのKotlinの配垃は、圓瀟にずっお戊略的な方向性です。 サヌバヌ、デスクトップ、Androidデバむス、ブラりザヌで既に実行できたす。 近い将来、「仮想マシンのない䞖界」をカバヌし、iOSや組み蟌みシステムなどのプラットフォヌムをサポヌトする予定です。 珟圚、Kotlin Nativeの優れたチヌムがJetBrainsで取り組んでおり、比范的短時間で䜕か面癜いものを芋せたいず考えおいたす。







詊し方



い぀ものように、ブラりザで盎接Kotlinを詊すこずができたす try.kotlinlang.org

Maven / Gradle 1.1.0をコンパむラず暙準ラむブラリのバヌゞョン番号ずしお䜿甚したす。

IntelliJ IDEA Kotlin 1.1のサポヌトは2017.1に既に組み蟌たれおいたす。以前のバヌゞョンでは、プラグむンをバヌゞョン1.1に曎新する必芁がありたす。

Android Studio  プラグむンマネヌゞャヌを䜿甚しおプラグむンをむンストヌルたたは曎新したす。

Eclipse  マヌケットプレむスで新しいプラグむンを利甚できたす。

コマンドラむンコンパむラは、Githubのリリヌスペヌゞから入手できたす。







互換性 Kotlin 1.1では、蚀語ず暙準ラむブラリは完党に埌方互換性がありたす モゞュロバグ。 䜕かが1.0の䞋で構築および開始された堎合、1.1でも機胜し続けたす。 倧芏暡なチヌムの段階的な移行を容易にするために、1.1のすべおの新しい蚀語機胜を無効にする特別なコンパむラキヌを提䟛しおいたす。 このドキュメントでは、移行のすべおの埮劙な点に぀いお詳しく説明したした。








All Articles