今回は、Pythonとはどんな言語?ということについてまとめていきます。
普段Pythonを使ってプログラムを書いているので、Pythonのことをいろいろな角度から知っておいて損はないと思いこの記事を書くに至ります。
今回はあくまで読み物としてまとめていこうと思います。
概要
Pythonは「読みやすさ、わかりやすさ」を重視しており、初めてPythonのコードを見る人でも理解しやすいようなデザインがされています。
可読性を高めるためにオフサイドルールが採用されているのが大きな特徴です。またPythonはインタプリタ型の言語で、動的型付けやガベージコレクションといった特徴も持っています。これら特徴については後述します。
また、Pythonは実に多様な用途を持っており、その幅はシステム管理やアプリケーション開発、Webシステムや科学技術計算と多岐にわたります。それゆえに、様々なところでPythonが使われています。YouTubeやInstagramなども、Pythonを使ってサービスを提供しています。
このようにPythonは汎用的なプログラミング言語であるといえます。以降、内容を深堀りしていきます。
歴史
登場
Pythonは1991年にヴァンロッサムによって初めて公開されました。この時のバージョンは0.90です。以外にも、Pythonの歴史はJava(1995年)よりも古いのです。
このときからオブジェクト指向言語の特徴である継承やクラス、メソッドといった概念を利用しています。
2.x
2000年にバージョン2.xが公開されました。これ以降人気が出始め、メジャーな言語となりました。3.xが公開されてからは、3.xへの移植をサポートするモジュールも含まれるようになり、移行が促されました。2.xの最後のバージョンは2.7であり、2020年1月にサポートが終了しています。
3.x
2008年に公開され、2021年現在ではほとんどの新規プロジェクトで3.xをベースに開発が行われています。3.xの新しいバージョンはおよそ1年に一度のペースで公開されており、現在は3.9まで公開されています。
特徴
Pythonは読みやすく、かつなるべく簡単に書けるようにというコンセプトで提供されている言語です。
Pythonでは、ある動作を実現させる方法は基本的に1つとなるように設計されています。そのため、誰が書いてもおよそ同じようなコードになり、誰がそのコードを見ても動作を把握できるという利点があります。
構文
Pythonの構文で最も特徴的なのが、インデントが意味を持つという点です。これは、オフサイドルールと呼ばれます。
例えば関数やif文の範囲はインデントで決定します。下記の場合、一階層目が関数の範囲、二階層目がif文の範囲を示します。
def sample1(x, y):
if x == 0:
y = 5
else:
y = 10
return y
インデントがルールとなっているため、これが乱れるとエラーとなったり、意図しない動きとなります。このルールのおかげで、書き手によるスタイルの違いは生まれず、統一的で読みやすいコードとなります。
動的型付け
Pythonではデータの型付けは動的に行われます。他の言語では変数を宣言する際に型を指定するのが一般的ですが、Pythonではそれをしません。
Pythonでは値自身が型をもっており、変数は全て値への参照という扱いになります。なので、配列にデータ型の異なる値を組み合わせて与えることもできます(例:[1, “a”, true] など)。
ライブラリ
Pythonはライブラリが非常に豊富です。インストールなしに使える標準ライブラリも充実しているほか、外部ライブラリもその種類は多岐にわたります。
外部ライブラリはその数ゆえに野放しでは収集がつかなくなりました。そこで、PyPIという公式のパッケージリポジトリが生まれました。
PyPIからは、PiPを用いてライブラリをインストールします。また、Anacondaも独自のパッケージリポジトリを提供しています。
PyPIとAnacondaの違いは以下を参考にしてみてください。
用途
Pythonの用途は実に様々で、多くの企業が利用しています。Webアプリケーションはもちろん、データサイエンスやCADにも用いられています。
Webアプリケーション
PythonではDjangoやFlaskといったWebアプリケーションフレームワークがあり、Webアプリケーションの開発に広く用いられています。
冒頭で紹介したInstagramやYouTubeもPythonを使ったWebアプリケーションです。このように、大規模なアプリケーションにもPythonは使われているのです。
データサイエンス
データサイエンスにPythonを用いるというケースも非常に多いです。NumpyやPandasといった数値計算や科学技術用途のライブラリが豊富であるというのがその理由です。
Pythonは動的スクリプトなので、大量のデータを扱う処理には不向きなようにも思います。しかし、Numpyなどのライブラリは内部でC言語を用いてるので、高速計算処理を実現できているのです。
TensorFlowやPytorchといった機械学習のライブラリも充実しているという点も、データサイエンスへの利用を促進しています。
まとめ
Pythonについて、技術的な視点以外からまとめてみました。Javaより歴史が長いというのが個人的驚きでした。
調べていたりすると、Pythonでこんなこともできるのかと発見の連続でした。いろんなこと、試してみたいなぁ
ではでは👋