Technical Report
「新しい時代を担う」プログラミング言語Python(パイソン)
先日 IEEE Spectrumで発表されたThe 2017 Top Programming LanguagesではPythonの人気が1位に上昇したことが公表されました。
Pythonは今や世界中で人気の高いプログラミング言語となっています。
ここではCTCテクノロジー教育サービスのインストラクタとしてPythonを教える立場である筆者が「新しい時代を担う」プログラミング言語であるPythonについて紹介します。

シーティーシー・テクノロジー株式会社
エデュケーション企画推進部
堀 直人
Pythonとは
Pythonはグイド・ヴァンロッサム氏によって開発されたプログラミング言語です。Pythonは日常のタスクを自動化するスクリプト言語として使うことができますが、最近ではAIブームの火付け役となった機械学習やディープラーニングといった専門性の高い分野でも使用されています。なぜこのような幅広い層に使われているのでしょうか。理由はいくつか考えられますが、ヴァンロッサム氏本人の哲学が強く影響していると考えられます。「万人のためのコンピュータプログラミング(Computer Programming for Everybody※1)」。これはヴァンロッサム氏がDARPA(アメリカ国防高等研究計画局)に送ったPython開発資金のための出資申込書タイトルで、この文書では「わかりやすく直観的であり主要なプログラミング言語と同等に強力な言語である」など、Pythonの目標についても定義されています。
またPythonは教育に適したプログラミング言語であると同時に専門家が使う言語の選択肢の1つにもなるとも記載されています。確かにPythonは平易な英文のようにプログラムを書くことができるので教育用に適しています。更にPythonには“バッテリー同梱”という考え方があり、最初から様々なライブラリ(プログラムの部品)が備わっています。まさにPythonはこの言葉通り、誰でも使えるくらいシンプルで強力な言語です。Pythonが持つ「シンプルさ」、そして「強力さ」についてそれを支える考え方がPythonにはあります。
Pythonのシンプルさ
PythonはRubyやPerlと同様に軽量言語と言われます。短い記述で処理を実現でき手軽に取り扱うことができます。Pythonはよく他の言語と比較されるのですが、文法についてそこまで大きな違いはないと感じます。Rubyはオブジェクト指向言語ですが、Pythonも同様です。Perlは手続き型のように書くことができますが、これもやはりPythonと共通しています。大きく違うのはプログラムを書く時の考え方です。
Perlには「あることをするのにいくつものやり方がある(There Is More Than One Way To Do It※2)」という哲学があり、1つの目的に対して様々なプログラムの書き方があります。
Rubyにも似た哲学があり、様々なプログラミング言語から良い機能を取り込んでいった結果、同じ処理をする関数でも色々な名前が付いていることがあります。
慣れれば選択肢が多いということで場合によって使い分けることができるのでうれしい側面もあるのですが、初学者にはちょっととっつきづらい印象があるようです。
Pythonでは目的が同じであれば大体どれも同じようなプログラムに収束するだろうという考えがあります。可読性を考えると全体的に似たコードになっていた方がプログラムの見通しは良く、複数人での開発に向いていると言えます。
また、Pythonにはシンプルさを実現する言語としての特徴が2つあります。1つは洗練された文法要素です。
Pythonはifやelse、whileといった一般的なキーワードのみでプログラムを記述できます。複数条件を書く場合にcaseやswitchといった新たなキーワードを用いる言語もありますが、書き方が複数あることはPythonの哲学に反するため、最低限のキーワードしか認めておりません。シンプルなキーワードのみを使って、まるで平易な英文のようにプログラムを記述できます。
もう1つはプログラムのまとまりを字下げで表現するルールです。字下げはプログラムの可読性を高めるために書く側が意図的に付けるためのものです。しかし、プログラミング言語を学び始めた段階では書くことに集中してしまい、プログラムの見た目までは意識できないものです。Pythonは字下げを強制することで初学者でも経験者が書くのと同様に可読性を意識したプログラムが自然と書けるようになっています。この2つはPythonのプログラムをシンプルに保つためにとても重要な役割を担っています。
「Python」の活用シーン

記載内容は掲載当時の情報です。最新情報と異なる場合がありますのでご了承ください。