كل ما تريد معرفته عن لغة البرمجة Kotlin



تابع قناة عالم الكمبيوتر علي التيليجرام


منذ أن أعلنت Google اعتماد Kotlin كلغة رسمية لي Android في مؤتمر I/O 2017 , تصدرت هذه اللغة الأخبار و الحديث , هذه الأخيرة التي تم تطويرها من قبل الشركة المعروفة في تطوير أدوات المبرمجين JetBrains في عام 2011 , حازت الآن على الاهتمام من مواقع وصفحات تكنولوجيا المعلومات. و بما أنني لست مختصا بلغات البرمجة الخاصة ببرمجة الأجهزة المحمولة فلم اكن قد سمعت أو بحث عنها من قبل , لهذا قررت البحث عنها ومعرفة اهم خصائصها التي جعلت من شركة عملاقة كشركة Google اعتمادها كلغة رسمية لنظام التشغيل الأكثر انتشار عالميا .



أولا مذا عن لغة Java :

حسنا في البداية لغة الجافا هي اللغة المستخدمة في تصميم وكتابة التطبيقات والألعاب أيضا ، أما لغة Kotlin فهي لغة برمجة مفتوحة المصدر من تطوير نفس الشركة التي تتعاون معها Google في تطوير منصة Android Studio وهي شركة JetBrains وهي متوافقة بشكل كامل مع حزمة تطوير جافا JDK ، وتتيح كتابة الشيفرة البرمجية بعدد أقل من الأسطر وبشكل أسرع وأكثر فعالية مقارنة مع لغة java , سنتعرف على هذه المميزات أكثر في الفقرة القادمة .

المهم هنا هو أنا Java و Kotlin يعملان على نفس بيئة العمل (JVM). هذا ليس كل ما في الأمر إنما يمكن أن يعمل كلاهما مع الآخر بشكل جيد . فقد اختبر البعض برمجيات تعمل على جافا مع إضافة برمجيات تعمل على كوتلين والعكس. وهذا يعني انه يمكنك عدم الاستغناء الكلي عن برمجياتك القديمة في جافا خاصة الكبيرة منها إنما إعادة بناء وتطوير إضافات عليها في لغة كوتلين .



لكن لماذا لغة جديدة ؟, السبب هو أن التطور السريع في عالم البرمجيات يعني دائما أن عمر اللغات الافتراضي قصير نسبيا فما تقدمه اللغة اليوم على انه حديث ويساهم في تطوير برمجيات افضل و بشكل أسرع , سيصبح بعد سنوات قليلة قديم و يسبب عبئ كبير على المبرمجين الذين يسعون دائما لتطوير برمجيات اكثر تفوقا وبسرعة اكبر وجهد اقل .



لنقارن الآن بين اللغتين حتى نفهم الاختلاف ، بالطبع يجب أن أذكر أولاً أن Kotlin ليست هنا لتحل محل Java ليس بشكل رسمي , فالدعم مستمر و أي كود يكتب Java سيعمل مع Kotlin والعكس صحيح , لكن اللبيب يفهم بالإشارة , فا Google ضاقت ذرعا من دعوات أوراكل التي لا تنتهي . أيضا و كما نعلم عمر لغة الجافا 22 عاماً، أنشأتها أوراكل Oracle لتكون متوافقة مع ما سبقها، مما يعني أنه على كل نسخة جديدة أن تدعم ميزات موجودة في النسخ التي سبقتها. ولذلك مع كل تحديث يصبح من الأصعب تضمين ميزات جديدة، ونتيجة لذلك يتزايد عدد الأكواد التي يطلب كتابتها كل مرة.

مقارنة بين Java و ما تحمله Kotlin من الجديد :

