Pourquoi les programmeurs continuent d'utiliser Java verbeux, bien qu'il existe un Python concis



D'un traducteur: cet article est une tentative de l'auteur de montrer les avantages (et non les inconvénients) des langages de programmation Python et Java, ainsi que de démontrer la dualité de toute comparaison. Quelque chose qui semble être un avantage peut se révéler être un inconvénient, et vice versa. Certains points peuvent peut-être sembler controversés, mais c'est pour le mieux - dans les commentaires, vous pouvez tout discuter en justifiant correctement votre point de vue. L'article convient aussi bien aux débutants qu'aux programmeurs expérimentés.

Java et Python sont des langages de programmation tout aussi populaires. Cependant, Python est plus productif: il a moins de code nécessaire pour résoudre le problème. Pourquoi les programmeurs travaillent-ils toujours avec Java où vous pouvez utiliser Python? Faisons les choses correctement.

Nous vous rappelons: pour tous les lecteurs de «Habr» - une remise de 10 000 roubles lors de l'inscription à un cours Skillbox en utilisant le code promo «Habr».

Skillbox recommande: Le cours éducatif en ligne "Profession Java-developer" .

Comparaison des performances


Voyons d'abord pourquoi Python est plus efficace et fait gagner du temps lors du développement d'une application Web.

Typé dynamiquement

L'une des principales raisons pour lesquelles Python est un langage plus productif est le typage dynamique. Cela signifie que nous n'avons rien à déclarer - nous donnons simplement un nom à la variable et assignons une valeur. Python détermine indépendamment son type en fonction de la valeur affectée.

Mais Java est un langage typé statiquement. Tous les types de variables doivent être déclarés ici. Si vous faites une erreur, le programme ne fonctionnera pas ou fonctionnera, mais avec des problèmes.

Brièveté

Python est un langage très concis: seuls quelques mots peuvent être utilisés en quelques lignes. Mais Java est verbeux, il en utilise beaucoup sans besoin direct. Un exemple est le programme «Hello, World», écrit dans les deux langues.

Java:

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/fr443412/


All Articles