Kotlin
تُعدُّ لغة Kotlin لغة مبتكرةً حديثةً جمعت ما بين الميّزات الموجودة في لغات البرمجة الشهيرة (مثل لغة Java بشكل أساسيّ) وأضافت عليها ما يجعل منها لغةً أكثر قوةً وفاعليّةً، فهي لغة كائنيّة التوجه (OOP) تحرِص من خلال ميّزاتها على النواحي الأمانية في البرمجة مثل اعتمادها للنوع nullable ودوال lambdas والإضافات التي تتيحها على الأصناف دون إعادة بنائها كما أنها تدعم المجموعات (collections) والاستثناءات (exceptions)، وتُحسب لها نقطة قوّةٍ بأنها تتوافق مع بيئة JVM وبيئة Android (وهما البيئتان الأكثر انتشارًا في التطبيقات البرمجيّة)، كما يُتاح أمر كتابة الشيفرات فيها وتحويلها فيما بعد إلى بيئاتٍ برمجيّة أخرى (مثل JavaScript)، وتتوفّر لها العديد من الأدوات البرمجيّة سهلة الاستخدام والإضافات (Plugins) التي تدعمها بيئات العمل المختلفة.
بُنية لغة Kotlin
مشابهة لبنية لغة البرمجة Java بوصفها كائنيّة التوجه (OOP)، وبالتالي فإنها تعتمد أساسًا على وجود الأصناف (classes) التي تحتوي بدورها على الخاصّيّات (properties) والدوال (functions)، كما وتدعم Kotlin العلاقات فيما بينها مثل الوراثة (inheritance) من صنف أعلى أو التداخل فيما بينها (nesting classes)، وتمتاز بوجود مُحدِّدات الوصول (visibility modifiers) للتحكم بعمليات الوصول للبيانات المُخزَّنة، وكذلك فهي تعتمد في بُنيتها على مبدأ الحزم (packages) والمكتبات (libraries) التي تحتوي على الدوال المساعدة لدى الحاجة إليها، أمّا عن بنية التعليمات والأوامر البرمجيّة فهي -كمِثل لغات البرمجة الأخرى- تحتوي على التعليمات الشرطية (conditionals) والحلقات (loops) وأوامر التحكم بالتدفق (control flow) مثل العودة (return) والاستمرار بالحلقة (continue) أو الخروج منها (break).
توافق Kotlin مع البيئات الأخرى
استخدام Kotlin في تطوير تطبيقات الخادم (Server)
إذ تُستخدَم لغة Kotlin في تطوير تطبيقات الخادم Server ويمكن نشر التطبيقات المكتوبة بها ضمن أيّ مُضيف (host) يدعم تطبيقات Java للويب، وتستفيد من عدد كبير من منصات العمل مثل Spring و Vert.x وغيرها، وتمتاز بقابليتها للتوسّع.
استخدام Kotlin في تطوير تطبيقات Android
تُستخدَم لغة Kotlin في تطوير تطبيقات Android لقوتها في ناحية الأداء (performance) وصِغر حجم التخزين المستخدم لتطبيقاتها، كما وتقبل الإضافات (plugins) في بيئة Android مما يُسرِّع من عملية البرمجة والترجمة (compilation).
استخدام Kotlin في بيئة لغة البرمجة JavaScript
تمتاز لغة Kotlin بسهولة تحويل شيفراتها إلى ما يماثلها في JavaScript آخذة بالحسبان الحجم المثاليّ للتخزين وتحقيق نفس الفعاليّة إذ تتيح إمكانيّة التعامل مع عناصر DOM ومع الرسوميات بالاعتماد على WebGL.
البدء بلغة البرمجة Kotlin
بنية البرمجة في Kotlin
تعتمد أساسًا على الحزم (packages) والأصناف (classes) والدوال (functions) والمتحولات بنوعيها var (بقيمة متغيرة) و val (للقراءة فقط) والتعليقات (comments) التوضيحية التي تجعل البرنامج أسهل للقراءة، إضافةَ إلى التعابير الشرطية (conditionals) والحلقات (loops) والمجالات (ranges) والمجموعات (collections) والتحويل ما بين الأنواع (casting).
الاصطلاحات العامّة في اللغة
إذ يُصطلح ما بين مبرمجي Kotlin على بعض البُنى البرمجيّة واستخداماتها بنفس الهدف>
أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي Kotlin
وهي الأنماط المُتَّفق عليها لكتابة الشيفرات في Kotlin وتشمل طرائق التنظيم، وقواعد التسمية، وكيفية التنسيق؛ إضافةً إلى التعليقات التوثيقية.
أساسيات البرمجة في Kotlin
الأنواع الأساسية للبيانات
وهي تشمل الأعداد (Numbers)، والمحارف (Characters)، والقيم الثنائيّة (Booleans)، والمصفوفات (Arrays)، والسلاسل النصية (Strings)، وقيم السلاسل النصية (Literals)، وقوالب السلاسل النصية (String Templates) وغيرها.
الحزم (packages) واستيرادها
إذ يمكن استيراد (import) الحزم والاستفادة مما تحتويه من أصناف ودوال.
التحكم بالتدفق في سياق البرنامج
عبر التعابير الشرطية مثل if و when وكذلك الحلقات مثل for و while و do-while.
أوامر العودة والقفز
وهي الأوامر التي تنقل سياق البرنامج من موقعٍ لآخر مثل return أو break أو continue.
الأصناف والكائنات
الأصناف والوراثة
يُصرَّح عن الأصناف في لغة Kotlin وتُؤخذ نسخٌ عنها وهي ما يُعرف بالكائنات (objects) التي يكون من خلالها الوصول إلى الخاصّيّات والدوال الموجودة في الصنف، يحتوي الصنف على بانٍ رئيسيّ واحدٍ وبانٍ ثانوي أو أكثر، وقد ترتبط الأصناف فيما بينها بعلاقة الوراثة (inheritance) أو التداخل (nesting)، وقد تكون الأصناف من النوع المُجرَّد (abstract).
الخاصيات وحقول البيانات
تحتوي الخاصيات على البيانات ويكون الوصول إليها عبر getter و setter، وتدعم لغة Kotlin كذلك الحقول والخاصيات المساعدة، وتمتاز بأمر التهيئة اللاحقة (late initializing) وإعادة تعريف الخاصّيّات (overriding).
محددات الوصول
وهي المسؤولة عن تحديد آلية الوصول للخاصّيّات أو الدوال أو الأصناف وتشمل: النوع العام (public) والداخليّ (internal) والمحمي (protected) والخاصّ (private).
الإضافات
والتي تُضاف على الدوال أو الخاصيات وذلك لتجنب إعادة بنائها من جديد وهي منفصلة ستاتيكيًا، وقد تحدث كذلك بعض الإضافات على الكائنات المرافقة (companion objects).