Pythonとプログラミング言語|【Python・R・エクセル統計学・統計解析】
目次 Pythonによる統計解析【Python・R・エクセル統計解析】
Pythonとプログラミング言語
Pythonは、オランダ人のグイド・ヴァン・ロッサム氏が開発し、1991年に登場したプログラミング言語です。
名前は、イギリスのテレビ局BBCが制作したコメディ番組「空飛ぶモンティ・パイソン」に由来します。
Pythonという単語は、爬虫類のニシキヘビを示すことから、Python言語のマスコットやアイコンとして使われています。
Pythonのソースコードの書き方は、オブジェクト指向、命令型、手続き型、関数型などの形式に対応していますので、状況に応じて使い分けることができます。
オブジェクト指向を使えばより高度なプログラミングを行えますが、命令型、手続き型、関数型は名前こそ異なりますが、プログラムを書くための基本なので、まずはこれらの書き方を学んでからオブジェクト指向に進むのが一般的です。
Pythonの用途は広く、PC上で動作する一般的なアプリケーションの開発からWebアプリ、ゲーム、画像処理をはじめとする各種自動処理に使われる一方、統計解析、AI(人工知能)開発のためのディープラーニング(深層学習)の分野で多く利用されています。
現在、メジャーなプログラミング言語をピックアップすると、コンピューターが理解できる0と1で構築された命令を、人間が理解しやすい言葉で書くためのものがプログラミング言語で、以下が現在開発の現場で使われています。
Java
Web系や組み込み系など幅広い分野で利用されているので、Javaを知っていれば様々な分野で活躍できます。特にAndroidアプリの開発言語ということもあり、人気の言語です。
PHP
正式名称はPHP:Hypertext Preprocessor。Webアプリの開発を目的とした言語です。多くのサイトで、PHPで開発されたWebアプリが使われています。YahooのWebサービスではPHPが使用されています。また、Facebookでは、PHPを進化させた自社開発のHackという言語が使われています。
Ruby
小規模なWebサービスから大規模なものまで開発ができる言語です。以前は、Twitterの開発言語として使われていましたが、現在はJavaに移行しています。
Perl
開発が容易であることから、以前はWeb上のほとんどの掲示板サイトやブログサイトでPerlが使われていました。歴史ある言語として現在も需要は高く、はてなブックマークやmixiの開発言語として使用されています。
JavaScript
JavaやPHPのWebアプリがサーバー上で動くのに対し、クライアントのブラウザー上で動くアプリを開発するための言語です。Googleマップでも使われていて、「Webブラウザーで動くアプリ」はJavaScriptで開発します。
Visual Basic/Visual C#
Microsoft社の開発ツールVisual Studioに搭載されている開発言語です。デスクトップアプリの開発から、ASPという仕組みと連携したWebアプリの開発まで幅広く使われてdいます。
C/C++
WindowsやLinixなどのOSは、C言語で開発されています。PythonやRubyなどのプログラミング言語も、基盤の部分はC言語で書かれています。いわゆるソフトウェアの基盤になるところを支えているのがCやこれを拡張したC/C++言語です。
Pythonは学習に最適
Pythonは学習に最適だとよく言われます。
大規模な開発に用いられる一方で、初心者にも学びやすいという側面があります。
なぜなら、ソースコートが、しっかりインデント(字下げ)する決まりがあるので、コード全体の構造がわかりやすくなっています。
このインデントは強制で、必ず行う必要があります。
逆に言えばこれのお陰で誰が書いても読みやすいコードになっています。
また、面倒な手続きが少ないので、他の言語と比較して記述するコードの量が少なく、すっきりしたコードになります。
記号を使う場面も少ないので、コードの入力は楽です。
また、文法が平易で、直感的に理解しやすく、言語仕様を説明する際に使われる用語に、難解なものはほとんどありません。
Pythonは書いたらすぐに実行できる
Pythonはインタープリター型言語で、書いたらすぐに実行できます。
Pythonに似ている言語としては、PHP、Ruby、Perlなどがありますが、Pythonを含むこれらの言語は、インタープリター型と呼ばれる言語です。
これらの言語では、インタープリターと呼ばれるソフトが、ソースコードをその場で実行時に機械語に翻訳して実行します。
これに対しC言語はコンパイラー型と呼ばれる言語で、プログラムを実行する前にコンパイルという処理を行って、ソースコードを事前に機械語に翻訳しておく作業が必要になります。
コンパイルの手間がかからないので、手軽に開発できるのが特徴です。
このようなことから、何度も試行錯誤が必要な統計分析やAI開発の世界ではPythonが広く利用されています。
Pythonには面倒な手続きが少ない
Pythonなら10行程度で済むところが、Javaで書くと倍の20行になることがあります。
さらにC言語でも同じことをやろうとすると40行を超えることもあります。
1つのことをやるために必要な手続きの数が、Python→Java→C言語と増えるためです。
特にC言語は、ハードウェアを直接扱える強力な言語ですが、その分書くコードも多くなります。
大雑把に言えば、C言語のコードはPythonの3倍以上の行になりがちです。
必要なことを端折るのではなく、本筋とは関係がない煩雑な手続きをなくすことで、Pythonのシンプルなコードが実現されています。
やりたいこと以外の面倒なことは書かなくて済むので、プログラムが組み立てやすくなります。
複雑な処理を実現するには、その分多くのコードを書くことになりますが、まずは大きな処理を小さい単位に分解して、どんな順序で実行するのかを考えることになります。
これをアルゴリズムといいますが、本来の処理を行うための前段階の手続きが多いと、面倒な作法に振り回されてプログラム自体の本質が見えなくなることもしばしばあります。
Pythonには面倒な作法がほとんどないので、その分早くプログラミングスキルが身に付きます。
関連記事