يبدو أن احد اكثر الأسباب التي يتداولها مبرمجوا لغة Kotlin هو أن لغة Kotlin تحتاج لكود أقل في تطوير البرمجيات , كما أنها قدمت بعض الأكواد الجاهزة والمبنية بشكل جيد لتسهيل البرمجة وإعداد برامج اكثر كفاءة. هذا بالإضافة لان لغة Kotlin أسهل بكثير لتعلمها من لغة Java و إن كل من يعرف لغة جافا يمكنه بسهولة وخلال فترة قصيرة جدا تعلم لغة كوتلين . فالأساس هنا هو الخوارزميات و المبادئ و المفاهيم البرمجية , يمكنك أن تفهم هذا أكثر بالرجوع إلى تعرف على الخوارزميات و على أهميتها في عالم البرمجة .



مع التأكيد بأن كلا اللغتين يعملان على نفس بيئة العمل وكلاهما ينتجان نفس الكود تقريبا عند عملية الترجمة ( Java bytecode) لذا لا يبدو أن Kotlin اسرع , و لكن يمكن القول أن Kotlin اعدت بعض البرمجيات الخاصة لتسريع عملية البرمجة بالإضافة لبنائها بشكل جيد , فهذا يعني ان البرمجيات المبنية على كوتلين تفادت الكثير من الاخطاء البرمجية والتي تؤثر على كفاءة واداء البرامج خاصة (Data classes).

تم بناء كوتلين لتتجاوز العديد من المشاكل التي كانت تواجه برمجيات جافا والتي كانت تسبب التوقف الفجائي للبرامج (crushes). فقد تم تفادي مشكلة (null references) والتي كانت تعاني منها العديد من برمجيات جافا. كما أن آليات البرمجة حديثة , كيف ذلك؟ :
  • توليفة برمجية كقيمة مرجعية ولا مبدا : إن سبق لك التعامل مع كود javascript فلا بد انك شاهدت استخدام التوليفات البرمجية (functions) كقيمة مرجعية (parameter) لتوليفة أخرى. هذا ممكن في جافا ولكن بطريقة طويلة وكود أكثر . وكما ذكرنا سابقا فإن Java في إصدارها الجديد , أضافت بعض المميزات مثل lambdas ولكنها للأسف لا تعمل في برمجة اندرويد حتى الآن وباستخدامك برمجة كوتلين يمكنك الاستفادة من هذه المميزات بسهولة.
  • توليفات إضافية : قد تحتاج احيانا لإضافة توليفة لنموذج (class) دون الحاجة لتوريثه. مثلا انت ترغب في إضافة توليفة جديدة على نموذج (String) لنسميها مثلا XYZ انظر كم هو سهل إضافتها في كوتلين وفي اي مكان في داخل الكود الخاص بك يمكنك إضافة
  • كود كوتلين :

StringExtensions.kt
fun String.XYZ(): String {
// … make the XYZ and return it
}
  • نموذج البيانات (Data classes) : كما ذكرت سابقا فإن Kotlin أعدت مجموعة من النماذج الجاهز والتي تساهم في تسريع عملية البرمجة واهم هذه النماذج , هو نموذج البيانات والذي من خلاله ستتمكن من إعداد نموذج متكامل من خصائص وتوليفات خاصة بتعديل القيمة وجلبها دون الحاجة لكتابة كل ذلك .



خلاصة :

تقدم لغة Kotlin حلول لمشاكل جافا المعروفة هذا بالإضافة لأنها أسهل ويمكن تعلمها بسرعة , و بما أنها تعمل على بيئة واحد مع جافا فإنه يمكنك استخدامها داخل كود جافا والعكس صحيح . لذا يمكن القول بأن Kotlin هي تطور طبيعي للغة جافا وهي المستقبل الجديد للبرمجة في اندرويد , كما انها خيار صحيح من قبل Google لاعتمادها كلغة رسمية. كما إن السنوات القادمة ستشهد تقدم سريع لهذه اللغة في سوق العمل حتى في العالم العربي. لذا حاول البدء في تعلمها سريعا خاصة إن كنت من طلاب الجامعات فكر باستخدام Kotlin بدلا من جافا فالعمر الافتراضي لجافا بشكلها الحالي قارب على الانتهاء. و في درس قادم قد أقدم لكم مجموعة من المراجع التي ستكون مفيد لك كبداية .

تعليقات