|
1 | 1 | # プログラミング言語Python
|
2 | 2 |
|
3 |
| -## コンピュータとプログラミング言語 |
| 3 | +## コンピュータ-とプログラミング言語 |
4 | 4 |
|
5 | 5 | 世界には現在、300種類ほどのプログラミング言語が存在するという説もあるほど、プログラミング言語には種類があります。種類は多くありますが、そのほとんどが実際には使われていません。どの言語が人気を集め、実際に使われるようになるかは、時代背景や偶然の要素に大きく影響されます。Pythonは広く使われているプログラミング言語であり、いま最も人気を集めている言語の1つです。ここではその特徴を簡単に説明します。
|
6 | 6 |
|
7 | 7 | ## Pythonの特徴
|
8 | 8 |
|
| 9 | +### Pythonのはじまり |
| 10 | + |
9 | 11 | Pythonはグイド・ヴァンロッサム(Guido van Rossum)というオランダ人プログラマによって、1989年に開発が始まりました。その後多くの開発者の支持を集め、言語自体の機能を拡張しながら現在に至っています。
|
10 | 12 |
|
11 | 13 | ### 読みやすく書きやすい
|
12 | 14 |
|
13 |
| -Pythonは書かれたプログラムのコードが読みやすくなるように工夫されています。たとえば、for文やif文など、一般的にプログラムの先頭行をインデント(字下げ)する箇所では、Pythonはインデントを強制します。こうすることで不要な括弧を省略でき、インデントの深さで制御構造がはっきりわかります。また「同じ動きをするためのコードはできるだけ1種類になるようにする」という設計思想があります。これによって、誰が書いても同じようなコードになるため、コードが読みやすくなります。 |
| 15 | +Pythonは書かれたプログラムのコードが読みやすくなるように工夫されています。たとえば、for文やif文など、一般的にプログラムの先頭行をインデント(字下げ)する箇所では、Pythonはインデントを強制します。こうすることで不要な括弧を省略でき、インデントの深さで制御構造がはっきりわかります。また「同じ動きをするためのコードは、できるだけ1つの方法でしか書けないようにする」という設計思想があります。これによって、誰が書いても同じようなコードになるため、コードが読みやすくなります。 |
14 | 16 |
|
15 | 17 | ### コンパイル不要
|
16 | 18 |
|
17 |
| -コンパイルとは、プログラムのソースコードを機械語に変換する作業です。コンピュータは0と1だけからなる機械語しかわからないので、プログラムは最終的には機械語に変換される必要があります。これを人間がやるか、プログラミング言語が自動的にやってくれるかでプログラミング言語を分けることができます。Pythonはコンパイルを必要としないので、ソースコードを書いたらすぐ実行できます。長いプログラムを書いているときに、短いコードを気軽に試しながら開発できるのも便利です。一方、C言語やC++、Rustなどコンパイルを必要とする言語も多くあります。これらの言語は、コンパイルに手間を掛けることで実行速度を上げられるという利点を持ちます。 |
| 19 | +コンパイルとは、プログラムのソースコードを機械語に変換する作業です。コンピューターは0と1だけからなる機械語しかわからないので、プログラムは最終的には機械語に変換される必要があります。この作業を人がコマンドを実行して行う必要があるかないかで、プログラミング言語を分けることができます。Pythonはコンパイルを必要としないので、ソースコードを書いたらすぐ実行できます。長いプログラムを書いているときに、短いコードを気軽に試しながら開発できるのも便利です。一方、C言語やC++、Rustなどコンパイルを必要とする言語も多くあります。これらの言語は、コンパイルに手間を掛けることで実行速度を上げられるという利点を持ちます。 |
18 | 20 |
|
19 | 21 | ### オープンソースソフトウェア
|
20 | 22 |
|
21 |
| -Pythonはオープンソースソフトウェアです。誰でもPythonのソースコードを見ることができますし、スキルがあれば開発に参加することも可能です。Python自体はC言語とPythonで作られています。中核部分や実行速度を上げる必要がある部分はC言語で書かれています。また、Pythonは誰でも無料で利用することができます。Pythonを管理しているのは、Python Software Foundation(PSF)という非営利団体です。PSFへ寄附をすることによってPythonに貢献するという方法もあります。 |
| 23 | +Pythonはオープンソースソフトウェアです。誰でも[Pythonのソースコード](https://github.com/python/cpython)を見ることができますし、スキルがあれば開発に参加することも可能です。Python自体はC言語とPythonで作られています。中核部分や実行速度を上げる必要がある部分はC言語で書かれています。また、Pythonは誰でも無料で利用することができます。Pythonを管理しているのは、[Python Software Foundation(PSF)](https://www.python.org/psf/)という非営利団体です。PSFへ寄附をすることによってPythonに貢献するという方法もあります。 |
22 | 24 |
|
23 | 25 | ### 外部ライブラリが充実
|
24 | 26 |
|
25 |
| -Pythonの設計思想の1つに、Batteries included(電池同梱)があります。これは、プログラミング言語自体が便利で豊富な機能を含むことを表現したものです。標準モジュールは、Pythonをインストールしただけで利用でき、さまざまな機能があるので日常のプログラミングで大いに役立ちます。 |
| 27 | +Pythonの設計思想の1つに、Batteries included(電池同梱)があります。これは、プログラミング言語自体が便利で豊富な機能を含むことを表現したものです。[標準ライブラリ](https://docs.python.org/ja/3/library/index.html)は、Pythonをインストールしただけで利用でき、さまざまな機能があるので日常のプログラミングで大いに役立ちます。 |
26 | 28 |
|
27 |
| -20世紀の終わりごろまでは、必要なものは自分で作るというプログラミングスタイルが一般的でした。今世紀に入り、プログラミングのやり方も大きく変わっています。本格的なWebシステムの開発や、機械学習アルゴリズムの実行のために、これらの機能をゼロから作ることはまずありません。しかし、こうした機能は標準モジュールにも含まれていません。このような場合は、外部ライブラリを利用します。Pythonは世界中の開発者に支持されているので、さまざまな外部ライブラリが提供されており、その多くがオープンソースソフトウェアです。何かやりたいことがある場合、標準モジュールや外部ライブラリを活用することで開発期間を短くすることができます。 |
| 29 | +20世紀の終わりごろまでは、必要なものは自分で作るというプログラミングスタイルが一般的でした。今世紀に入り、プログラミングのやり方は大きく変わっています。本格的なWebシステムの開発や、機械学習アルゴリズムの実行のために、これらの機能をゼロから作ることはまずありません。しかし、こうした機能は標準ライブラリには含まれていません。このような場合は、外部ライブラリを利用します。Pythonは世界中の開発者に支持されているので、さまざまな外部ライブラリが提供されており、その多くがオープンソースソフトウェアです。何かやりたいことがある場合、標準ライブラリや外部ライブラリを活用することで開発期間を短くすることができます。膨大な数におよぶ外部ライブラリのほとんどは、[The Python Package Index](https://pypi.org/)にまとめられていて、pipコマンドを使って簡単にインストールできます。 |
28 | 30 |
|
29 | 31 | ### 学びやすい
|
30 | 32 |
|
31 |
| -Pythonの生みの親であるグイドさんは、教育用プログラミング言語であるABCという言語の開発に携わっていたことがあり、PythonもこのABCの影響を受けています。プログラミング言語の中で特別な意味を持ち、利用者が自由に使えない単語を、キーワードや予約語と呼びます。Pythonは他のプログラミング言語と比べて、キーワードの数が少ないという特徴があります。これは、覚えることが少ないということを意味し、言語への入門の壁を下げる効果があります。プログラミング言語は1つ習得すると、別の言語を学ぶための障壁がかなり下がります。このため、最初の言語としてPythonを選ぶという選択肢が世界的にも広がっています。 |
| 33 | +Pythonの生みの親であるグイド・ヴァンロッサムは、教育用プログラミング言語であるABCという言語の開発に携わっていたことがあり、PythonもこのABCの影響を受けています。プログラミング言語の中で特別な意味を持ち、利用者が自由に使えない単語を、キーワードや予約語と呼びます。Pythonは他のプログラミング言語と比べて、キーワードの数が少ないという特徴があります。これは、覚えることが少ないということを意味し、言語への入門の壁を下げる効果があります。プログラミング言語は1つ習得すると、別の言語を学ぶための障壁がかなり下がります。このため、最初の言語としてPythonを選ぶという選択肢が世界的にも広がっています。 |
32 | 34 |
|
33 |
| -### 向いている分野 |
| 35 | +### 向いている分野 |
34 | 36 |
|
35 |
| -本格的なシステム開発では、Webアプリケーションのサーバ側で利用されています。PloneやDjangoといった高性能なソフトウェアが存在し、実際の業務を支えています。データサイエンスの分野では、前処理から可視化、Deep learningを含む機械学習アルゴリズムの実行まで広く利用されています。この分野でも、NumPyやpandas、scikit-learnといった外部ライブラリの存在が欠かせません。また、日常業務におけるちょっとした作業の自動化にPythonを使うこともできます。Webサイトから定期的に情報をダウンロードする、複数のCSVファイルを連結すると言った作業をPythonで自動化するのは簡単です。 |
| 37 | +本格的なシステム開発では、Webアプリケーションのサーバ側で利用されています。PloneやDjangoといった高性能なソフトウェアが存在し、実際の業務を支えています。データサイエンスの分野では、前処理から可視化、深層学習を含む機械学習アルゴリズムの実行まで広く利用されています。この分野でも、NumPyやpandas、scikit-learnといった外部ライブラリの存在が欠かせません。また、日常業務におけるちょっとした作業の自動化にPythonを使うこともできます。Webサイトから定期的に情報をダウンロードする、複数のCSVファイルを連結すると言った作業をPythonで自動化するのは簡単です。 |
36 | 38 |
|
37 | 39 | ### 向いていない分野
|
38 | 40 |
|
39 |
| -Pythonはスマートフォンのアプリケーション開発にはほとんど利用されていません。PCのデスクトップアプリも同様です。スマートフォンアプリではJava、Kotlin、Objective-C、Swiftといった言語が使われています。Webアプリケーションでは、いわゆるフロントエンドの開発には使われていません。この分野ではJavaScriptが標準的な言語です。オペレーティングシステムの開発や組み込みシステムなど、実行速度が重要な問題となるソフトウェアの開発にPythonは向いていません。こうした分野では、C言語やC++言語が使われるのが一般的です。 |
| 41 | +Pythonはスマートフォンのアプリケーション開発にはほとんど利用されていません。PCのデスクトップアプリも同様です。スマートフォンアプリではJava、Kotlin、Objective-C、Swiftといった言語が使われています。Webアプリケーションでは、いわゆるフロントエンドの開発には使われていません。この分野ではJavaScriptが標準的な言語です。オペレーティングシステムの開発や組み込みシステムなど、実行速度に妥協が許されないソフトウェアの開発にPythonは向いていません。こうした分野では、C言語やC++言語が使われるのが一般的です。 |
40 | 42 |
|
41 | 43 | ## まとめ
|
42 | 44 |
|
43 | 45 | Pythonはオープンソースソフトウェアであり、数あるプログラミング言語の中で、いま最も人気を集めている言語です。言語自体がシンプルなため、入門用の言語としても適しています。世界中の開発者が多種多様な外部ライブラリを提供してくれているので、短期間で本格的なシステムの開発が可能です。
|
44 | 46 |
|
45 |
| -プログラミング言語にも栄枯盛衰があります。今後Pythonがどのよな運命をたどるのか分かりませんが、現時点では心からおすすめできる言語です。 |
| 47 | +プログラミング言語にも栄枯盛衰があります。今後Pythonがどのような運命をたどるにしても、すべての人へ心からおすすめできる言語です。 |
0 commit comments