インターネット上にある様々サイトは実はただのHTMLとCSSだけではなく、様々なプログラミング言語と組み合わさって作られています。従来は言語としてJavaやPerl、PHPなどが使われていましたが、最近はRubyやPython、Scalaなどの言語を使用して作られたウェブサービスも増え、注目を集めています。
今回はその中でも、数々の大手海外ウェブサービスに採用されているPythonについて言語の特徴を紹介していきます。
Pythonてどんな言語
Pythonの何よりの特徴はインデント(コードの行頭の空白)でプログラムの構造を決める事です。
他の言語で書かれたプログラムですと、多くのメンバーが関わっている場合プログラムを書く人によってインデントの量が変わってしまい、同じコードでもまちまちのスタイルで書かれてしまう事があります。よって時に非常に読みにくいプログラムが書かれてしまいます。
しかし、Pythonのようにプログラムの構造がインデントで決まれば、誰が書いても同じスタイルで書かれ、とても読みやすいコードになります。
このようなPythonのインデントの特徴を表すように、Pythonには言語の考え方として以下のようなものがあります。
“There should be one―and preferably only one―obvious way to do it”
誰もが正しいと考える、たった1つの方法をできる限り採用する
つまり、ある事をプログラムするなら一つの完璧な方法がある、という事でこれがプログラムの文法にも現れているわけです。
このような思想があるため、Pythonを使えば誰もが統一されたコードを書くことが出来ます。
* ちなみにPerlはこれと対極と言える、「There’s more than one way to do it」 (やり方は一つじゃない)という思想を持っています。
Pythonの何が良いの?
上記のようにコードスタイルを統一するための仕組みを持つPythonですが、他にも以下のような特徴があります。
- コンパイルの必要が無いため、簡単に実行し動作を確認出来る
- 誰が書いても同じようなスタイルになるため、インターネット上などの他の人のコードも読みやすい
- 言語の可読姓と実行速度を確保している
1. コンパイルの必要が無いため、簡単に実行し動作を確認出来る
CやJavaなどの言語は書いたプログラムを実行するために、コンパイルという準備が必要です。
この作業はやや時間が掛かり、何度もプログラムの動作確認をする際にはちょっとしたストレスになります。しかしPythonはコンパイルの必要が無く、簡単に実行して動作確認することが可能です。
2. 他の人のコードを読みやすい
冒頭で書いたインデントによるコードの構造を制御するための仕組みがあるため、インターネット上の他の人が書いたサンプルコードなども読みやすく、処理内容が理解しやすくなります。
3. 言語の可読姓と実行速度を確保している
Pythonは他の言語、JavaやPHPなどと比べると比較的簡潔にコードを書く事が出来るため、非常に読みやすいコードが完成します。かつ、Rubyよりもコードの実行速度は高速です。
Pythonでどんなサービスが作られたの?
最近導入事例が増えているですが、どんなウェブサービスで使われているんでしょうか?その一例を紹介します。
今やインターネットの屋台骨となっているGoogleが実はPythonを使用しています。特にYoutubeやGoogle App Engineでは大部分をPythonで実装しているようです。
FaceookやLineに続き日本でもユーザを大きく伸ばしている写真共有サービス、InstagramもPythonを使用しています。
クラウドファイル共有サービスのDropboxでも使用されています。
ファイル共有というセキュリティやスピードが求められるアプリケーションもPythonを使えば構築が可能です。
その他にもPinterest, Quora, Yelpなど特に海外の大手サービスでは数多く使用されています。
Pythonで簡単にウェブサービスを作れないの?
Pythonでウェブサービスを簡単に構築するための仕組みとしてDjango(ジャンゴ)というFrameworkがあります。Djangoにはウェブサイトを簡単に作るための様々な機能が含まれており、Pythonの言語が持っている従来の機能を拡張してくれるようなイメージになります。
ウェブサービスでは必須となるデータベースへのデータ保存や、管理画面の用意などもDjangoで簡単に実現することが可能で、前述のInstagramでもDjangoを使用されています。
このように、InstagramのようなオシャレなサービスもPythonとDjangoを覚えれば作成が可能です!
コメント