{"id":470580,"date":"2024-05-02T12:07:34","date_gmt":"2024-05-02T11:07:34","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=470580"},"modified":"2024-11-19T12:45:33","modified_gmt":"2024-11-19T11:45:33","slug":"kotlin-roundup-april-24","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/ko\/kotlin\/2024\/05\/kotlin-roundup-april-24","title":{"rendered":"Kotlin Roundup: K2 Compiler Updates, Ktor News, Kotlin for Data Analysis, and Other Ecosystem Stories"},"content":{"rendered":"\n<p>In this roundup, let\u2019s delve into the key recent developments in the Kotlin ecosystem.<\/p>\n\n\n            <div class=\"newsletter\">\n                            <h2>Kotlin K2 Compiler Updates<\/h2>\n                                                            <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/04\/DSGN-19392-Kotlin-K2-compiler-performance_Blog-Featured-image-1280x720-EN.png\" alt=\"Kotlin K2 Compiler Performance\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>The K2 Compiler Migration Guide is now available<\/h3>\n                                                        <p>Our step-by-step guide will help you to smoothly transition to the Kotlin K2 compiler. Discover how to upgrade your projects and take advantage of K2&#8217;s enhanced performance. The highlights of the guide include migration steps, insights into the new features and improvements, and performance benchmarks.<\/p>\n                                                            <a href=\"https:\/\/kotlinlang.org\/docs\/k2-compiler-migration-guide.html\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Dive in now<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/03\/DSGN-18611_Kotlin_K2_Blog-Featured-1280x720-2x.png\" alt=\"K2 Kotlin Mode (Alpha) in IntelliJ IDEA\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>K2 Kotlin mode (Alpha) in IntelliJ IDEA<\/h3>\n                                                        <p>Beginning with version 2024.1, IntelliJ IDEA comes with an optional K2 mode, currently in Alpha stage. In this mode, the IDE employs the K2 compiler for faster and more robust Kotlin code analysis.<\/p>\n                                                            <a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/03\/k2-kotlin-mode-alpha-in-intellij-idea\/\" class=\"btn\" target=\"_blank\">Read on<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/05\/K2-Compiler-performance-.jpeg\" alt=\"Kotlin K2 Compiler performance benchmarks\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>K2 Compiler performance benchmarks and how to measure them on your projects<\/h3>\n                                                        <p>In this blog post, we explore the performance of the K2 compiler in various projects and give you the tools to collect your own performance statistics.<\/p>\n                                                            <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2024\/04\/k2-compiler-performance-benchmarks-and-how-to-measure-them-on-your-projects\/\" class=\"btn\" target=\"_blank\">Learn more<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/05\/2.0.0-RC2.jpeg\" alt=\"Kotlin 2.0.0 RC2 Release\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>The Kotlin 2.0.0-RC2 release is out<\/h3>\n                                                        <p>This release mostly covers the stabilization of the new Kotlin K2 compiler. In addition, there are new features in Kotlin\/Wasm and Kotlin\/JS, as well as improvements for the Gradle build tool.<\/p>\n                                                            <a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew-eap.html\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Discover more<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <\/div>\n    \n\n\n<div style=\"background-color: #f1f6fe; margin-bottom: 2px; padding: 5px; margin-right: 0%; text-align: left; min-height: px;\">\n<p>Did you know that the JetBrains team regularly publishes a newsletter featuring major Kotlin ecosystem news? <a href=\"https:\/\/info.jetbrains.com\/kotlin-communication-center-page.html\" target=\"_blank\" rel=\"noreferrer noopener\"><em>Sign up to stay up to date with all things Kotlin.<\/em><\/a><\/p>\n<\/div>\n<p><\/p>\n\n\n            <div class=\"newsletter\">\n                            <h2>Ktor News<\/h2>\n                                                            <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/04\/KtorPluginRegistryReleaseImage-1-1.png\" alt=\"The Ktor Plugin Registry Has Launched\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>The Ktor Plugin Registry has launched!<\/h3>\n                                                        <p>Until now, third-party plugins were handled differently from those developed by the JetBrains team, acting as a barrier to growth for the Ktor ecosystem. The Ktor Plugin Registry is now available, enabling the submission of community-based plugins to the JetBrains team, categorizing plugins for easy searching, and providing users with essential documentation.<\/p>\n                                                            <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2024\/04\/the-ktor-plugin-registry\/\" class=\"btn\" target=\"_blank\">Explore further<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/03\/DSGN-19171-Ktor-2024-Roadmap-DI-Update_Blog-Featured-image-1280x720-EN.png\" alt=\"Ktor 2024 Roadmap DI Update\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>Ktor 2024 Roadmap DI update<\/h3>\n                                                        <p>Since we shared the Ktor Roadmap for 2024, there has been considerable interest in dependency injection (DI). The community has been asking us how Ktor might evolve to support DI and integrate existing DI frameworks. This effort is still in its early stages, but we want to clarify our goals and hear what you think.<\/p>\n                                                            <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2024\/03\/ktor-2024-roadmap-di-update\/\" class=\"btn\" target=\"_blank\">Check out the update<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <\/div>\n    \n\n            <div class=\"newsletter\">\n                            <h2>Surveys<\/h2>\n                                                            <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/05\/Twitter.png\" alt=\"Kotlin Playground Survey\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>Kotlin Playground survey<\/h3>\n                                                        <p>Do you think the Kotlin Playground could be even better? We&#8217;re dedicated to enhancing your experience, and your feedback is invaluable in this.<\/p>\n                                                            <a href=\"https:\/\/surveys.jetbrains.com\/s3\/kt-play-news\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Share your feedback<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/05\/DSGN-19485-Kotlin-AI-UX-Survey_Twitter-1200x675-1.png\" alt=\"Kotlin AI Tools UX Survey\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>AI Tools UX survey<\/h3>\n                                                        <p>Have you ever used AI to generate Kotlin code? Perhaps you&#8217;ve used AI to ask questions about Kotlin? Was AI helpful in these cases? Share feedback about your experience with AI tooling with us and make an impact in the Kotlin-AI world.<\/p>\n                                                            <a href=\"https:\/\/surveys.jetbrains.com\/s3\/Kotlin-AI-tooling-UX\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Take the survey<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <\/div>\n    \n\n            <div class=\"newsletter\">\n                            <h2>Kotlin for data analysis<\/h2>\n                                                            <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/05\/Plotting-Financial-Data-in-Kotlin-with-Kandy.png\" alt=\"Plotting Financial Data in Kotlin with Kandy\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>Plotting financial data in Kotlin with Kandy<\/h3>\n                                                        <p>Are you curious about financial data analysis with Kotlin? Dive into our latest article exploring the topic! Learn how to download and process financial datasets with Kotlin DataFrames, analyze stock market data, and visualize data with the Kandy plotting library, including the new Candlestick chart.<\/p>\n                                                            <a href=\"https:\/\/kotl.in\/rlvgrk\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Discover more<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/04\/Blog-Featured-1280x720-1-2.png\" alt=\"Data Analysis with Kotlin DataFrame: A Step-by-Step Guide\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>A Step-by-Step Guide to Performing Data Analysis With Kotlin DataFrame<\/h3>\n                                                        <p>This is the first in a series of tutorials on how to easily manipulate and visualize your data using the Kotlin DataFrame and Kandy libraries. The tutorials are aimed at regular Kotlin developers, so no previous experience of data analysis or similar frameworks (like pandas or Apache Spark) is necessary. <\/p>\n                                                            <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2024\/04\/a-step-by-step-guide-to-performing-data-analysis-with-kotlin-dataframe\/\" class=\"btn\" target=\"_blank\">Learn more<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <\/div>\n    \n\n            <div class=\"newsletter\">\n                            <h2>Livestream recordings<\/h2>\n                                                            <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/04\/Blog-Social-share-image-1280x720-2x.png\" alt=\"ICPC World Finals: Kotlin Heroes Blind Coding Challenge\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>ICPC World Finals: Kotlin Heroes Blind Coding Challenge <\/h3>\n                                                        <p>If you missed this livestream event broadcast, watch the recordings of the &#8220;ICPC World Finals: Kotlin Heroes Blind Coding Challenge.&#8221; See the talent of top-tier competitive programmers as they tackle Kotlin challenges in a unique blind coding challenge format.<\/p>\n                                                            <a href=\"https:\/\/www.youtube.com\/live\/pQHJPFFws3w?si=6IUATAQQ5reVXmS0\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Watch now<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/04\/Featured_1280x720-2x.png\" alt=\"Mastering Algorithmic Problem Solving: Insights From Kotlin Heroes\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>Mastering Algorithmic Problem Solving: Insights From Kotlin Heroes<\/h3>\n                                                        <p>If you are looking to prepare for technical interviews and hone your algorithmic skills, watch the recording of our special &#8220;Mastering Algorithmic Problem Solving: Insights From Kotlin Heroes&#8221; event. In this livestream, two ICPC World Champions tackled problems from our last competition, Kotlin Heroes.<\/p>\n                                                            <a href=\"https:\/\/www.youtube.com\/live\/3SQnsG7uYNQ?si=iRjQ_wWGNg9DzIX0\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Watch now<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <article class=\"newsletter__post\">\n                                                                                    <img decoding=\"async\" class=\"newsletter__post-img\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/05\/Featured_1280x720-2x-1.png\" alt=\"Unleash Ktor's Full Potential: Advanced Plugin Integration\">\n                                                                            <div class=\"newsletter__post-text\">\n                                                            <h3>Unleash Ktor&#8217;s Full Potential: Advanced Plugin Integration<\/h3>\n                                                        <p>In this livestream, we discussed developing plugins for Ktor and demonstrated a few interesting plugins that complement the standard set of Ktor\u2019s features. Discover how to integrate essential functionalities like Kafka for message-driven architectures, implement advanced rate limiting for traffic control, and enhance system resilience with a sophisticated Circuit Breaker plugin.<\/p>\n                                                            <a href=\"https:\/\/www.youtube.com\/live\/HAARGzM0ICs?si=bDGQiWI9X_U4xvaO\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Watch now<\/a>\n                                                    <\/div>\n                    <\/article>\n                                    <\/div>\n    ","protected":false},"author":1323,"featured_media":470681,"comment_status":"closed","ping_status":"closed","template":"","categories":[89],"tags":[7144,8476,8475,7031,4292],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/470580"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/1323"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=470580"}],"version-history":[{"count":9,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/470580\/revisions"}],"predecessor-version":[{"id":471405,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/kotlin\/470580\/revisions\/471405"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/470681"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=470580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=470580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=470580"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=470580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}