انا تعلمت برمجة الويب وكني لا اجد نفسي فيها او بمعني اصح لم احبها وانا مؤمن بان اعمل ما احب حتي انجح او اتقدم فية لكني احببت برمجة تطبيقات أندرويد ولكن وجدت لغتان شائعتان الجافا والكوتلن وبحثت علي الانترنت عن ايهما افضل وجدت هذا السؤال يتكرر للكثير من للناس ولكني لم اجد الاجابة الكاملة ولكن حسب فهمي انة اولا ليس المهم لغة البرمجة بل المهم هو المبرمج نفسة وثانيا ان لغة الجافا هي لغة قديمة وقوية وشهير ولكن وجد من مميزات الكوتلن انها سهلة واكودها قصير وهذة ميزة وعيب الميزة هي السهول والسرعة والعيب انها لا تتحكم بكل شيء لقصر اكوادها كما في الجافا والي الان انا ارجح الكوتلن فما تنصحني
ماذا اتعلم java vs Kotlin
أنا أنصح بالكوتلن لعدة أسباب:
1- الكوتلن اخترعت في اﻷساس للابتعاد عن مشاكل موجودة في الجافا
2- صارت الكوتلن لغة رسمية للأندرويد منذ فترة من قبل جوجل
3- ﻷن كل مكتبات الجافا يمكن استخدامها من كوتلن، قد يبدو لك ذلك غريباً ولكنه حقيقي ، أنا بنيت مشاريع وب ضخمة بالكوتلن واستخدمت الكثير الكثير من مكتبات الجافا دون مشاكل بل قد تبدو لك مكتبات الجافا وكأنها كتبت بالكوتلن حين تستعملها بمشروع كوتلن.
4- الفائدة الوحيدة من تعلم الجافا في رأيي هو احتمال استلام مشاريع أندرويد legacy أو احتمال العمل بشركة لم تعتمد الكوتلن بعد.
في برمجة تطبيقات الجوال لدينا نظامان رئيسيان هما اﻷندرويد وios وهناك ثلاثة طرق لبرمجة التطبيقات التي تستهدف النظامين:
1- ما يسمى native وهي الطريقة الرسمية التي تعلمك إياها شركة غوغل للأندرويد وشركة أبل للـios وفي هذه الطريقة تتعلم kotlin للأندرويد وswift للـios وبسبب اﻻختلاف الكبير بين التقنيات المستخدمة عند برمجة تطبيق أنت ستبرمج في الواقع تطبيقان هما للمستخدم تطبيق واحد ولكن بالنسبة لك تطبيقان منفصلان ﻷن الكودان يكاد لا يربطهما شيء.
هذه الطريقة تضمن أفضل performance كما تضمن الوصول المباشر لمقدرات النظام سواءٌ كان اﻷندرويد أم ios.
2- ما يسمى hybrid وهي طريقة تستخدم نفس تقنيات الوب HTML5-CSS-Javascript لتحويلها إلى تطبيق جوال يعمل على منصتي ios وandroid من أمثالها ionic وcordova وPhonegap ، مشكلة هذه الطريقة هي performance وشخصياً لا أنصح بها.
3- تقنيات تبرمج فيها التطبيق بكود واحد يستهدف كلاً من اﻷندرويد وios ويكون بسرعة قريبة من الـnative، ميزة هذه التقنيات تخفيف العبء على شركة البرمجيات فبدلاً من جلب فريقي تطوير واحد للأندرويد والثاني للـios نجلب فريقاً واحداً لتطوير تطبيقات الجوال.
أمثلة على هذه التقنيات React Native,Flutter وشخصياً أرى للـFlutter مستقبلاً واعداً
التعليقات