Von einem Übersetzer: Dieser Artikel ist ein Versuch des Autors, die Vor- und Nachteile der Programmiersprachen Python und Java aufzuzeigen und die Dualität von Vergleichen zu demonstrieren. Etwas, das als Vorteil erscheint, kann sich als Nachteil herausstellen und umgekehrt. Vielleicht scheinen einige Punkte kontrovers zu sein, aber das ist das Beste - in den Kommentaren können Sie alles diskutieren, indem Sie Ihren Standpunkt richtig begründen. Der Artikel ist sowohl für Anfänger als auch für erfahrene Programmierer geeignet.Java und Python sind gleichermaßen beliebte Programmiersprachen. Python ist jedoch produktiver: Es wird weniger Code benötigt, um das Problem zu lösen. Warum arbeiten Programmierer immer noch mit Java, wo Sie Python verwenden können? Lass es uns richtig machen.
Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.
Skillbox empfiehlt: Der Online-Schulungskurs "Profession Java-Entwickler" .
Leistungsvergleich
Lassen Sie uns zunächst diskutieren, warum Python effizienter ist und Zeit bei der Entwicklung einer Webanwendung spart.
Dynamisch getipptEiner der Hauptgründe, warum Python eine produktivere Sprache ist, ist die dynamische Eingabe. Dies bedeutet, dass wir nichts deklarieren müssen - wir geben der Variablen nur einen Namen und weisen einen Wert zu. Python bestimmt seinen Typ unabhängig nach dem zugewiesenen Wert.
Java ist jedoch eine statisch typisierte Sprache. Alle Arten von Variablen müssen hier deklariert werden. Wenn Sie einen Fehler machen, wird das Programm nicht funktionieren oder wird, aber mit Problemen.
KürzePython ist eine sehr prägnante Sprache: In wenigen Zeilen können nur wenige Wörter verwendet werden. Aber Java ist ausführlich, es verwendet viel ohne direkte Notwendigkeit. Ein Beispiel ist das Programm „Hello, World“, das in beiden Sprachen geschrieben ist.
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 :