De um tradutor: este artigo é uma tentativa do autor de mostrar as vantagens (e não as desvantagens) das linguagens de programação Python e Java, além de demonstrar a dualidade de quaisquer comparações. Algo que parece uma vantagem pode vir a ser uma desvantagem e vice-versa. Talvez alguns pontos possam parecer controversos, mas isso é para melhor - nos comentários, você pode discutir tudo fundamentando corretamente seu ponto de vista. O artigo é adequado para iniciantes e programadores com experiência.Java e Python são linguagens de programação igualmente populares. No entanto, o Python é mais produtivo: possui menos código necessário para resolver o problema. Por que os programadores ainda estão trabalhando com Java, onde você pode usar o Python? Vamos acertar.
Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".
A Skillbox recomenda: O curso educacional on-line "Profissão Java-developer" .
Comparação de desempenho
Primeiro, vamos discutir por que o Python é mais eficiente e economiza tempo ao desenvolver um aplicativo da web.
Digitado dinamicamenteUm dos principais motivos pelos quais o Python é uma linguagem mais produtiva é a digitação dinâmica. Isso significa que não precisamos declarar nada - apenas damos um nome à variável e atribuímos um valor. O Python determina independentemente seu tipo de acordo com o valor atribuído.
Mas Java é uma linguagem de tipo estaticamente. Todos os tipos de variáveis aqui devem ser declarados. Se você cometer um erro, o programa não funcionará ou funcionará, mas com problemas.
BrevidadePython é uma linguagem muito concisa: apenas algumas palavras podem ser usadas em poucas linhas. Mas o Java é detalhado, usa muito sem necessidade direta. Um exemplo é o programa "Olá, Mundo", escrito nos dois idiomas.
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, JavaPython 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. ParallelismJava 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 :