プログラミング言語 Python

これまで6回に渡ってLinuxでC言語のプログラムを書いて利用する方法を紹介してきた。最初にC言語を取り上げたのは、Linuxカーネルやユーザランドの多くがC言語で開発されているためだ。これはつまり、C言語が利用できると、OSが提供している機能をフルに利用できることを意味している。知っていればそれだけ得ということである。

しかし、C言語は挫折するユーザーが多いプログラミング言語でもある。ざっくり作ってもそれなりに高速に動作するソフトウエアが開発できる言語なのだが、適当に作りすぎるとメモリ管理系のバグでものすごく苦労する言語でもある。さまざまなプログラミング言語が登場している今となっては、ハードルが低いとは言い難い言語となっているのは間違いないだろう。

そこで今回からは、今最も取り組むのが手軽なプログラミング言語の1つとして「Python」を取り上げようと思う。毎月プログラミング言語の人気ランキングを掲載している「TIOBE Software」は、2018年に最もインデックス値を増やしたプログラミング言語として、Pythonに2018年のプログラミング言語・オブ・ザ・イヤーを贈った。

さらに2019年1月、PythonはTIOBE IndexでJavaとC言語に続いて3位のインデックス値を実現。集計方法の違いはあるものの、類似のランキング系サイトの多くがPythonの成長を示しており、勢いがあって今後も利用されるシーンの増加が見込まれているプログラミング言語だと目されている。

TIOBE Programming Community Index 2001年〜2019年 - 資料提供: TIOBE Software

Pythonは誰が書いても同じようなソースコードになるように設計されており、「コードが書きやすく読みやすい」点がメリットだとされている。特にインデントが定められている点が特徴的で、C言語などが奇っ怪な書き方が可能なのに対して、Pythonではもともとそうした書き方ができないような仕組みになっている。

こうした特徴から大学などで初めに学ぶプログラミング言語として、近年はPythonが利用されることが多い。ただしPythonの利用は学習に留まらず、現在ではビッグデータ処理や人工知能技術開発やその利用、組み込みデバイスでの利用、WebサービスやWebアプリケーションなどさまざまなシーンでPythonが利用されるようになっている。低い学習コストと高い効率が、こうした利用シーンの増加を後押ししていると考えられる。

Pythonそのものはシンプルな構造で必要最低限の機能だけを提供しており、それ以外の機能に関してはサードパーティ製のライブラリを使う仕組みになっている。この仕組みがサードパーティ製ライブラリの開発を推し進める原動力となり、利用シーンが広がっていったものと見られる。

導入が簡単!

Linuxディストリビューションには、Pythonがデフォルトでインストールされていることが多い。最初からインストールされているため、利用するのが簡単で(もちろん、後からパッケージでインストールすることも容易だ)、最初のハードルが低い。C言語と違ってインタプリタ言語なのでコンパイルする必要もなく、インタラクティブに実行することも可能だ。こうした導入の手軽さもPythonの利用が進む1つの要因だろう。

Ubuntu 18.04 / WSL

LinuxディストリビューションにはPython 2系とPython 3系の両方がインストールされていることが多いように思う。

LinuxディストリビューションにインストールされているPyythonの実行環境

「python」というコマンドがPython 2系で、「python3」がPython 3系だ。バージョン番号を含んだpython2.7やpython3.6というコマンドでも利用できる。このコマンドはスクリプトを実行する実行環境としても機能するし、インタラクティブに利用するシェルとしても利用することができる。要するに、このコマンドが入っていればPythonが利用できるということだ。

pythonインタプリタからバージョン情報を確認

Python 2系とPython 3系は似ているものの、一部後方互換性が失われている。どちらも読めればそれに越したことはないが、これからPythonを学習するのであれば、Python 3の学習を開始すればよいと思う。理由はいくつかあるが、最大の理由はPython 2系はそろそろサポートの終了が予定されているためだ。Python 2系で開発されたソフトウエアは多いのだが、これから利用しようというのであれば、とりあえずPython 3系について学んでいけばよいだろう。

便利な機能を初めから用意

Pythonに限らず後発のインタプリタ言語(スクリプト言語)に共通して言えることだが、便利な機能が初めから用意されていることが多く、また、頭を使う必要があるようなコーディングがなるべく発生しない仕組みになっていることが多い。

例えば、C言語の学習だと「ポインタ」と「参照」という仕組みについて理解を求められる辺りで脱落していくケースをよく見かけるが、インタプリタ言語(スクリプト言語)ではそうした仕組みは持っていないか、ユーザーは意識する必要がないように設計されている。

また、コンパイルする必要がなく、その場ですぐに試すことができるので、最初に学ぶ言語として学習しやすい。ある程度Pythonが使えるようになってくると、日常的に”楽”をするためのツールを作る基盤として便利に利用できるだろう。

まだベータ版の段階だが、Windows版のPython3がMicrosoftストアに登録されるなど、Windows 10での導入もしやすくなりそうだ。Windows 10で簡単にPythonを導入できるようになれば、Pythonを学ぶことでWindows 10、macOS、Linuxのどれでも通用する強力なスキルが手に入ることになる。これはなかなか魅力的だ。

次回からは、数回に分けてPythonの使い方を紹介していこうと思う。この連載はプログラミング言語そのものを解説するものではないので、細かい説明については適宜端折っていくが、「どういったことができるのか」「どんな風に使えるのか」といった辺りを感じてもらいたい。