みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
来る2021/08/02に、拙著「Pythonプログラミング完全入門 ~ノンプログラマーのための実務効率化テキスト」(通称「#ノンプロPython」本)が発売となります。
今回、出版をお願いしております技術評論社さまのご厚意により、当ブログに「本書の第1章を全文掲載しても良い」と許諾をいただきました。
ということで、本シリーズでノンプロPython本の第1章「Pythonを学びはじめる心構えを整えよう」をお送りしております。
前回の記事はこちら。
今回はそのつづき、「ノンプログラマーがPythonを選ぶべき理由」です。
では、行ってみましょう!
絶大な人気を誇るプログラミング言語Python
さて、数あるプログラミング言語の中で、なぜPythonを選ぶのかについて考えていきましょう。
プログラミング言語Pythonが生まれたのは1990年初頭。意外にも、もうすぐ30歳を迎えるほどの歴史のある言語です。オランダ出身、アメリカ在住のグイド・ヴァンロッサムが、自らも開発に携わっていた教育用のプログラミング言語「ABC言語」の派生としてPythonを開発したとされています。
Pythonは、もともとはグイド・ヴァンロッサムが愛していたコメディ番組「空飛ぶモンティ・パイソン」がその名前の由来となっていますが、「Python」(つまり日本語では「ニシキヘビ」)がそのアイコンとして使用されています。
そんな長い歴史を持つプログラミング言語Pythonですが、本職プログラマーにとっては、数々のプログラミング言語の中で1、2を争うほど人気の言語となっています。
米国の電気工学技術の学会誌「IEEE Spectrum」が発表した人気プログラミング言語の調査「Top Programming Languages 2020)」では、Pythonが1位となっています。また、「日経xTECH」による「プログラミング言語実態調査(2019)」では、PythonはC/C++に次いで2位にランクインしました。つまり、日本国内での人気も高いということがわかります。
なぜ、これほどまでに人気があるのでしょうか?
Pythonの公式サイト「Python.org」のトップページには、Pythonについてこのように説明されています。
Python is a programming language that lets you work quickly and integrate systems more effectively.
直訳的には「Pythonは素早く作業でき、システムをより効果的に統合できるプログラミング言語」となります。
この一文の意味は、Pythonの4つの特徴を確認することで、より深く理解することができます。そして、そのメリットはノンプログラマーにとっても、有益なものだということを確認していきましょう。
なお、この節ではいくつかのPythonのコードが登場しますが、現時点でその内容を理解する必要はありません。Pythonの世界に触れていただくことが目的なので、ぜひ堪能してみてください。
文法がシンプルである
Pythonの最大の特徴は「文法がシンプルである」ということです。
Pythonプログラミングの基本の考え方がまとめられている「The Zen of Python」(Pythonの禅)の一節には、「Simple is better than complex.(単純なものは複雑なものより優れている)」と書かれています。また、ストレートに「Readability counts.(読みやすさが重要)」という一節もあります。
たとえば、「予約語」について見てみると、いかにPythonがシンプルさを重視しているかがわかります。予約語とは、プログラムの命令を記述するために必要な、あらかじめ決められているキーワードのことです。
他のプログラミング言語では、その予約語の数が50以上存在している場合が少なくありません。しかし、Pythonではその数はたった35となっており、もっとも予約語の数が少ない言語の部類に入ります。
別の例として「ブロック構造」を見ていきましょう。ブロック構造は命令のかたまりを表現するためのもので、多くの言語では、その開始から終了までの範囲を示すキーワードや記号を用いる方法が一般的です。
JavaScriptという言語なら波かっこ「{」「}」で表します。
for(var i = 1; i <= 10; i++){
if(i % 3 == 0){
Logger.log(i);
}
}
VBAという言語なら「If」「End If」でその範囲を表します。
Dim i As Long
For i = 1 To 10
If i Mod 3 = 0 Then
Debug.Print i
End If
Next i
一方、Pythonでは、それを「インデント」することで実現します。インデントとは、字下げのことで、命令の冒頭に決められた数のスペースを入れることです。
その分だけ記述する量が減るのはもちろん、必ず決められた分のインデントをしなくてはなりませんから、誰が書いても同じフォルムのコードになるのです。
for i in range(1,11):
if i % 3 == 0:
print(i)
つまり、コードが書きやすく、読みやすいということです。だから「作業が素早く」行えます。さらに、それは学習コストが低いというメリットを生み出します。ノンプログラマーにとっては、短い時間で習得が可能という点は大きな助けとなります。なぜなら、その学習時間は限られていて、貴重だからです。
バッテリー同梱
プログラミングの初学者にとって大きなハードルとなるものに「環境構築」があります。
多くの場合、図のようにプログラムを実行する本体だけでなく、コードを記述するためのエディタや、機能を追加するためのソフトウェアなどを個別に入手してインストールをします。OSや実現したいことに応じて、その選択肢が変わってきたり、必要に応じて設定ファイルを変更したりする必要も出てきます。
環境構築は、そのプログラミング言語について知識がゼロの状態にあるにもかかわらず、それを使うための環境を整えなければいけないわけです。ノンプログラマーにとっては、かなり難易度の高い作業になりがちで、もっとも挫折しやすいポイントのひとつといっても過言ではありません。
その点、Pythonには「バッテリー同梱(batteries included)」という思想があります。
たとえば、電池を使用する家電商品を買ったときに、商品のパッケージに電池が含まれていると、買い手としては助かりますよね。Pythonはそれと同じユーザービリティを提供するということを大事にしています。
ユーザーがPythonを利用しはじめるときには、ひとまとまりにパッケージングされている配布物をダウンロードすることになります。その配布物を「ディストリビューション(distribution)」といいます。ディストリビューションはWindows用、Mac用などが用意されており、その中にはOSに対応したPython本体、エディタ、その他さまざまなソフトウェアがひととおり含まれています。ダウンロード後、ダブルクリックでインストーラーが立ち上がりますので、ノンプログラマーでも慣れ親しんだ手順でインストールを完了することができます。
このように、Pythonの「バッテリー同梱」のポリシーは、これからプログラミングに一歩踏み出そうとするノンプログラマーにとって、たいへんありがたいものとなっています。
豊富なライブラリ
Pythonのディストリビューションには、Pythonのプログラムにさまざまな機能を追加するための機能拡張ソフトウェアが多く含まれています。それらの機能拡張ソフトウェアを「ライブラリ(library)」といいます。ディストリビューションには、多くのライブラリが含まれているので、それだけでも多くのことを実現できますが、内容によっては実現できないときがあります。
その際、Pythonには、他の開発者が開発して公開しているライブラリを使用させてもらうという選択肢があります。その開発・公開しているライブラリを「パッケージ(package)」といいます。配布されているパッケージは「The Python Package Index(PyPI) 」(パイピーアイと読みます)と
いうサイトで管理されていますので、覗いてみましょう。
「projects」と書かれているところが、このPyPIで管理されているパッケージの数です。執筆時点では31万以上ものパッケージが管理されていました。
この豊富に提供されているパッケージの中には、先端のプログラマーたちが注目している、機械学習、Web開発、データ分析、IoTといった流行の分野の強力なパッケージが取り揃えられています。それらのパッケージをすぐさま利用できることがPythonの人気を強く支えています。
無料のオープンソースソフトウェア
ノンプログラマーの皆さんは、プログラミング言語は単体の企業が独自に開発するものと考えるかもしれません。しかし、Pythonはそれとは異なる手法で開発が進められています。
Pythonは非営利団体である「Pythonソフトウェア財団(PSF) 」が中心となって「オープンソースソフトウェア(OSS)」として開発が行われています。
OSSというのは、そのソースコードが公開されていて、世の開発者はそれを自由に閲覧、使用、配布、改変をすることができるソフトウェアのことです。利用者は、それを無料で使用できますし、自由にカスタマイズもできます。また、外部の開発者の目に触れる機会が多いことから、迅速な問題の発見やフィードバックを得ることができるという利点もあります。
Pythonの人気とその成長は、シンプルで扱いやすい言語であるということに加えて、オープンな環境で世界中の開発者が、利他の精神を持って関わっているということにより支えられています。そのことを知ると、より一層魅力を感じますよね。
(つづく)
書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」関連記事
書籍「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト」に関連して、本書自体や、執筆に関する裏話や出来事、ノウハウ、イベントレポートなどを連載していきます。- ノンプログラマー必見!書籍「Pythonプログラミング完全入門」発売についてのお知らせ
- ノンプログラマーがプログラミングを最強の武器とする方法(前編)
- ノンプログラマーがプログラミングを最強の武器とする方法(後編)
- Pythonで得られる新たな「働く」の体験
- ノンプログラマーがPythonを選ぶべき理由
- Pythonを身につけるために必要なこと
- 書籍「Pythonプログラミング完全入門」で書いた文字数とかかった時間、その他いろいろを晒します
- 本日発売「Pythonプログラミング完全入門~ノンプログラマーのための実務効率化テキスト~」のあとがきを全文無料公開
- 「Pythonプログラミング完全入門」でもやったよ!都内の大型書店の行脚レポート