تم إصدار Kotlin 2.1 الجديد: التغييرات الرئيسية والميزات الجديدة
أعلنت شركة JetBrains رسمياً عن الإصدار المستقر من Kotlin 2.1. يواصل هذا التحديث المسار نحو تحسين الأداء والاستقرار وسهولة التطوير. يأتي الإصدار 2.1 ليحل محل الإصدار 2.0 الذي تم إصداره سابقاً، ويتضمن كلاً من التحسينات المنتظرة طويلاً والإمكانيات التجريبية التي يمكن تجربتها بالفعل في مشاريع الإنتاج. دعونا نتعمق في ما تغير بالضبط ولماذا هو مهم لكل مطور يعمل بلغة Kotlin.
مُجمّع K2: أصبح الآن افتراضياً
التغيير الرئيسي في الإصدار هو أن مُجمّع K2 أصبح قياسياً. إذا كان في الإصدار 2.0 يحتاج إلى تفعيله بعلامة منفصلة، فهو الآن مضمن افتراضياً لجميع المشاريع متعددة المنصات. وهذا يوفر:
- تسريعاً كبيراً في البناء (يصل إلى ضعفين في بعض المشاريع)؛
- رسائل خطأ أكثر وضوحاً وفهماً؛
- دعماً محسّناً للتراكيب اللغوية الجديدة.
إلى جانب هذا التحديث، تم تحسين التوافق مع Gradle 8.x و Android Gradle Plugin بشكل كبير، مما يجعل عملية الترحيل سلسة قدر الإمكان.
الميزات التجريبية: ما الجديد
في Kotlin 2.1، تم توسيع مجموعة الإمكانيات التجريبية. من بينها، يجدر تسليط الضوء على:
- شروط الحماية (Guard conditions) في when — الآن داخل فروع when يمكن استخدام فحوصات إضافية باستخدام الكلمة المفتاحية
guard. وهذا يجعل المطابقات المعقدة أكثر قابلية للقراءة ويقلل من عدد if المتداخلة. - Non-local break و continue — إمكانية طال انتظارها لمقاطعة الحلقات من تعبيرات لامدا. تعمل فقط عند تفعيل علامة المُجمّع المناسبة.
- توسيع التجريدات السياقية — تحسين العمل مع الدوال السياقية و typealias، مما يبسط كتابة تراكيب DSL.
جميع الميزات التجريبية تتطلب اشتراكاً صريحاً (opt-in) عبر التعليق التوضيحي @OptIn، لذلك يمكن اختبارها بأمان دون الخوف من كسر التوافق العكسي.
التغييرات في المكتبة القياسية (stdlib)
واصل مطورو JetBrains تحسين وتوسيع stdlib. إليك النقاط الرئيسية:
- تمت إضافة دوال جديدة للعمل مع المجموعات:
chunkedوwindowedتدعمان الآن التكرار الكسول (lazy iteration)؛ - تحسين أداء Sequence — أصبحت عمليات filter و map أسرع بنسبة تصل إلى 30%؛
- تحديث دوال العمل مع JSON (kotlinx.serialization): تحسين دعم تعدد الأشكال وتسلسل الفئات المختومة (sealed-classes).
تحسينات لمطوري Android
يتضمن Kotlin 2.1 إصلاحات تؤثر بشكل مباشر على مشاريع Android:
- توافق كامل مع Android Studio Meerkat و Hedgehog؛
- إصلاح أعطال نادرة عند استخدام Compose مع المُجمّع الجديد؛
- تحسين دعم R8/ProGuard — الآن يعمل التصغير (minification) بشكل أكثر دقة مع المكتبات متعددة المنصات.
كيفية التحديث
للانتقال إلى Kotlin 2.1، يكفي تغيير إصدار الإضافة في build.gradle.kts أو pom.xml:
id("org.jetbrains.kotlin.jvm") version "2.1.0"
بالنسبة لـ Maven — قم بتحديث إصدار kotlin-maven