جافا مقابل Kotlin لنظام Android: آراء المطور

في استطلاعات Stack Overflow في عام 2018 ، وصف 45.3٪ من المشاركين Java بأنها لغة البرمجة الأكثر شعبية ، وفضل Kotlin فقط 4.5٪ من المطورين. ومع ذلك ، في مايو 2019 ، أعلنت Google أن Kotlin هي لغة البرمجة ذات الأولوية. لم تطالب الشركة بالتخلي عن C ++ و Java ، ولكن اندلعت النزاعات بين المبرمجين حتى أكثر سخونة.

لقد تعلم Netology من المطورين لغة البرمجة التي يستخدمونها وكيف يرون مستقبل Java و Kotlin.

"سيظل الخيط الرئيسي في جافا ، وسيتم استخدام Kotlin للتنمية السريعة"



دميتري كشلوف ، مبرمج رئيسي ، كيلي لحلول تكنولوجيا المعلومات

ما اللغات التي يعرفها؟ في البداية ، درست لغات تطوير الويب ، لكن في مرحلة ما أردت القيام بتطوير الهاتف المحمول أيضًا. لقد بدأت دراسة التطوير لنظام Android وأتقنت لغة Java عند الحد الأدنى الضروري حتى أتمكن من كتابة التطبيقات الأولى ، التي يتم تشغيلها على الهاتف ، والنشر في السوق. كان ذلك عندما ظهر Kotlin ولم يكن معروفًا لدى دائرة واسعة من المطورين.

الذي يستخدم. الآن عند تطوير تطبيقات المؤسسات ، يمكنني استخدام Java. تتوفر العديد من المكتبات له ، وهناك وحدات جاهزة. بالإضافة إلى ذلك ، يدعمه Android Studio كثيرًا بحيث يمكنك كتابة حرف واحد حرفيًا ، وسيتم كتابة الكود لك. انها مريحة جدا.

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

لماذا تفضل جافا. على ذلك ، يمكنك تقديم خدمات مجانية وطرق API الخاصة بك ومواقع الكتابة والخوادم وتطبيقات الأجهزة المحمولة. هذه في الأساس لغة عالمية يمكنك من خلالها القيام بعدد كبير من العمليات وتطوير تطبيقات مختلفة. له العديد من التطورات والمكتبات. وأيضًا - مجتمع كبير مستعد دائمًا للإجابة على الأسئلة والمساعدة.

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

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

"إذا كنت مبتدئًا وتريد العمل مع Android ، فتعلم Kotlin. خلاف ذلك ، سأختار Java "



Artem Pervushov ، أخصائي Android ATC مرخص ، مؤلف برنامج دورة Android Developer في Netology

لماذا تفضل جافا. بادئ ذي بدء ، تحتاج إلى فهم ما هو Kotlin حول. Kotlin هو أكثر حول السكر النحوي. هل أحتاج الكثير من السكر؟ ربما لا ، أنا معتاد بالفعل على قراءة تعليمات برمجية Java وعدم ارتكاب الأخطاء (تقريبًا). هل يجب على مبتدئ في البرمجة اختيار جافا أكثر تعقيدًا؟ ربما ليس كذلك.

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

حول مستقبل اللغات. ربما في المستقبل سوف تتولى Kotlin السيطرة على العالم ، أو ربما لا. "القبض على العالم" Go ، Python ، Ruby ، ​​JS ، <بديلاً ضروريًا> أقل شيوعًا بكثير مما قيل لنا من قبل عشاق هذه التقنيات. لذلك ، فإن نصيحتي هي - إذا كنت مبتدئًا وعقدت العزم على ربط مصيرك بـ Android - فتعلم Kotlin ، إنها مريحة وعصرية. خلاف ذلك ، أود أن أركز على جافا.

"يمكن لمطوري Kotlin استخدام أطر عمل Java والمكتبات وكتابة كود أكثر قابلية للفهم والبساطة."



Semyon Pilunts ، مطور أندرويد ، خبير في دورة Netology

