المقارنة بين لغتيّ البرمجة Java و Kotlin
اذهب إلى التنقل
اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
بعض المواضيع في Java ومعالجتها في Kotlin
عالجت لغة Kotlin العديد من المشاكل الموجودة في Java وهي:
- التحكُّم بالمرجعيّات الفارغة (null references) عبر نظام الأنواع
- لا وجود للأنواع الخامّ (raw types)
- تُعدُّ المصفوفات في Kotlin ثابتة (invariant)
- للدوال (functions) في Kotlin أنواع مناسبة وهذا ما يتعارض مع التحويلات SAM في Java
- التنوّع في موقع الاستخدام (use-site variance) دون الحاجة إلى المحارف البديلة (wildcards)
- لا وجود للاستثناءات المُتحقَّق منها (checked exceptions) في Kotlin
ما تمتاز به Java ولا تدعمه Kotlin
- الاستثناءات المُتحقَّق منها (checked exceptions)
- الأنواع الأساسيّة التي لا تُعدُّ أصنافًا
- العناصر الستاتيكيّة (static members)
- الحقول غير الخاصّة (non-private fields)
- الأنواع البديلة (wildcard-types)
- المعامل الثلاثي
a ? b : c
ما تمتاز به Kotlin ولا تدعمه Java
- تعابير lambda والدوال المباشرة (inline functions) وسينتج عنهما سويةً بُنى مخصَّصة للتحكم عالية الأداء
- الدوال الإضافيّة (extension functions)
- أمان القيم الفارغة null
- التحويلات الذكيّة (smart casts)
- قوالب السلاسل النصيّة (string templates)
- الخاصّيّات (properties)
- البواني الأساسيّة (primary constructors)
- التعميم من الصنف الأول (first-class delegation)
- تخمين (inference) نوع للمتغيِّرات وأنواع الخاصّيّات
- نمط Singelton
- تغيّر موقع التصريح (declaration-site variance) والأنواع المُسقَطة (type projections)
- تعابير المجالات (range expressions)
- التحميل الزائد للمعاملات (operator overloading)
- الكائنات المرافقة (companion objects)
- أصناف البيانات (data classes)
- الواجهات المنفصلة للقراءة فقط (read-only) والمجموعات المتغيّرة (mutable collections)
- الروتينات المساعدة (coroutines)