لماذا عليك الاتجاه إلى البرمجة باستخدام Kotlin؟
أعلنت شركة غوغل في مؤتمر I/O 2017 عن بدء دعمها للغة البرمجة كوتلن Kotlin لتطوير تطبيقات الأندرويد، وسيتم تضمينها في نسخة برنامج Android Studio 3.0 الجديدة، ولن تحتاج لإعدادات إضافية للتثبيت
تعد جافا وكوتلن من أشهر لغات البرمجة التي تستخدمها غوغل لتطوير تطبيقات الأندرويد. توجد كوتلن منذ عام 2011 حيث ظهرت كلغة جديدة ل Java Virtual Machine، وقد طورها فريق من المبرمجين من سان بطرسبرغ يدعى Jet Brains.
أطلق الفريق أول نسخة مستقرة من كوتلن العام الماضي Kotlin 1.0، ومنذ ذلك الوقت أصدروا التحديث الجديد kotlin 1.1 في مطلع آذار الماضي، وسرعان ما بدأ العالم بالحديث عنها، وكذلك أحبها المجتمع البرمجي! يتلقى الفريق أي اقتراحات بشأن اللغة ويعتمدون عليها أثناء التطوير، وكذلك هي لغة مفتوحة المصدر Open sourced on Github، وبالطبع كمبرمج هذا أمر رائع بالنسبة لك!
لنقارن الآن بينها وبين الجافا، بالطبع يجب أن نوضح أولًا أنّ كوتلن ليست هنا لتحل محل الجافا على الإطلاق، أي كود يكتب بالجافا سيعمل مع كوتلن والعكس صحيح!
تتطلب كوتلن أسطر أكواد أقل
أقل بحوالي 20%. كما نعلم عمر لغة الجافا 22 عامًا، أنشأتها أوراكل Oracle لتكون متوافقة مع ما سبقها، مما يعني أنّه على كل نسخة جديدة أن تدعم ميزات موجودة في النسخ التي سبقتها، ولذلك مع كل تحديث يصبح من الأصعب تضمين ميزات جديدة، ونتيجة لذلك يتزايد عدد الأكواد التي يطلب كتابتها كل مرة.
وعلى النقيض تمامًا، بنيت كوتلن من الصفر، مما يعني غياب بنية الطبقات المكدسة فوق بعضها.
تحدث انهيارات أقل مع كوتلن
ل JVM الخاصة بكوتلن مشاكل أقل مقارنة مع ما يدعى خطأ المليار دولار “one billion dollar mistake” – أي مشكلة NullPointerExeption – التي يمكن تفاديها هنا. توجد هذه المشكلة في جميع لغات البرمجة، ولكن تختلف طرق التعامل معها. على سبيل المثال، في لغة جافا عليك أن تتحقق يدويًا إذا كان الرابط يساوي null أم لا، وإذا أخطأت، مفاجأة لقد انهار البرنامج! أمّا في كوتلن فيتم ضبط جميع الأغراض object إلى Null بالإضافة للتحقق التلقائي لاستثناء NullPointer، لضمان عمل الكود بشكل سليم من دونه.
توفر عليك كوتلن الكثير من الوقت!
أكواد أقل تضمن لك أخطاء برمجية أقل، وبالتالي صرف وقت أقل على عملية التكويد، وعادةً ما يحسب أي فريق لتطوير البرمجيات الكلفة الكلية للمشروع وفقًا لعدد ساعات التكويد.
إمكانية التشغيل المتداخل Interop
ربما تتساءل كيف سيؤثر هذا على الكود الذي قمت بكتابته؟ لا تقلق فكما ذكرت سابقًا كوتلن ليست هنا لتحل محل الجافا، بل هما متوافقتان تمامًا. مما يعني أنّه يمكنك كتابة جزء من الكود باستخدام الجافا والباقي باستخدام كوتلن وسيعملان معًا دون مشاكل.
بالإضافة إلى وجود أداة في برنامج Android Studio تقوم “بترجمة” الجافا إلى كوتلن، وهي تعمل بشكل جيد في الغالب، أي تعطيك لمحة على ما تبدو عليه توابع method الجافا بلغة كوتلن.
المجتمع
لا يمكننا إنكار عظمة وروعة لغة الجافا، فعدد مستخدميها كبير جدًا ومجال دوراتها التعليمية واسع، بالإضافة لإمكانية إيجاد الحلول لجميع المشاكل أليس كذلك؟
ولكن تكمن مشكلتها في كونها مغلفة، فنادرًا ما يتأثر تطويرها بحاجة مطوري الجافا، ولكن كوتلن على عكسها تمامًا فكما ذكرت سابقًا يقوم الفريق بأخذ الاقتراحات بعين الاعتبار والتطوير على أساسها، وعلاوة على ذلك يوجد فريق Kotlin slack المؤلف من مجموعة من المطورين المتحمسين للمساعدة في حل أي مشكلة.
التطبيقات المحلية
وهذا إنجاز يعمل الفريق على تحقيقه، مع فكرة تشغيل أكواد كوتلن على عدة منصّات platforms، من دون الحاجة إلى ترجمتها إلى JVM، مما يجعلها أكثر سرعة ولا تحتاج إلى لغة جافا، ومن هذه المنصّات الويب Web ،ios، وتطوير الألعاب.
وهذه الإجابة على بعض الأسئلة الشائعة حول كوتلن بشكل عام:
ما هي أدوات البناء التي تدعمها كوتلن؟
بالإضافة إلى JVM، تتضمن الأدوات الرئيسية Gradle ،Maven ،Ant، وKobalt. بالإضافة للأدوات المتوفر للجافا سكربت JavaScript.
هل تستهدف كوتلن جافا 6 فقط؟
لا. يمكنك الاختيار بين بايت كود bytecode جافا6 وجافا8، وقد يتم إنشاء المزيد من البايتكود لإصدارات أحدث للمنصة.
أين يمكنك أن تتعلم أكثر عن كوتلن؟
من أفضل المواقع لتتعلمها هو https://kotlinlang.org. من هنا يمكنك تحميل الكومبايلر “المترجم”، أو أن تجربها مباشرةً، وكذلك الحصول على المراجع والدورات التدريبية.
هل تتوفر أي كتب عن كوتلن؟
بالطبع، من ضمنها Kotlin in Action من تأليف أعضاء الفريق ديمتري جيميروف Dmitry Jemerov، وسفتلانا إساكوفا Svetlana Isakova، وكذلك كتاب Kotlin for Android Developers لمطوري الأندرويد.
هل يوجد أي مؤتمرات مستقبلية لكوتلن؟
أجل، المؤتمر الرسمي الأول سيكون في سان فرانسيسكو بتاريخ 2-3 نوفمبر 2017، وكذلك يتم تغطيتها في عدة مؤتمرات في أنحاء العالم، ويمكنك الاطلاع على قائمة الأحداث القادمة على الرابط upcoming talks on the web site.
في الختام، يبقى السؤال: هل يجب أن تنتقل إلى استخدام كوتلن كليًا؟
بالطبع الإجابة تعتمد على فريق المبرمجين الذي تعمل معه ومتطلبات العمل، ومدى صعوبة الانتقال من لغة إلى أخرى. لكن فريق Jet Brains قد قام بابتكار محول بين كوتلن وجافا الذي قد يسهل عملية الانتقال ما بين اللغتين، ولكن يمكن أن تحدث بعض الأخطاء خلال عملية التحويل لذلك يجب مراقبة بعض العمليات وربما ضبطها بشكل يدوي، وكذلك قد لا تتحول بعض المتغيرات والتوابع أيضًا!
ولا تنس أنّ إمكانية الانتقال إلى لغة أخرى تعتمد على ضخامة مشروعك. الخيار الأفضل هو أن تبدأ بالعمل مع مهندسين جدد يستخدمون نفس التقنية، واللغات التي عمل عليها أصحاب المشروع السابقين. ولكن عندما يكون التغيير حتميًا، بالطبع ننصح بما هو جديد… وهنا نقصد اختيار الكوتلن على الجافا.