Pythonの特性とメリットとデメリットのまとめ
3965 ワード
*最近Pythonを使い始めましたが、その特徴がよく分からないようなので、整理するために文章を書きました.
-概要-
1.Pythonの特性:スクリプト言語、ダイナミックタイプ言語、プラットフォームから独立
2.利点:使いやすく、開発速度が速く、拡張性と移植性が高い
3.短所:遅い(コンパイル言語に対して)+GIL
Pythonはプロや非プロに人気のある言語です.特に、最近はPythonを使って大量のデータ分析が行われているので、より人気があります.
1991年にプログラマーGuido van Rossumが開発したPython語の法位は簡単です. は毒性が高い. この2つの理由で、多くの人が使いやすいです.
しかし、簡単で学びやすいため、言語の使用に問題があると考えられていますが、その特徴とメリットとデメリットをまとめてみましょう.
Pythonはスクリプト言語で、コンパイルせずにコードを直接チェック、変更、作成できます.
Pythonは、変数のデータ型を指定することなく、宣言するだけで値を指定できる動的タイプ言語です.
これらの宣言変数のデータ型は、コードの実行時に決定されます.
Pythonは、ほとんどのオペレーティングシステムで使用されている言語です.ウィンドウ、Linux、Macなどのオペレーティングシステムに基づいてコンパイルする必要がないため、どの環境でも使用できます.
Pythonは運動曲線が低いという利点がある.思考と人間の思考が似ているからか、プログラミングを知らない非専門家も学びやすい.
「HelloWorld」文を出力する場合、JavaとPythonは次のように比較されます.
Pythonは仕事の効率が高い.シンプルで簡潔な構文により、迅速に開発でき、より少ないコードでより多くの作業を実行できます.また、複雑な構文によるエラーを減らすこともできます.
Pythonは、他の言語やライブラリに簡単にアクセスでき、連携できます.高性能アプリケーションが必要な場合は、C/C++言語と組み合わせて使用できます.
多くのライブラリだけでなく、オープンソースコードにより、多くの開発者が使用している言語を使用できます.最近開発されたマシンラーニングライブラリやオープンソースの大部分はPythonで開発されており,生態系がいかに活発であるかがうかがえる.また、迅速な開発とコラボレーション能力も提供します.
スクリプト言語の特徴を紹介するときに少し言及しますが、Pythonは他のコンパイル言語より遅いです.
これは、リアルタイムで機械言語に翻訳することによる欠点であり、ハードウェアを迅速に実行したり直接制御したりするプログラムには適していない.
*このセクションが開発者にとってより特別なコンテンツである場合は、スキップすることをお勧めします.
GLIはGlobal Integrator Lockの略で、1つのスレッド上のすべてのリソースを許可し、残りのスレッドにロックを掛けて他のスレッドの実行を阻止します.
問題は、シングルコアプロセッサだけでなく、マルチコアプロセッサの優位性も阻害することです.
マルチコアのマルチスレッドを使用している場合は、次の図が表示されます.
しかし、Pythonでは、マルチコアでもGILのせいだと考えられます.
スレッドのContext Switingのため、マルチスレッドを使用するとパフォーマンスが低下します.
これにより、次の問題が発生する可能性があります. Pythonはパラレル操作をサポートしていませんか? Pythonでは、マルチスレッドは意味がありませんか? 結論から、パラレルで作業したり、マルチスレッドを使用したりすることができます.
Pythonで並列に作業できませんか?
マルチプロセッサモジュールはパラレル操作をサポートします.
Pythonではマルチスレッドは意味がありませんか?
いいえ.GILは、cpu操作に適用される内容を表し、cpu操作とI/O操作が完了すると、他のスレッドが同時に実行される.これは、CPUの使用量が少なく、I/Oの使用量が多いパラレルプロセッサで使用できることを意味します.
ProcesとThreadの違いとGILについてもう少し議論したいのですが、内容が長すぎるかもしれないので、次の記事で別にまとめた記事を紹介します.
ソース:
https://library.gabia.com/contents/9256/
https://wangin9.tistory.com/entry/pythonthreadGIL
https://ssungkang.tistory.com/entry/python-GIL-Global-interpreter-Lock%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
https://monkey3199.github.io/develop/python/2018/12/04/python-pararrel.html
-概要-
1.Pythonの特性:スクリプト言語、ダイナミックタイプ言語、プラットフォームから独立
2.利点:使いやすく、開発速度が速く、拡張性と移植性が高い
3.短所:遅い(コンパイル言語に対して)+GIL
1.Pythonとはどんな言語ですか。
Pythonはプロや非プロに人気のある言語です.特に、最近はPythonを使って大量のデータ分析が行われているので、より人気があります.
1991年にプログラマーGuido van Rossumが開発したPython
しかし、簡単で学びやすいため、言語の使用に問題があると考えられていますが、その特徴とメリットとデメリットをまとめてみましょう.
2.Python特性
2.1スクリプト言語
Pythonはスクリプト言語で、コンパイルせずにコードを直接チェック、変更、作成できます.
*컴파일(Compile)
컴파일이란 인간이 작성한 코드를 컴퓨터가 이해할 수 있도록 기계어(바이너리 코드)로 번역하는 과정을 의미합니다.
즉, C++나 Java와 같은 언어로 코드를 작성하면 컴퓨터가 이해할 수 있도록 해당 코드를 컴파일하여 기계어로 번역하게 됩니다.
이후 실행할 때 기계어로 번역된(컴파일된) 파일을 실행하는 원리입니다.
반면, 스크립트 언어는 이런 컴파일 과정 없이 실행과정에서 번역과 실행이 동시에 일어나므로,
수정이 빠르지만 컴파일 언어보다 느린 실행속도를 보여줍니다.
2.2. ダイナミックタイプ言語
Pythonは、変数のデータ型を指定することなく、宣言するだけで値を指定できる動的タイプ言語です.
これらの宣言変数のデータ型は、コードの実行時に決定されます.
#Java
int a = 10
#Python
a = 10
この点は開発時に便利かもしれませんが、コード実行中に予期せぬタイプのエラーが発生する可能性があります.2.3プラットフォームから独立した言語
Pythonは、ほとんどのオペレーティングシステムで使用されている言語です.ウィンドウ、Linux、Macなどのオペレーティングシステムに基づいてコンパイルする必要がないため、どの環境でも使用できます.
3.Pythonのメリット
3.1使いやすい。
Pythonは運動曲線が低いという利点がある.思考と人間の思考が似ているからか、プログラミングを知らない非専門家も学びやすい.
「HelloWorld」文を出力する場合、JavaとPythonは次のように比較されます.
#Java
public class Solution {
public static void main(String args[]) {
System.out.println("Hello World");
}
}
#Python
print("Hello World")
3.2より速い開発速度
Pythonは仕事の効率が高い.シンプルで簡潔な構文により、迅速に開発でき、より少ないコードでより多くの作業を実行できます.また、複雑な構文によるエラーを減らすこともできます.
3.3高い拡張性と移植性
Pythonは、他の言語やライブラリに簡単にアクセスでき、連携できます.高性能アプリケーションが必要な場合は、C/C++言語と組み合わせて使用できます.
3.4活発な生態系
多くのライブラリだけでなく、オープンソースコードにより、多くの開発者が使用している言語を使用できます.最近開発されたマシンラーニングライブラリやオープンソースの大部分はPythonで開発されており,生態系がいかに活発であるかがうかがえる.また、迅速な開発とコラボレーション能力も提供します.
4.Pythonの欠点
4.1遅い
スクリプト言語の特徴を紹介するときに少し言及しますが、Pythonは他のコンパイル言語より遅いです.
これは、リアルタイムで機械言語に翻訳することによる欠点であり、ハードウェアを迅速に実行したり直接制御したりするプログラムには適していない.
4.2 GIL(Global Intepreter Lock)
*このセクションが開発者にとってより特別なコンテンツである場合は、スキップすることをお勧めします.
GLIはGlobal Integrator Lockの略で、1つのスレッド上のすべてのリソースを許可し、残りのスレッドにロックを掛けて他のスレッドの実行を阻止します.
問題は、シングルコアプロセッサだけでなく、マルチコアプロセッサの優位性も阻害することです.
マルチコアのマルチスレッドを使用している場合は、次の図が表示されます.
しかし、Pythonでは、マルチコアでもGILのせいだと考えられます.
スレッドのContext Switingのため、マルチスレッドを使用するとパフォーマンスが低下します.
これにより、次の問題が発生する可能性があります.
Pythonで並列に作業できませんか?
マルチプロセッサモジュールはパラレル操作をサポートします.
Pythonではマルチスレッドは意味がありませんか?
いいえ.GILは、cpu操作に適用される内容を表し、cpu操作とI/O操作が完了すると、他のスレッドが同時に実行される.これは、CPUの使用量が少なく、I/Oの使用量が多いパラレルプロセッサで使用できることを意味します.
ProcesとThreadの違いとGILについてもう少し議論したいのですが、内容が長すぎるかもしれないので、次の記事で別にまとめた記事を紹介します.
ソース:
https://library.gabia.com/contents/9256/
https://wangin9.tistory.com/entry/pythonthreadGIL
https://ssungkang.tistory.com/entry/python-GIL-Global-interpreter-Lock%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
https://monkey3199.github.io/develop/python/2018/12/04/python-pararrel.html
Reference
この問題について(Pythonの特性とメリットとデメリットのまとめ), 我々は、より多くの情報をここで見つけました https://velog.io/@jnine/파이썬Python-특징-및-장단점-정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol