Kotlin
A concise multiplatform language developed by JetBrains
2021년 가을 Kotlin 로드맵의 7가지 하이라이트
Kotlin은 아이디어를 코드로 전환하기 위해 만들어졌습니다. 저희는 아이디어 구체화 과정을 방해하는 걸림돌을 제거하고 Kotlin을 단순하고 재미있게 읽고 쓸 수 있도록 만들기 위해 노력하고 있습니다. 하지만 이를 실현하려면 언어 구문, 컴파일러 프런트엔드 및 백엔드, IDE, 빌드 도구, 라이브러리 및 기타 모든 도구 등 수많은 요소로 구성된 매우 복잡한 엔지니어링 시스템이 필요합니다. 이러한 모든 구성 요소를 유지관리하고 개발하기 위해 JetBrains에서는 약 110명의 팀원들이 활동하며 다양한 프로젝트와 작업을 동시에 진행합니다.
이러한 프로젝트에 대한 최신 정보를 확인하려면 Kotlin 공개 로드맵을 확인하세요. Kotlin 1.7.0 이후의 계획을 반영하여 로드맵을 업데이트했습니다! 자세한 내용이 아닌 개괄적 내용만 확인하고 싶은 분은 가장 주목할만한 7가지 하이라이트를 다룬 이 블로그 글에서 진행 작업에 대한 요약 정보를 확인할 수 있습니다.
읽는 것을 좋아하지 않는 분들을 위해 이 하이라이트를 영상으로도 준비했습니다!
한국어 자막이 포함되어 있습니다.
1. 알파 단계로 진행 중인 K2 컴파일러 프런트엔드
이 컴파일러는 Kotlin의 핵심입니다. IDE 응답 속도, 빌드 속도, 바이너리 크기 및 효율성 등 애플리케이션 제작의 모든 측면에서 추진력을 제공하는 전체 언어의 발전소입니다. 그렇기 때문에 JetBrains는 Kotlin 컴파일러에 적극적으로 투자하고 있으며, 새로운 K2 컴파일러 빌드는 그 대표적 사례입니다.
현재는 K2 컴파일러 프런트엔드를 알파 단계로 진행시키는 데 팀 역량을 집중시키고 있습니다. 프런트엔드는 코드 분석 및 중간 표현으로의 변환을 담당하는 컴파일러 부분으로, 이후 이 부분은 백엔드에서 처리됩니다. 이 새로운 컴파일러는 이미 훌륭한 결과를 보여주고 있습니다. Kotlin 자체와 IntelliJ IDEA 같은 대규모 JVM 프로덕션 프로젝트를 컴파일할 수 있으며 이러한 프로젝트에서 컴파일 속도가 평균적으로 2배 더 빠릅니다.
앞으로 더 많은 프로젝트를 컴파일하고 버그 및 성능 문제를 수정하면서 계속 안정화 작업을 거쳐, K2/JVM 컴파일러 공개 테스트 버전을 2022년 봄까지 내놓을 계획입니다. 알파 버전은 커뮤니티에서 더 많은 도구를 빌드하는 데 사용할 수 있는 새로운 플러그인 인프라의 테스트 버전을 제공하게 될 것입니다.
멀티플랫폼 프로젝트를 K2 컴파일러로 빌드할 수 있도록 JVM 이외의 백엔드 지원에도 투자하고 있습니다.
로드맵 티켓 살펴보기:
2. KMM의 안정성과 견고성에 집중
2022년 봄에 KMM 베타 버전이 나옵니다! 현재는 사용자 워크플로를 방해하는 문제를 최대한 많이 찾아 수정하는 데 집중하고 있습니다. 이러한 작업에는 코드 강조 표시, 탐색 및 코드 완성, 디버그, 빌드 도구 안정성이 포함됩니다.
또한 동시 실행 환경을 지속적으로 개선할 것입니다. 얼마 전에 실험적인 Kotlin/Native 메모리 관리자를 출시했습니다. 이를 통해 JVM과 Native 플랫폼 간의 차이가 완화되고 iOS 및 Android 플랫폼 모두를 위한 공통 동시 코드를 쉽게 작성할 수 있습니다. 추가 계획으로는 향후 새로운 메모리 관리자로 더 쉽게 마이그레이션할 수 있도록 안정성과 성능을 개선하는 작업이 있습니다.
로드맵 티켓 살펴보기:
Kotlin은 빠르게 진화합니다! 공개된 로드맵을 확인하고 현재 JetBrains에서 중점을 두고 있는 모든 기능을 전체적으로 살펴보세요!
3. 네임스페이스 연구 및 프로토타이핑
Kotlin에서는 클래스가 컴패니언 객체를 선언한 경우에만 해당 클래스에 대한 확장을 가질 수 있습니다. 이 때문에 다수의 타사 라이브러리 클래스를 확장할 수 없고 private static 클래스 멤버를 선언할 때 효율성이 떨어지는 등, 여러 가지 원치 않는 결과가 수반됩니다.
이에 JetBrains는 모든 클래스에 자동 소유되는 인스턴스가 없는 일종의 임시 객체라는, 새로운 개념의 네임스페이스를 도입한 솔루션을 프로토타이핑할 계획입니다. 네임스페이스 멤버는 JVM의 static 멤버로 자연스럽게 컴파일됩니다. 이에 따라 static 헬퍼는 소스에서 함께 그룹화되고 객체 오버헤드는 완전히 제거됩니다. 이는 Kotlin과 Java static 메서드 간의 상호운용성을 크게 개선하기 위한 것으로, 모든 Java 타입에서 확장을 가능하게 합니다. 이러한 솔루션은 Kotlin/JVM 채택을 확대하는 데 기여할 것입니다.
로드맵 티켓 살펴보기:
4. Kotlin 테스트 커버리지 도구, Kover
Kotlin 애플리케이션 및 라이브러리의 테스트 커버리지를 수집하기 위한 강력한 Kotlin 전용 솔루션이 있어야 에코시스템이 성장한다고 JetBrains는 생각합니다. Gradle 플러그인인 Kover를 도입한 이유도 이 때문입니다. 이 플러그인은 Kotlin 코드의 코드 커버리지를 측정하고 인라인 함수를 포함한 모든 언어 구문과 작동합니다.
장기 계획으로는 검증 규칙을 위한 DSL, JaCoCo 사용 안정화, 고급 필터링 및 고급 Android 지원 등이 있습니다. 피드백을 기반으로 Kover를 개발할 계획이므로 사용해 보고 의견을 공유해 주세요!
로드맵 티켓 살펴보기:
5. 라이브러리 문서 생성을 위해 새롭게 작업된 도구, Dokka
작업이 진행 중인 라이브러리 개발자를 위한 또 다른 도구로 문서 생성 도구인 Dokka가 있습니다. 1.6.0으로 진행하면서 베타 단계에 이르렀고, 사용편의성과 공식 Kotlin 문서와의 디자인 통합에 중점을 두고 있습니다. 공식 언어 참조 문서이든 라이브러리 문서이든 상관없이 개발자들이 Kotlin 문서로 작업할 때 원활한 경험을 하기를 바랍니다. 균일한 시각적 스타일과 구조를 사용하면 컨텍스트 전환의 부담을 줄이는 데 도움이 됩니다.
다음 단계는 Dokka를 안정화 버전으로 진행하는 것이며 현재 유일하게 안정적인 출력은 HTML입니다. GitHub Markdown 또는 Jekyll, 플러그인 개발자용 API 및 Java에 대한 전면적인 지원과 같은 기타 출력 형식은 알파 버전으로 유지됩니다. 앞으로 더 나아가기 위해 일련의 인터뷰를 진행할 예정이며 여러분의 솔직한 피드백을 기대합니다!
로드맵 티켓 살펴보기:
힌트: UX 연구에 참여하고 싶으신가요? 신청하세요!
6. Kotlin IDE 플러그인 릴리스의 도입 개선
Kotlin IDE 플러그인을 IntelliJ 플랫폼 개발 인프라로 옮기는 일은 복잡한 엔지니어링 작업이었지만, 이를 통해 IntelliJ 플랫폼에서 새로운 도구 기능를 지원할 수 있게 되었습니다. 그러나 몇 가지 부정적인 부분도 있습니다. 예를 들어, EAP 사용자라면 예정된 Kotlin 릴리스의 테스트 버전이 IntelliJ IDEA EAP 릴리스에서 지원되지 않는다는 사실을 눈치채셨을 것입니다. 이 문제를 포함해 Kotlin IDE 플러그인 릴리스의 도입을 방해하는 기타 문제를 해결하기 위해 내부 인프라를 개선할 예정입니다.
로드맵 티켓 살펴보기:
7. Playground 개선
모임에서 친구에게 새로운 Kotlin 기능을 보여주고 싶었지만 노트북을 가져오지 않았다는 사실을 깨달았던 경험이 혹시 있으셨나요? Kotlin 기능 소개, 언어 학습, 프로토타입 제작, 지식 공유와 같은 다른 많은 상황에서 도움을 주는 Kotlin Playground가 제공됩니다. 여러분 모두가 Kotlin Playground를 긍정적으로 평가해주신 만큼, 더 많은 기능으로 보답해 드리려고 합니다.
신규 사용자를 위해서는 더 많은 예시와 팁을 제공하여 원활한 사용자 경험을 제공할 계획입니다. 고급 사용자를 위해서는 장치 간 진행 상황을 동기화하고, 여러 탭을 열고, 파일을 내보내는 등의 기능을 제공하려고 합니다. 그뿐 아니라 노트북을 가져가지 않아도 모임을 망치는 일이 없도록 Kotlin Playground를 모바일 친화적으로 만들 예정입니다!
로드맵 티켓 살펴보기:
——–
커뮤니티는 Kotlin을 성장시키는 자양분과 같습니다. 계획을 수립하는 과정에서 여러분의 피드백과 아이디어를 반영할 예정이므로 YouTrack, Slack 또는 기타 채널을 통해 의견을 공유해 주세요.
블로그와 YouTube 채널에서 향후 Kotlin 계획에 대해 계속해서 다룰 것입니다. 두 채널을 모두 구독하고 지켜봐 주세요.
자세히 알아보기
- Kotlin 로드맵
- 공개 Slack의 #kotlin-roadmap 채널(초대받기)
- Kotlin YouTube 채널
게시물 원문 작성자
Subscribe to Kotlin Blog updates
Discover more
Kotlin-Roadmap Herbst 2021 – sieben Highlights
Kotlin wurde entwickelt, um Ideen in Code zu übersetzen. Wir versuchen, alle Hindernisse, die Ihren Ideen im Wege stehen, zu beseitigen und Ihnen das Lesen und Schreiben von Kotlin-Code einfach und angenehm zu machen. Ermöglicht wird dies durch ein komplexes System, das aus vielen Teilen besteht: der Sprachsyntax, dem Compiler-Frontend und -Backend, der IDE, den Build-Tools, den Bibliotheken und verschiedenen anderen Tools. Um die Entwicklung und Pflege all dieser Komponenten kümmern sich rund 110 Mitarbeiter*innen in unserem Team. Alle arbeiten gleichzeitig an mehreren Projekten und Aufgaben.
Um sich über diese Projekte zu informieren, empfehlen wir Ihnen einen Blick in die öffentliche Kotlin-Roadmap. Wir haben sie gerade mit unseren Plänen für Kotlin 1.7.0 und darüber hinaus aktualisiert! Wenn Sie nur einen kurzen Überblick über die Entwicklungen erhalten möchten, ohne ins Detail zu gehen, lesen Sie diesen Blogbeitrag, der die sieben wichtigsten Highlights unserer Arbeit vorstellt.
Keine Lust aufs Lesen? Sie können diese Highlights auch in unserem Video kennenlernen:
1. K2-Compiler-Frontend nähert sich dem Alpha-Status
Der Compiler ist das Herzstück von Kotlin. Bei der Erstellung einer Anwendung hat er einen entscheidenden Einfluss auf jeden Aspekt, einschließlich der Reaktionsfähigkeit der IDE, der Build-Geschwindigkeit, der Größe der Programmdatei und der Effizienz. Aus diesem Grund investieren wir aktiv in den Kotlin-Compiler, insbesondere durch die Entwicklung des neuen K2-Compilers.
Unser Team arbeitet derzeit daran, das K2-Compiler-Frontend in die Alpha-Phase zu überführen. Das Frontend ist der Teil des Compilers, der für die Codeanalyse und die Umwandlung in eine Zwischenrepräsentation verantwortlich ist, die anschließend von Backends verarbeitet wird. Der neue Compiler zeigt bereits jetzt tolle Ergebnisse! Er ist in der Lage, riesige JVM-Produktionsprojekte wie die Sprache Kotlin selbst und die IDE IntelliJ IDEA zu kompilieren. Bei diesen Projekten ist die Kompilierungsgeschwindigkeit im Durchschnitt doppelt so hoch wie bisher.
Wir werden weiterhin an der Stabilität arbeiten, indem wir weitere Projekte kompilieren und Fehler sowie Leistungsprobleme beheben. Wir planen, bis zum Frühjahr 2022 eine öffentliche Preview des K2/JVM-Compilers anzubieten. Die Alpha-Version wird einen Ausblick auf die neue Plugin-Infrastruktur bieten, die es der Community ermöglicht, neue Tools zu entwickeln.
Wir investieren auch in die Unterstützung von Nicht-JVM-Backends, um Multiplattform-Projekte mit dem K2-Compiler kompilieren zu können.
Relevante Roadmap-Tickets:
- K2/JVM-Compiler als Alpha veröffentlichen
- Compiler-Plugin-API stabilisieren
- JS-Backend für den K2-Compiler erkunden
2. Fokus auf Stabilität und Robustheit für KMM
KMM wird im Frühjahr 2022 die Betaphase erreichen! Dies bedeutet, dass wir uns jetzt darauf konzentrieren, möglichst viele der Probleme, die Ihren Arbeitsablauf unterbrechen, zu finden und zu beheben. Dazu gehören die Bereiche Codehervorhebung, Navigation, Completion, Debugging und die Stabilität der Buildtools.
Auch im Bereich Nebenläufigkeit werden wir weitere Verbesserungen vornehmen. Wir haben gerade einen experimentellen Kotlin/Native-Speichermanager veröffentlicht. Er gleicht die Unterschiede zwischen der JVM und der nativen Plattform aus und vereinfacht das Schreiben von gemeinsam genutztem, nebenläufigem Code für iOS und Android. Zu unseren weiteren Plänen gehören die Verbesserung von Stabilität und Leistung, um die zukünftige Migration auf den neuen Speichermanager zu vereinfachen.
Relevante Roadmap-Tickets:
- Stabilität und Robustheit der Multiplattform-Toolchain verbessern
- Neuen Speichermanager in Alphaphase überführen
Kotlin entwickelt sich rasant weiter! Lesen Sie unsere öffentliche Roadmap, um ein vollständiges Bild von unseren aktuellen Schwerpunkten zu erhalten!
3. Forschungsaktivitäten und Prototyping zu Namensräumen
In Kotlin können Sie eine Klasse nur erweitern, wenn die Klasse ein Begleitobjekt deklariert. Dies hat viele unerwünschte Konsequenzen. Zum Beispiel lassen sich viele Bibliotheksklassen von Drittanbietern nicht erweitern, und das Deklarieren privater statischer Klassenmember ist ineffizient.
Wir wollen den Prototyp einer Lösung erstellen, die ein neues Namensraumkonzept einführt – eine Art ephemeres Objekt ohne Instanz, das jede Klasse automatisch besitzt. Namensraum-Member werden in der JVM natürlich zu statischen Membern kompiliert. Somit werden statische Helfer im Quellcode an einem Ort gruppiert, und gleichzeitig wird der gesamte Objekt-Overhead beseitigt. Dadurch sollen die Interoperabilität von Kotlin mit statischen Java-Methoden erheblich verbessert und Erweiterungen zu jedem beliebigen Java-Typ ermöglicht werden. Dies sollte auch der weiteren Verbreitung von Kotlin/JVM zugutekommen.
Relevante Roadmap-Tickets:
4. Kover – ein Test-Coverage-Tool für Kotlin
Wir glauben, dass eine robuste, Kotlin-spezifische Lösung zur Erfassung der Test-Coverage von Kotlin-Anwendungen und -Bibliotheken für das Wachstum unseres Ökosystems unerlässlich ist. Deshalb haben wir Kover eingeführt, ein Gradle-Plugin, das die Coverage von Kotlin-Code ermittelt und mit allen Sprachkonstrukten einschließlich Inline-Funktionen umgehen kann.
Zu unseren langfristigen Plänen gehören eine DSL für Verifizierungsregeln, Stabilisierung der JaCoCo-Nutzung, erweiterte Filterung und erweiterte Android-Unterstützung. Wir wollen Kover basierend auf Ihrem Feedback entwickeln. Sie können es also gerne ausprobieren und uns Ihr Feedback mitteilen!
Relevante Roadmap-Tickets:
5. Dokka – ein überarbeitetes Tool zum Dokumentieren von Bibliotheken
Ein weiteres Tool für die Bibliotheksentwicklung, an dem wir gerade arbeiten, ist Dokka, ein Tool zur Erstellung von Dokumentationen. Mit 1.6.0 überführen wir es in die Betaphase und konzentrieren uns dabei auf Benutzerfreundlichkeit und die Vereinheitlichung des Designs mit der offiziellen Kotlin-Dokumentation. Wir möchten, dass Sie bei der Entwicklung eine nahtlose Erfahrung mit der Kotlin-Dokumentation haben, egal ob es sich um die offizielle Sprachreferenz oder die Dokumentation von Bibliotheken handelt. Die Verwendung eines einheitlichen visuellen Stils und einer einheitlichen Struktur reduziert den Aufwand bei Kontextwechseln.
Der nächste Schritt besteht darin, Dokka mit HTML als einzigem Output-Format in einer stabilen Version zu veröffentlichen. Andere Ausgabeformate wie GitHub-Markdown oder Jekyll, die API für die Plugin-Entwicklung und die durchgehende Java-Unterstützung verbleiben im Alpha-Status. Um auch hier voranzukommen, werden wir eine Reihe von Interviews durchführen und auf Ihr Feedback warten!
Relevante Roadmap-Tickets:
Tipp: Sie würden gerne an UX-Studien teilnehmen? Bewerben Sie sich!
6. Verbreitung des Kotlin-IDE-Plugins fördern
Die Umstellung des Kotlin-IDE-Plugins auf die Entwicklungsinfrastruktur der IntelliJ-Plattform war ein komplexes technisches Unterfangen, das es uns ermöglicht hat, die neuen Tool-Funktionen zusammen mit der IntelliJ-Plattform zu unterstützen. Es gibt jedoch auch einige Nachteile. Wenn Sie beispielsweise unsere EAP-Versionen nutzen, ist Ihnen vielleicht aufgefallen, dass die EAP-Versionen von IntelliJ IDEA nicht die Preview-Versionen von kommenden Kotlin-Releases unterstützen. Wir wollen unsere interne Infrastruktur verbessern, um dieses und andere Probleme, die der Verbreitung des Kotlin-IDE-Plugins entgegenstehen, zu beheben.
Relevante Roadmap-Tickets:
7. Playground-Verbesserungen
Ist es Ihnen schon mal passiert, dass Sie auf einer Party schnell ein brandneues Kotlin-Feature vorführen wollten und feststellen mussten, dass Sie Ihren Laptop nicht dabei hatten? Für diesen und viele andere Fälle – zum Beispiel beim Erlernen der Sprache, beim Prototyping oder dem Wissensaustausch – haben wir den Kotlin Playground ins Leben gerufen. Und da er bei Ihnen auf enorme Resonanz gestoßen ist, wollen wir die Möglichkeiten, die er Ihnen bietet, erweitern!
Neulingen wollen wir den Einstieg mit weiteren Beispielen und Tipps vereinfachen. Fortgeschrittenen möchten wir die Möglichkeit bieten, Fortschritte geräteübergreifend zu synchronisieren, mehrere Tabs zu öffnen, Dateien zu exportieren und noch einiges mehr. Außerdem soll der Kotlin Playground auch auf Mobilgeräten leichter zu nutzen sein, damit die Party nicht ruiniert wird, wenn Sie Ihren Laptop vergessen!
Relevante Roadmap-Tickets:
——–
Die Community ist die große Stärke von Kotlin. Wir möchten bei unserer Planung gerne Ihr Feedback und Ihre Ideen berücksichtigen, und wir freuen uns sehr auf Ihre Rückmeldungen über YouTrack, Slack oder andere Kanäle.
Wir werden Sie auch in Zukunft in unserem Blog und auf unserem YouTube-Kanal über unsere Pläne für Kotlin informieren. Abonnieren Sie also beide, um stets auf dem Laufenden zu bleiben!
Weitere Informationen
- Die Kotlin-Roadmap
- Öffentlicher Slack-Channel #kotlin-roadmap (hier erhalten Sie eine Einladung)
- YouTube-Kanal von Kotlin
