【知っ得言語】「Python」~特徴と学ぶべきその理由~

昨今のAIや機械学習ブームで注目を浴びているPython。Pythonはシンプルかつ安定したスクリプト言語で、学習コストが低く、豊富なライブラリを使って効率的に開発を進められる利点があります。今回は特徴や歴史、バージョン、開発フレームワークなどPythonをザックリと紹介します。

Pythonとは

Pythonとはインタープリター上で動作する動的型付けのスクリプト言語です。動的型付けとはコーディング時点で変数や関数の型を定めず、実行時に型を決める言語を指します。似た言語にはRubyやPHPが挙げられます。

数年前まで日本国内ではあまり知名度は高くなく、知る人ぞ知るプログラミン言語であったと思います。しかしながら、昨今のAIブーム・機械学習ブームもあり、ここ数年でPythonユーザーは急激に増加しています。昨年、株式会社ビズリーチが運営する求人検索エンジン「スタンバイ」が発表した、「プログラミング言語別年収ランキング2018」でも、Pythonが年収でも求人件数でも上位を獲得し、その人気が伺えます。(参考記事:プログラミング言語別年収ランキング2018

 

Pythonの特徴

Pythonの特徴としては、以下のようなものがあります。

・わかりやすくて習得が容易
・高度なプログラミングもこなせる
・多くの場所で、多くのユーザーに利用されている
・フリーでオープン

わかりやすくて習得が容易

Pythonは他の言語と比べ、文法が簡単でとてもわかりやすく、これからプログラミングを始めるには最適とも言われています。Pythonはインテンドによるコードブロックの表現により、シンプルで読みやすいコードを自然と書いていくようになります。コードブロックとは“プログラムの処理の一つのまとまり”になります。他のプログラム言語であるPerlでは、コードブロックを“{}”で囲むことで表現しますが、Pythonではコードブロックとなる行頭をインテンドすることで表現します。(大抵の場合、半角スペースを4つ挿入します。)

また、Pythonでは“$”や”;“といった言語特有のお作法もほとんど必要としていないことから、プログラムの見た目も英文に近いものになり、人が読みやすいものになります。

高度なプログラミングもこなせる

Pythonはライブラリと呼ばれる他のプログラムで利用されることを前提にしたプログラムの集まりを簡単に使うことができます。Pythonには標準ライブラリと呼ばれる多数のライブラリも含まれ、複雑な処理を行う際には必要なライブラリを呼び出し、高度なプログラミングをすることが可能です
また、標準ライブラリ以外にもPyPI(パイピーアイ:Python Package Index)と呼ばれる世界中のPythonユーザーによって開発された様々なライプラリが公開・共有され、これを利用することで、より簡単に高度な処理を実現します。PyPIには統計や解析に必要なライブラリ(Scipy)やデータ分析ライブラリ(Pandas)、機械学習アルゴリズムライブラリ(scikit-Learn)など最先端技術に対応するライブラリも含まれています。因みにGoogleはPythonの機械学習やディープラーニングに対応するライブラリ「TendlFlow」の開発を続けており、Pythonはこれからも重宝される言語だと考えられます。

多くの場所で、多くのユーザーに利用されている

Pythonはシンプルでありながら、ライブラリを活用した高度な開発も簡単にできることから、世界中の多くの企業、組織で使われています。有名どころでは、Google、Dropbox、Instagram、それにNASAなどで利用されています。最近では科学計算を得意とするライブラリが非常に豊富になったこともあり、データサイエンス分野での機械学習で多く利用されています。

また、Pythonユーザーによるコミュニティ活動を通じた情報交換や交流も活発であり、メーリングリストによる情報提供やコミュニティが運営するチャットなどによる情報交換、更にはPyConと呼ばれるカンファレンスが世界各地で毎年行われています。

フリーでオープン

PythonはPSF(Python Software Foundation)ライセンスと呼ばれるオープンソースライセンスで提供され、このライセンス形態により自由にPythonを使用することができ、更に再配布や商用利用を可能にしています。

 

Pythonでできること

Pythonの特徴は理解頂けたと思いますが、その用途は広く、汎用性が高い言語ということもあり、様々な用途に使われています。

・Webアプリケーション
・デスクトップアプリ制作
・業務用ツール
・機械学習、ディープラーニング
・組み込み系アプリケーション   など

YouTubeなど巨大なWebアプリケーション開発においてもPythonは採用実績があり、デスクトップアプリケーションの制作にも対応します。また、Pythonには豊富なライブラリがあることは前述しましたが、Webスクレイピング用のライブラリなどもあり、作業を自動化することも可能であることから、業務を効率化するツールも作成できます。そしてPythonは数学にも強いことから、AIやビッグデータ解析には欠かせない、機械学習やディープラーニングアルゴリズムにも対応します。

最近、目覚ましい進化を見せているロボット開発にもPythonは使われており、組み込み系アプリケーションとも相性が良いと言えるでしょう。

 

Pythonの歴史とバージョン

Pythonの歴史は思ったよりも古く、その登場は1991年まで遡ります。当時のAmoeba(分散オペレーションシステム用OS)で使われているABC言語を拡張するために作られました。また、Pythonは私たちに「プログラマとしての心構え」を教えてくれる設計思想を示唆するものがあります。Pythonには「The Zen of Python」という設計思想があり、「import this」という隠しコマンド(Easter Egg)を実行すると見ることができます。

全訳は省略しますが、画面上に表示されるメッセージには「読みやすく、分かりやすく、複雑になりすぎず、簡単に説明できる実装を追求する」といった旨の格言が書かれています。 いわば、Pythonの設計思想とプログラマとしての心構えを示したものであり、それに基づいて今もPythonは進化を続けています。

しかしながら、Pythonのバージョンは少し複雑な事情も抱えています。Pythonでよく使われるバージョンには大別してPython 3とPython 2の2種類があります。どちらのPythonとも今も使われているのですが、Python 2は既に積極的な開発はされておらず、Python 2.7以降のバージョンはリリースされないことも決まっています。その意味では、これから取り組むのであれば、Python 3を選ぶべきでしょう。このような事態になったのは、Python 2からPython 3へ移行する際に大幅な変更をしたことで動作互換(後方互換)がなくなってしまい、その結果、両者が併存することになってしまっています。

簡単ですが、Python 2とPython 3の主な違いを列挙します。

・print文が関数に変更された
・整数同士の割り算が2.x系ではint型あるいはlong型だったが、3.x系ではint型に統合された
・例外構文の文法が変更された

細かな違いかもしれませんが、バージョン間での移植作業は思った以上に骨が折れるものです。

また、このように言語仕様が一部異なるため、Python 2で使えるライブラリの一部はPython 3では使えないということも起こります。現在開発されているライブラリの多くはPython 3向けに作られており、将来性と拡張性を考えればPython 3が圧倒的に有利といえるでしょう。

 

Pythonのデメリット


(画像引用元:Welcome_to_Python_org

前述したPythonの特徴はそのままメリットでもあります。シンプルな文法や豊富なライブラリなど、Pythonはメリットだらけに見えるかも知れません。しかしながら、実績という面ではまだ劣っている部分もあります。ではデメリットはどんなものがあるのでしょうか。

デメリット:Webサービス開発の実績が少ない

Pythonを使ってWebサービスを作ることはできますが、実績はRuby(Ruby on Rails)の方がはるかに上と言えるでしょう。このような事情もあり、一般的なWebサービス開発ではPythonのナレッジはあまり多くありません。このあたりが唯一と言ってもいい弱点かも知れません。これまでRubyを使って困ることがなかったのであれば、わざわざPythonに乗り換える必要はないという考え方もあります。

 

Python開発フレームワーク〜Django

(画像引用元:The_Web_framework_for_perfectionists_with_deadlines___Django

 

Pythonの開発フレームワークは数多くありますが、実務で多く使われるのはDjango(ジャンゴ)です。DjangoはWebアプリケーションでよく使われるフィードやフォーム、認証プロセスなどがあらかじめ含まれており、効率的なWebアプリケーション開発を実現するフレームワークとして業務で多く使われています。Pythonの開発フレームワークは星の数ほどありますが、PythonでWebアプリケーション構築や機械学習の勉強、実務で使えるツール作成などをやってみたい方はDjangoを試してみてはいかがでしょうか。

 

PythonとRubyの違い

どちらもスクリプト言語であるPythonとRubyを比較してみましょう。PythonはYouTube、Instagram、Pinterestなど有名WEBサービスに使われており、安定性に定評があります。またPython はAIやビッグデータ解析などに使われるライブラリが豊富です。一方Rubyの開発フレームワークRuby on Railsは現在もWeb開発フレームワークとして使われており、Pythonに比べると実績は豊富でナレッジも蓄えられています。またRubyは日本製の言語ですから、日本語のドキュメントが多く。国内のコミュニティも活発です。

PythonとRubyの大きな違いは、PythonがAIやビッグデータ解析などの用途で重宝されていることに対し、RubyはWebアプリケーション開発の実績が豊富で重宝されている点にあると言えるでしょう。

 

まとめ:情シスにPythonの習得は必要か!?

Pythonはシンプルかつ安定性が高いことからWebアプリケーション開発に用いられるケースが増えています。またAIにおける機械学習やディープラーニング、ビッグデータ解析など最先端技術にはPythonが使われています。故に自己スキルアップや今後のキャリア構築の面から考えるとディープラーニングやAI開発に欠かせない言語であるPythonは学んでおくべき言語の一つと言えるでしょう。
しかしながら、情シスとしての価値がないわけではありません。Webスクレイピングなど作業自動化ツール作成にも向いていますので、Pythonは情シスにとっても「知っ得」な言語と言えるでしょう。

 

【執筆:編集Gp 恵良 信】

関連記事

カテゴリー:

ナレッジ情シス知恵袋

情シス求人

  1. チームメンバーで作字やってみた#1

ページ上部へ戻る