لماذا يستمر المبرمجون في استخدام جافا المطوّل ، على الرغم من وجود بايثون موجزة



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

تعد Java و Python من لغات البرمجة الشائعة. ومع ذلك ، فإن بيثون أكثر إنتاجية: لديها رمز أقل لحل المشكلة. لماذا لا يزال المبرمجون يعملون مع Java حيث يمكنك استخدام Python؟ هيا بنا

نذكرك: لجميع قراء "Habr" - خصم بقيمة 10،000 روبل عند التسجيل في أي دورة تدريبية في Skillbox باستخدام الرمز "Habr" الترويجي.

توصي Skillbox بما يلي: الدورة التعليمية عبر الإنترنت "Profession Java-developer" .

مقارنة الأداء


أولاً ، دعونا نناقش سبب كون Python أكثر كفاءة ويوفر الوقت عند تطوير تطبيق ويب.

كتب بشكل حيوي

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

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

الإيجاز

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

جافا:

public class HelloWorld{
    public static void main (String[] args){
        System.out.println("Hello, World!");
    }
}

Python 2:

print "Hello, world!"

, Python , . .

Java:

int x = 5;
int y = 6;
int temp;
 
temp = x; // temp has the value of 5
x = y; // x has the value of 6
y = temp; // y has the value of 5

Python 2:

y, x = x, y

Boilerplate code, Java

Python Boilerplate code, Java, . Java, Boilerplate code - , ( ), .



, , Python. , . Java .

Java?


, Java , , Python.



, . , . , , Java , , , Python. , . . ( -, , Python) , .

, Java- , Python, , . Java- , , Python- -. , , .



, Java, Python , . JIT (Just-in-Time Compiler), . Java- , /++.

Python- Cython Jython /++ Java- Python. . Python Java.



. Java .

Python Java, Python , , ++ Fortran. , , Python, , , , C C/C++. , , Python. Java — Java.

Concurrency vs. Parallelism

Java concurrency . , . Java , Python. - GIL (Global Interpreter Lock), Python , .



Python, Java . Java , . . , . , JVM: Scala, Kotlin, Clojure, Groovy .. , Java , Gradle Maven.



IT, , , , . , Python , . — , Java.

, Java Android, Kotlin. , Android, , Java. .

Python, Kiwi, .



Java JDBC (Java DataBase Connectivity). Java- , java.sql, Java SE. JDBC , URL.


Java Python — , . , , , , , , . . Java , , Python , .

Skillbox :

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


All Articles