ما اللغات التي يعرفها؟ حدث معرفتي بالبرمجة في المعهد ، لقد بدأت مع Pascal ، كما درست Basic و QBasic. بالفعل في نهاية سنوات دراستي ، بدأت الدراسة ج. لم أتوقف عند هذا الحد وبدأت في دراسة لغات أخرى - Javascript، VB 6.0، MS SQL، Java. سرعان ما أدرك أن Java كانت الأقرب لي ، لذلك قرر التركيز عليها.

بعد بضع سنوات ، عن طريق الصدفة ، بدأت في استخدام Java لإنشاء تطبيقات الجوال لنظام Android. في بعض الأحيان كان من الضروري استخدام Javascript و HTML و SQL في Android نفسه. معرفة لغات أخرى يساعد دائما.

الذي يستخدم. أنا أعمل حاليًا في كل من Java و Kotlin. حتى الآن ، لا يمكننا التخلي عن جافا تمامًا ، لكننا نتحرك تدريجياً.

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

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

حول مستقبل اللغات. أعتقد أنه في المستقبل القريب ، ستتمكن Kotlin من استبدال Java بالكامل تقريبًا. بالفعل ، يغطي السوق Android بنسبة 50٪ ، وهذا بعد 3 سنوات فقط من ظهوره. ومع ذلك ، تحتاج Java إلى معرفتها ، وبدونها ، سيكون من الصعب نقل الرمز إلى Kotlin. هنا ألاحظ أن Kotlin متوافق تمامًا مع Java ، أي أنه ليس من الضروري على الإطلاق إعادة كتابة التطبيق بالكامل على الفور. غالبا ما يكون أكثر ملاءمة للقيام بذلك تدريجيا.

وتطوير تطبيقات أندرويد ليس هو الاتجاه الوحيد لكوتلين. يدعم جافا سكريبت ، ويمكن للمبرمجين نقل الواجهة الأمامية إليها ، Kotlin شيء رائع لتطوير تطبيقات الخادم ، مما يتيح لك كتابة التعليمات البرمجية القصيرة والتعبيرية ، مع الحفاظ على التوافق التام مع المكدسات الحالية القائمة على تقنية Java. أضاف المبدعون أيضًا دعم Gradle بحيث يمكن للمطورين كتابة ملفات Gradle عليه. بنشاط هو تطوير Kotlin Native ، حيث يمكنك إنشاء تطبيقات iOS.

"Kotlin ليس أفضل من Java بشكل عام ، ولكنه أفضل من عالم Android"



إيلاز جيلازوف ، المؤسس المشارك لـ AIMS ، مؤلف دورة مطورين Kotlin في علم Netology

ما اللغات التي يعرفها؟ في البداية ، تعلمت عدة لغات حسب الحاجة: Assembler ، C / C ++ ، ثم Java ، JS ، PHP ، Python. منذ أن عملت وأعمل في مجال أمن المعلومات ، لا أستطيع التوقف بلغة واحدة.

الذي يستخدم. الآن أختار الأدوات حسب مهام العميل وتفضيلاته. للخلفية - Java / Kotlin ، للأشياء خفيفة الوزن بدون الكثير من الدمج - Go / NodeJS ، للواجهة الأمامية - أطر JS / TypeScript + ، لأشياء النظام - C ++ / Go. بمعنى ، لا أراعي التفضيلات الشخصية ، ولكن أتقدم من مهمة وقدرات اللغة ونظامها البيئي.

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

على Android ، اختيار Kotlin بدلاً من Java أمر واضح. في عالم الخلفية ، وضع Kotlin أضعف بكثير ، على الرغم من أنه حتى هناك يشق طريقه. يشتمل Spring Spring (الذي يعتبر بالنسبة للكثيرين هو المعيار في الخلفية) على شرائح Kotlin غير متوفرة لجافا. هذا بالفعل يقول الكثير. في الخلفية الكبيرة والمعقدة ، ما زلنا نعمل في Java ، على الرغم من أننا نستخدم Kotlin في بعض الأماكن. في حالة بنية خدمات microservice ، حيث لا تتطلب خدمة microservice محددة عددًا كبيرًا من عمليات الدمج ، تشعر Kotlin بأنها رائعة.

