
翻訳者から:この記事は、PythonとJavaプログラミング言語の利点(欠点ではない)を示し、比較の二重性を実証するための著者の試みです。 利点であると思われるものは、欠点であることが判明する場合があります。 おそらくいくつかの点は議論の余地があるように見えるかもしれませんが、これは最善です-コメントで、あなたの視点を正しく実証することによってすべてを議論することができます。 この記事は、初心者と経験のあるプログラマの両方に適しています。
JavaとPythonは、同様に人気のあるプログラミング言語です。 ただし、Pythonはより生産的です。問題を解決するために必要なコードが少なくなります。 Pythonを適用できるJavaでプログラマがまだ作業しているのはなぜですか? 正しくしましょう。
「Habr」の読者には、「Habr」プロモーションコードを使用してSkillboxコースに登録すると10,000ルーブルの割引があります。
Skillboxの推奨事項:オンライン教育コース「Profession Java-developer」 。
性能比較
最初に、Webアプリケーションを開発するときにPythonがより効率的で時間を節約する理由を説明しましょう。
動的型付け
Pythonがより生産的な言語である主な理由の1つは、動的型付けです。 これは、何も宣言する必要がないことを意味します。変数に名前を付けて値を割り当てるだけです。 Pythonは、割り当てられた値に従ってその型を独立して決定します。
しかし、Javaは静的に型付けされた言語です。 ここでは、すべてのタイプの変数を宣言する必要があります。 間違えた場合、プログラムは機能しないか機能しませんが、問題が発生します。
簡潔さ
Pythonは非常に簡潔な言語です。数行で使用できるのはわずかな単語のみです。 しかし、Javaは冗長であり、直接必要なく多く使用します。 例は、両方の言語で書かれた「Hello、World」プログラムです。
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 :
- « PRO».
- - « Python».
- « — - PRO».