Dari seorang penerjemah: artikel ini adalah upaya penulis untuk menunjukkan kelebihan (bukan kerugian) dari bahasa pemrograman Python dan Java, serta menunjukkan dualisme perbandingan apa pun. Sesuatu yang tampaknya menguntungkan dapat berubah menjadi kerugian, dan sebaliknya. Mungkin beberapa poin mungkin tampak kontroversial, tetapi ini menjadi lebih baik - dalam komentar Anda dapat mendiskusikan semuanya dengan benar memperkuat sudut pandang Anda. Artikel ini cocok untuk pemula dan programmer yang berpengalaman.Java dan Python adalah bahasa pemrograman yang sama-sama populer. Namun, Python lebih produktif: ia memiliki lebih sedikit kode yang diperlukan untuk menyelesaikan masalah. Mengapa programmer masih bekerja dengan Java di mana Anda dapat menggunakan Python? Mari kita perbaiki.
Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".
Skillbox merekomendasikan: Kursus pendidikan online "Pengembang Java Profesi" .
Perbandingan kinerja
Pertama, mari kita bahas mengapa Python lebih efisien dan menghemat waktu ketika mengembangkan aplikasi web.
Diketik secara dinamisSalah satu alasan utama Python adalah bahasa yang lebih produktif adalah pengetikan dinamis. Ini berarti bahwa kita tidak perlu mendeklarasikan apa pun - kita hanya memberi nama variabel dan memberikan nilai. Python menentukan jenisnya secara independen sesuai dengan nilai yang diberikan.
Tetapi Java adalah bahasa yang diketik secara statis. Semua jenis variabel di sini harus dideklarasikan. Jika Anda membuat kesalahan, program tidak akan bekerja atau akan, tetapi dengan masalah.
KeringkasanPython adalah bahasa yang sangat ringkas: hanya beberapa kata yang dapat digunakan dalam beberapa baris. Tetapi Java adalah verbose, ia menggunakan banyak tanpa kebutuhan langsung. Contohnya adalah program "Hello, World", yang ditulis dalam kedua bahasa.
Jawa: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 :