the difference between java and kotlin

Kotlin هي لغة برمجة “براغماتية” مكتوبة بشكل ثابت للأغراض العامة ومفتوحة المصدر، ومصممة بشكل أساسي لـ (Java Virtual Machine) و (Android) الذي يجمع بين ميزات البرمجة الموجهة للكائنات و البرمجة الوظيفية. وهي تركز على التشغيل البيني والسلامة والوضوح ودعم الأدوات.
يمثل (Kotlin) كسب للوقت للمطورين باعتماد اختصارات اكثر. هذه اللغة تجعل من الممكن كتابة رموز أقل وتجنب التكرار. ويمكن تجميعها في برنامج التشفير (Low Level Virtual Machine).

نشأت لغة (Kotlin) في (JetBrains)، بواسطة الشركة التي تقف وراء تطوير (IntelliJ IDEA)، في عام 2010، وهي مفتوحة المصدر منذ عام 2012. يضم فريق (Kotlin) حاليًا أكثر من 90 عضوًا بدوام كامل من (JetBrains) ، ويضم مشروع (Kotlin) على (GitHub) أكثر من 300 مساهم. تستخدم (JetBrains) لغة (Kotlin) في العديد من منتجاتها بما في ذلك IntelliJ IDEA.
من نواح كثيرة ، يحل (Kotlin) محل (Java). إذا لم يكن متوافقًا مع بناء جملة (Java) ، فإنه قابل للتشغيل البيني مع التعليمات البرمجية والمكتبات الخاصة به. لديها أيضًا مكتباتها الخاصة التي تم إنشاؤها خلال التطورات الأولى لمجتمعها باستخدام واجهة برمجة (API Android Apps).

the difference between java and kotlin

في لغة (Java) تؤدي وفرة التكرار إلى إنتاج رمز مفصل وبالتالي أطول. أما لغة (Kotlin) فهي أكثر حداثة و مبسطة، يسهل الوصول إليها للمبتدئين. وتهدف إلى تصدير كود نظيف وعملي، بتجنب الكود “القياسي” المتكرر. كما تتمتع بأمان ضد المراجع الخالية ، مما يزيل بشكل فعال أخطاء استثناءات المؤشر الفارغ. مثلا ليس هناك جدوى من إدخال فاصلة منقوطة في نهاية كل سطر، ولكن إذا كان المطور يستخدمها روتينيًا، فإن (Kotlin) يقبلها. تعمل الوظائف الأخرى على تبسيط وتقليل الشفرة اللازمة لتحقيق الهدف النهائي.
في هذا المثال نلاحظ أن التكرار الطائش و المتأصل في إنشاء متغيرات (Java) قد اختفى في لغة (Kotlin).
تعلن الكلمة الأساسية (val) خاصية للقراءة فقط أو متغير محلي. وبالمثل ، فإن الكلمة (var) تختلف عن خاصية قابلة للتغيير أو متغير محلي.
ومع ذلك ، بالنسبة ل (Kotlin) يمكن استخدام الكلمات الأساسية (val) و (var) فقط عندما يمكن الاستدلال على النوع. وبالتالي يبدو أن الاستدلال النوعي يتحسن مع كل إصدار من (Kotlin).
لغة (Kotlin) لديها ميراث واحد من فئة (superclass)، وجميع (فئات Kotlin) لها فئة افتراضية (superclass Any)، وهي ليست نفس فئة (Java) الأساسية (java.lang.Object). أي يحتوي على ثلاث وظائف أعضاء محددة مسبقًا فقط: ( ()equals), ( ()hashCode) and (toString ()).

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

(Kotlin) هي لغة واضحة وموجزة، تجعل الرمز أكثر قابلية للقراءة وسهل الصيانة.
على سبيل المثال ، قمنا بتحويل تطبيق (Java) إلى (Kotlin) فانخفض العدد الإجمالي للطرق بنسبة 10٪ وعدد أسطر التعليمات البرمجية بنسبة 30 ٪ ”

لغة (Kotlin) متوافقة تمامًا مع (Java) (من الاصدار 6 إلى 9) منذ (Kotlin 1.2) ، سواء كانت اللغة نفسها أو الأدوات أو الأطر المرتبطة بها.
ومع ذلك كن حذرا، إذا كانت اللغتان يمكن أن تتعايشا في نفس المشروع، فستظل اللغتان متميزتين وسيتطلب تعلم لغة (Kotlin) وكذلك التبديل بين اللغتين بالضرورة وقتًا كبيرًا لتطوير المهارات.

على الرغم من أن (Kotlin) حديثه إلى حد ما ، يمكن اعتبارها لغة ناضجة ، إلا أنها تدعم بالفعل (IDEs) الرئيسية (IntelliJ و Eclipse و NetBeans و Android Studio). بالإضافة إلى ذلك ، كان طرح الإصدار 1.0 أيضًا فرصة لـ (JetBrains) للإعلان عن التوافق العكسي طويل المدى من هذا الإصدار. وبالتالي يتم تقليل المخاطرة لاستخدام هذه اللغة في مشروع ذو دورة حياة طويلة إلى حد كبير.

يمكن استخدام جميع وظائف (Kotlin) الأساسية بغض النظر عن الحد الأدنى من إصدار (SDK) الذي يستهدفه تطبيقك.
مثال: التدفقات، المقدمة مع (Java 8) وتسهيل معالجة البيانات (الجدول ، المجموعة ، تدفق الشبكة ، إلخ)، تتطلب عادةً استخدام ل (API 24) (Android 7.0).
مع (Kotlin) ، يمكنك استهداف (API 16) (Android 4.1) والاستمرار في الاستمتاع بها.