الدليل الشامل للبدأ في لغة البرمجة كوتلين

{مرحبا بكم في أول موضوع لنا على موقع تعلم كوتلين بالعربية أول شيء يستفسر عنه الشخص الذي يسمع عن كوتلين هو ؟ ما هي كوتلين و بعدها ستأتي مجموعة من الأسئلة بعدها و هذا هو ما يدور حوله  موضوع اليوم حيث ساحاول الإجابة على اكبر عدد ممكن من الأسئلة العامة المتعلقة بكوتلين


تنبيه : اذا لم تكن مبرمج جافا أو على الأقل لديك خبرة برمجية سابقة يمكنك تجاهل كل المصطلحات الجديدة هنا فقط ركز على نقاط القوة .

{قبل ان نبدأ هذا الموقع هو عبارة عن موقع يقدم دروس و دورات بالإضافة لمقالات منوعة في لغة البرمجة كوتلين و برمجة تطبيقات أندرويد بشكل خاص}

ماهي كوتلين ؟
كوتلين هي لغة برمجة بدأت فكرتها سنة 2010  من طرف فريق برمجي في شركة جيت براين و التي تقدم الكثير من الأدوات و بيئات التطوير المتكاملة و من اشهرها inellij IDEA   وهدف هذه اللغة هو تعويض  لغة جافا و المصاعب الموجودة فيها . لم تكن لغة واسعة الصيت الى بعد اعلان شركة قوقل اعتبار لغة كوتلين لغة رسمية لتطوير تطبيقات اندرويد و كان هذا قبل اشهر فقط و تلك الفترة الصغيرة جدا أوصلت اللغة الى مراكز متقدمة مع اللغات البرمجية الأخرى
ماذا احتاج للبدأ في البرمجة بكوتلين ؟
كوتلين مثل الجاف و السكالا و لغات أخرى كلها تشترك في عنصر واحد و هو JVM  فهذه التطبيقات تحتاج الى توفر الجافا في المنصة  التي تريد تشغيل البرنامج عليها  و JVM هو اختصار Java virtual Machine  و يمكنك تصور هذا الشيء على أنه جاهز وهمي و البرنامج سيشتغل على هذا الجهاز . اما بالنسبة لك كمطور تحتاج شيء إضافي لكتابة البرامج بكوتلين و هو JDK  لكن بما أنك ستقوم بعمل البرامج و تجربتها فتحميل ال JDK  سيكون كافي جدا لانه يحتوي بدوره على JRE  و الذي هو الأخر يتضمن داخله JVM  و هذه الصور لتوضيح العلاقة بين العناصر الثلاثة
الملخص :
·      للبرمجة بلغة كوتلين تحتاج JDK
·      لتشغيل برنامجك على جهاز ما تحتاج JRE

العلاقة بين JVM , JRE , JDK


بيئة التطوير المناسبة :
و في الأخير تحتاج الى أداة لكتابة و تحرير الكود و ترجمته  و يوجد العديد من الأدوات المجانية و لا أريد أن اجعلك تتوه و اقترح عليك اختيار بيئة التطوير الرسمية من شركة جت براين و هو intellij IDEA  حيث توجد نسخة مجانية تسمى community edition  و هي التي سترافقنا في مشوار تعلم الكوتلين على هذه المدونة



لمذا كوتلين ؟ هل كوتلين أفضل من الجافا ؟


كما يعلم البعض منكم فان لغة جافا تحتل المراكز الأولى في أكثر لغات البرمجة انتشارا فهي متعددة الاستخدامات و لديها مجتمع برمجي كبير جدا لكن مع ذالك يعاني مبرمجوا الجافا من العديد من المشاكل مثل مشلكة Null safety  حيث دائما يجب علهيم التحقق من المدخل إذا كان يؤشر إلى قيمة محددة أو لا  . كوتلين ليست لغة برمجية بدون هدف و لم تصل الى ما وصلت اليه من العدم بل بسبب الخصائص التي توفرها و دعوني احصرها في بضع نقاط :
متوافقة مع الجافا : يمكننا أن نصف العلاقة أيضا بالتكامل و ليس التوافق فقط ,حيث ان كل مكتبات الجافا و اطر عملها يمكن استخدمها في كوتلين و العكس أيضا و تتوفر في اغلب بيئات التطوير الداعمة لكوتلين خاصية تحويل كود جافا الى كوتلين بكل سهولة و بدون أخطاء   و بالتالي هذه الميزة تعتبر بالنسبة لي هي راس مال لغة كوتلين . و هذه النقطة بالذات معناها أنه يمكنك الإستفادة من خبرتك في الجافا بشكل رهيب و اذا بحثت عن حل مشكلة ما و كان الحل بالجافا ففهم الأمر سيكون سهل عليك
تجربة برمجية أفضل : و طبعا كوتلين جائت بتركيب جمل(Syntax)  جديد لكنه ليس ببعيد عن لغات البرمجة من عائلة السي { لغة الجافا من عائلة السي أيضا } مع ذالك فهو محسن جدا و يعتبر الاسهل في القرائة مثلا حذف النقطة و الفاصلة التي تاتي في نهاية كل أمر برمجي هذا شيء بسيط لكنه سيجعل الكود اكثر قابلية للقرائة
و هذا هو أول برنامج بلغة كوتلين { برنامج مرحبا بالعالم }

حل مشاكل كانت موجودة في الجافا : عندما تسأل شخص خبير في كوتلين او في جافا و يعرف كوتلين اول شيء سيذكره لك هو حل مشكلة المتغير الفارغ او المتغير الذي لا يشير الى شيء و هو مشكلة كثيرة الحدوث في برامج الجافا , معضم لغات البرمجة الحديثة مثل سويفت حلت المشكلة بطريقة ما و في الكوتلين تقوم بااضفة علامة استفاهم أمام تعريف المتغير لكي تجبر المترجم {Compiler}  على قبول قيمة NULL  في المتغير
الدعم : كوتلين لم تاتي من العدم و هي ليست مشروع تخرج لطالب علوم الحاسب { ليس المقصد هو التقليل من مشروع الطالب او التخصص بل ان الطالب لا يوجد له دعم } بل هي من شركة  ذات سمعة في السوق و الأفضل من ذالك هو دعم جوجل لها  و بالتالي توقع منها الأفضل فقط خاصة بالنسبة لبرمجة تطبيقات أندرويد

الخصائص التقنية للغة كوتلين :

لغة برمجة كائنية التوجه : مثل معضم لغات البرمجة الحديثة فهي تدعم نموذج البرجمة الكائنية التوجه و كل المفاهيم المندرجة تحته مثل الكلاسات و الكائنات و الخصائص و الوراثة . لكن ستجد اختلافات بسيطة إذا كنت مبرمج جافا فمثلا لايوجد مفهوم الحقول بل يوجد خصائص لا تحتاج إلى Setters  و Getters  بل يمكنك الوصول إلى الخاصية و تغير القمية أو الحصول عليها لكن في هذه النقطة بالذات يوجد مفهوم جديد هو backing field هذا ليس المفهوم الوحيد الجديد لكنها كلها تصب في مصلحة المبرمج و تقلل عليه من كتابة الكود. و{ أيضا هي لغة برمجة إجرائية }
Extension functions
باستخدام هذه الميزة يمكنك إضافة دوال جديدة إلى كلاس بدون ان يكون لديك وصول إلى اكلود سورس الخاص به و في لغات برمجة أخرى يسمى هذا المفهوم بالكلاس هلبر Class Helper  
 Lambdas
يمكنك أيضا ان تسميها بالوضائف المجهولة anonymous methods  حيث تعمل دالة بدون اسم و يمكنك كتابة الأوامر فقط لما تحتاجها و هي تتغير حسب الأمر الذي تريد ان تقوم به فليست مثل تعريف دالة و استدعائها في اكثر من مكان . على العموم سنناقش هذا المفهوم جيدا مع الأمثلة
خصائص و ميزات أخرى سنتعلم عنها :
Nested classes , Data Classes , Enum classes , Sealed classes , Coroutines , Generics و Null safety

 بالطبع هذا المقال كان لوصف ماهي الكوتلين و ماهي الخصائص التي تعطيها لك لم اذكر كل الخصائص و لم أشرح باستخدام الأمثلة و هذا نتركه لموضوع قادم }




الكاتب :

رؤوف رحيش من الجزائر مهتم بمختلف لغات البرمجة و كل ما يتلق بعلوم الحاسب

انت في أقدم موضوع


الإبتساماتإخفاء