عن Kotlin

هي لغة برمجة إبتكرتها شركة JetBrains صاحبة محرر الأكواد الشهر IntelliJ، ما يميز اللغة أنها لديها الكثير من مميزات لغات البرمجة الحديثة مثل Python، Swift حتى أنها تمتلك شبها كبيرا جدا بينها وبين Swift.

الرائع بخصوص Kotlin أنها متوافقة جدًا مع الجافا، وبإمكانك كتابة كود Kotlin جنبا إلى جنب مع كود الجافا. هذه الميزة فقط كفيلة بتشجيعك على تجربتها.

معظم لغات البرمجة تأتي كاستبدال للغة أو كحلول بديلة، متناسين كم الأكواد والمكتبات ومنصات العمل التي قامت عليها هذه اللغات، هذا الأمر ليس قائمًا مع كوتلن، كل ما كتب بالجافا سيعمل مع كوتلن والعكس.

اللغة موجودة من عام 2011، وكان لها تأثير كبير خاصة على مجتمع مطوريّ الأندرويد، حيث أن الكثير من مشاكل الجافا والكود المتكرر، قام مصمموا Kotlin على تلاشيها، على سبيل المثال التعامل مع مشكلة Null pointer، والتي تسمى مشكلة المليار دولار. كوتلن لديها عدة طرق للتعامل مع هذه المشكلة، أولها أنه غير مسموح لك بإمرار أي قيمة بـ Null، وإذا كنت مصمم على استخدامها فهناك طرق أخرى بحيث لا يتعطل التطبيق.

إعلان جوجل لدعم اللغة رسميا في تطوير تطبيقات أندرويد

البعض يظن أن جوجل فعلت ذلك بسبب أنها لا تريد الإعتماد على جافا، خاصة أنها لها سابقة مشكلة مع أوراكل بخصوص بعض حقوق الملكية في إستخدام المصدر البرمجي للجافا، لكن إذا كان فعلا هذا هو السبب فهل تذهب جوجل للغة برمجة لشركة أخرى أم تطور لغتها الخاصة؟ ليس منطقيا صحيح؟!

السبب الأقوى في إعتقادي ومن خلال ملاحظتي لمجمتع مطوري الأندرويد هو أن المجتمع نفسه أحبها، لدرجة أن هناك شركات وتطبيقات كبيرة بدأت بإستخدامها جزئيا أو كليا، مثل تطبيقات Trello، Uber، AirBnb وغيرها الكثير، ومتوقع أن تنتشر اللغة أكثر وأكثر إذ زالت حجة الكثير من المطورين -منهم أنا- بأن اللغة ليست مدعومة رسميا من جوجل.

لماذا أحبها مجتمع أندرويد؟

 سبب بسيط "الإنتاجية"، سأضرب لك مثالًا إذا كنت مبرمج جافا أو أندرويد دعني أسألك ماذا تفعل إذا كنت تريد المقارنة بين كائن وكائن آخر على أساس بعض خصائصه كالأسم والعمر؟ ستكتب بعض الكود، هذا الكود ستكتبه كل مرة تريد فعل هذه المهمة البسيطة.

كوتلن بإعتقادي هي طبقة من التجريد Abstraction لأشياء كثيرة وحلول لمشاكل متكررة في أمها العجوز جافا.

هل يجب أن تتعلمها؟

لن أجيب عليك إذا كنت مبرمج جافا :)

وجهة نظر أخرى؟

أخيرًا قبل الإعلان بيوم كنت أبحث قليلا عن بعض الآراء عن اللغة لأقرر هل سأتعلمها أو لا فكمتعلم ذاتي لازالت ثقتي مع الجافا غير مستقرة، أحيانا تشعر أنك فهمت الموضوع، وأحيانا لا، ربما أشهر هذه الموضوعات هو الـ Threading، ومن إطلاعي اتضح لي أنها مشكلة كثير من مبرمجي الجافا.

كما أن الإنتقال للغة أخرى هو استثمار لوقتك وجهدك ولا تدري هل هو القرار الصحيح أم لا، المهم أني عثرت بالصدفة على مقال لـ Uncle Bob خلاصته أنه لا يجب على المطوّر استخدام لغة تقوم بحل مشاكل سببها في وجهة نظره هو تجاهل الحل الأوضح والأشهر وهو الـ Testing. عنوان المقال كان "الطريق المظلم" :D

رابط المقال: http://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath.html

ماذا أفعل إذا كنت مطور أندرويد أو مبرمج جافا؟

لا تهلع! قم بتجربة اللغة، قم بكتابة بعض النماذج، واختبرها عن قرب، الأمر بسيط حتى انه يمكنك تجربتها من المتصفح.

https://try.kotlinlang.org/#/Examples/

هذا أيضا منشور كنت قد نشرته على لنكدإن لبعض المصادر والروابط المفيدة لتعلمها:

https://www.linkedin.com/hp/update/6270875353619791872

سلسلة باللغة العربية عن أساسيات كوتلن

http://www.hendiware.com/%d9%84%d8%ba%d8%a9-%d9%83%d9%88%d8%aa%d9%84%d9%8a%d9%86-%d8%a7%d9%84%d8%a3%d8%b3%d8%a7%d8%b3%d9%8a%d8%a7%d8%aa-%d8%a7%d9%84%d8%af%d8%b1%d8%b3-%d8%a7%d9%84%d8%a3%d9%88%d9%84-%d9%85%d9%82%d8%af%d9%85/