Kotlin ليس أفضل من Java بشكل عام ، ولكنه أفضل من عالم Android. على الرغم من إمكانية مناقشة هذا الأمر ، إلا أن كل ذلك يعتمد على المعايير التي نقيم بها.

على المواجهة ومستقبل اللغات. تتم ملاحظة المواجهة بين المطورين على Kotlin و Java في بعض الأحيان في المشروعات التي لا يوجد فيها اتفاق مشترك واستخدام اللغتين. وهناك متعصبون يؤمنون باللغة الصحيحة الوحيدة. خلاف ذلك ، كل شيء أكثر أو أقل سلاسة ، على الرغم من استمرار الخشونة في قضايا التكامل. إذا كنت تريد أن تصبح محترفًا على نظام Android ، فسيتعين عليك معرفة اللغتين. على أي حال ، يجدر التعود على حقيقة أنه يتوجب عليك أن تتعلم باستمرار اللغات والمكتبات والأُطر والأفكار والأساليب الجديدة.

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

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

في المستقبل القريب ، لا أعتقد أن Kotlin ستحل محل Java. بدلاً من ذلك ، ستكون قادرًا على التعايش مع Java ، حيث كانت موجهة أصلاً إلى هذا. نأمل ألا تتم إعادة كتابة معظم مكتبات Java الشائعة الحالية في Kotlin. ولكن يمكنك الكتابة في Kotlin (بعد فهم الفروق الدقيقة في تكامل Kotlin <-> Java ، على سبيل المثال ، الانعكاس وكل المآزق) واستخدام المكتبات المكتوبة بلغة Java.

"الآن لا أحد يبحث عن مطور لديه معرفة بـ Java أو Kotlin فقط. يجب أن تكون متخصصًا عالميًا "



ديمتري جوردين ، مطور أندرويد في RoadAR

عن المواجهة. من أجل عدم توليد الديماغوجية وعدم الاعتماد على المشاعر الشخصية ، دعونا ننظر إلى اللاعبين الرئيسيين في السوق. أولاً ، تعترف Google بأن Kotlin هي لغة التطوير الرئيسية لنظام Android. ثانياً ، هكذا تبدو الوظائف الشاغرة على HH.ru من أفضل الشركات:

  • Tinkoff - "ميزة إضافية هامة: خبرة في تطوير التطبيقات على Kotlin" ؛
  • Yandex - "مرحبًا: تجربة التطوير في Kotlin" ؛
  • Redmadrobot - "مرغوب فيه: تجربة تطوير Kotlin" ؛
  • حتى "Russian Post" - "نتوقع المعرفة والكفاءات التالية منك: معرفة مكدس تقنية SDK لنظام Android ، Kotlin / Java".

عن اختيار اللغة. تحتاج إلى معرفة اللغتين. من المستحيل معرفة كوتلين وعدم معرفة جافا. قد يجد الاتحاد الممل خطأً ويلاحظ أن هناك Kotlin Native غير مرتبطة بـ Java. لكننا نتحدث عن تطوير Android ، مما يعني أن وقت تشغيل Dalvik / ART. لذلك ، فإن جميع أصحاب العمل الذين يكتبون أنهم يبحثون عن مطور على Kotlin يبحثون بالفعل عن اللغتين.

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

من المحررين


أخذنا في الاعتبار الوضع الحالي مع لغات البرمجة وآراء المطورين أنفسهم - نحن نعلم Java و Kotlin في الدورة التدريبية " Android Developer from scratch ". بفضل هذا ، يمكن للطلاب اختيار اللغة التي ستبقى في المستقبل ، أو استخدام اللغتين.

Source: https://habr.com/ru/post/ar461877/


All Articles