25

بعض الملاحظات على إعلان جوجل لدعم لغة Kotlin

عن 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/...

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

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

https://try.kotlinlang.org/...

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

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

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

wgh أضف ردا

انا لم اكن احب كوتلين ابداً، خصوصاً انها مشابهة لسويفت،

لكن في احد المشاريع قررت استخدام كوتلين لتطوير مكون التواصل مع ال Api وكانت مذهلة في الحقيقة، ووفرت علي الكثير من الوقت والجهد.

ماذا تقصد

أنه لا يجب على المطوّر استخدام لغة تقوم بحل مشاكل سببها في وجهة نظره هو تجاهل الحل الأوضح والأشهر وهو الـ Testing

لا اعتقد ان السؤال موجه لي @mohamed ibrahim

KernelCode أضف ردا

كنت اتمنى ان تشرح لنا اكثر ... جربت كوتلين واعجبتني خصوصاً خاصيه الـ ؟ .... تعرف :)

والبورتنج للجافاسكربت هل ستوفر لي الوقت برائيك ؟!

همم تقصد اشرح عن اللغة ؟ ام عن تجربتي بشكل عام ؟

استخدم عادةً Retrofit وهي اسهل واسرع(اكثر انتاجية) شيئ يمكن ان تستخدمه في الاندرويد، لكن وجدت khttp المطورة بلغة كوتلين اسهل واسرع.

اكثر مشكلة واجهتني هي دعم بيئة التطوير لها، مع انها مطورة من قبل شركة Jetbrain وهو البيئة التطويرية المفضلة لدي، لكن شعرت ان دعمه للجافا افضل بكثييير من كوتلين، حيث كان علي الرجوع للتوثيق لاتذكر كتابة بعض الامور التي يعجز عنها ال IDE في حين انه بلجافا يقوم بها بلمح البصر، لذلك احيانا كنت اكتبها بلجافا واجعله يقوم بتحويلها الى كوتلين.

كما اني بشكل عام لا احب اللغات التي تتشابه مع جافا سكربت، ككوتلين او سويفت، انما افضل المدرسة القديمة من اللغات.

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

wgh أضف ردا

والبورتنج للجافاسكربت هل ستوفر لي الوقت برائيك ؟!

لو كنت مكانك فسأستخدم كوتلين مع Vaadin لكتابة الفرونت اند، الا اذ كان هدفك من الجافاسكربت الناتجة ليس المتصفح، بل شيئ مثل nodeJS.

الامر الذي انتظره بشغف هو دعمها لل IOS

الامر الذي انتظره بشغف هو دعمها لل IOS

الى الان كل المطورين يتحدثون عنها في كل مكان .. يبدو لي ان الحمله الاعلانيه لها كانت كبييره الى الان اعتقد انها جيده دعمها للكلاسات رائع .. سهله وتدعم الانواع افضل من الجافاسكربت ! .. اذا دعمت ال IOS ساستخدمها مباشره في تطوير مشروعي القادم !! بدون تردد :D

كما سبق وأن ذكرت هذه اللغة مدعومة من مجتمعي الجافا والأندرويد بصورة كبيرة، وتوقع أن مستقبل هذه اللغة هو دعم معظم المنصات فهم يعملون على مشروع يسمى Kotlin Native، وهذا ما صرح به رئيس الفريق المصمم للغة. هي الآن تدعم بالطبع جافا والآن الأندرويد والجافا سكربت.

أنا لست مبرمجا بعد، هل أتعلمها أم أتعلم الجافا أولا؟

توجد مدرستان لإجابة هذا السؤال

  • من يريد أن يتعلم أصول الأشياء : تعلم الجافا

  • من يريد أن يتعلم الأداة ليبدأ بالبناء : تعلم كوتلن

لكن هل ستتأثر جافا بهذه اللغة أم سيعملان الاثنان بدون أن تؤثر واحدة على الأخرى؟

اللغتان موجودتان، أحدهما حديثة والثانية تتطور. لكن إجابة على سؤالك لا أدري فالأمر تتحكم فيه قرارات شركات وقبول المجتمعات البرمجية للأمر أو مقاومته..

ماذا أفعل الآن ؟! :"D

أخشى أن أتعلم جافا خلال سنتان وبعدها أجد أن كوتلين سبقتها!

تعلم أي لغة طالما أنك في البداية، كنت مكانك قبل ما يقارب العامين، لن تعرف ما يناسبك حتى تبدأ وتمضي بعض الوقت مع اللغة التي تعلمتها

سأبدأ في الجافا، والله المستعان :")

سأترك هذه الملاحظة كتعليق حيث لا أدري ما الأسباب ورائها:

 جمع من المطورين استغرب هذه الحركة من جوجل حيث أنهم في أندرويد ستوديو الإصدار 2.4 قاموا بدعم مميزات جافا 8 وهي مميزات رائعة الحقيقة تجعل من جافا لغة متطورة وحديثة، يمكنك معرفة أكثر عنها من هنا

 

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

شكراً على هذا المقال الرائع اخي الكريم هل تسمح لي بنسخ المقال والافاده بها بموقع اخرى

أولًا شكرًا لاستئذانك فقليل من يفعل ذلك، ثانيًا لا أسمح :) ، يمكنك نشر رابط IO حيثما شئت.

شكرا استاذ محمد ابراهيم

هل من مصادر لتعلمها؟؟

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

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

شكرا لك

تحول رائع، نتمنى المزيد من التطور والابتكارات العربية بواسطتها

هذه قائمة بأفضل دورات كوتلين :

السلام عليكم

مالفرق التكني في جافا اذا كانت مدعومة من جوجل وجافا لذا لم تكن مدعومة