はじめに
近年、Webアプリケーション開発で用いるプログラミング言語として、Lightweight Language(以降LL)と呼ばれるスクリプト言語が人気を博しています。本稿では、そのスクリプト言語の中からPythonとWebアプリケーションフレームワークのDjango(ジャンゴと読む)を紹介します。
Pythonの大きな特徴として、「言語仕様が小さくシンプルであり、簡潔で読みやすいアプリケーションを作れる」という点が挙げられます。DjangoはPythonの簡潔さをうまく活かし、シンプルかつ本格的な開発ができるWebアプリケーションフレームワークです。本稿ではこのDjangoによるアプリケーション開発の基本をチュートリアル形式で説明します。
対象読者
- PythonによるWebアプリケーション開発に興味がある方
- 日頃、Perl、Ruby、PHP、Java、C#などPython以外のプログラミング言語で開発している方
- Webアプリケーションの開発をこれから学ぶ方、もしくは学びはじめたばかりの方。
必要な環境
- Windows XP
- Python 2.6.2
- Django 1.1 Beta
- SQLite3
執筆時点(2009年6月29日)では、Djangoの正式バージョンは1.0.2ですが、間もなく1.1がリリースされる模様です。本稿では1.1Betaを使用します。
システムのライフサイクル
プログラミング言語を選択する際の視点として、開発生産性やとっかかりの良さだけに目が行きがちです。もちろんその2つはとても重要な要素ですが、システムはバージョン1.0をリリースしたらそれでおしまいということはほとんどなく、その後も機能追加、修正を実施していくことがほとんどです。むしろ、ライフサイクルでみるとバージョン1.0の開発期間よりも、リリースされてからの時間の方が圧倒的に長いと言えるでしょう。それを示したのが図1です。
バージョン1.0からの時間の方が圧倒的に長く、企業ではジョブローテーションなどで人が入れ替わることを考えると、作られたプログラムが読みやすいかという点、すなわち保守性の高さは言語選択において重要なポイントであると言えます。
各スクリプト言語の思想・哲学
プログラミング言語は、それぞれに言語思想・哲学を持っています。例えばPerlは、TIMTOWTDI(there's more than one way to do it - あることをするのにいくつものやり方がある)という哲学を持っています。Rubyもその哲学を引き継ぎ、「多様性は善(Diversity is Good)」という哲学を持っています。すなわちPerlとRubyは言語のもともとの思想として、一つのことを実現するのに、プログラマによりさまざまな書き方があることを善とし、奨励するというスタンスであり、当然その言語を使用して開発されたプログラムは、規約などを定めない限り、開発する人によりさまざまに異なってくるということになります。
一方、Pythonは言語自身の機能をできるだけ小さくおさえ、ユーザーがいつも必要とする最小限の機能のみを提供するという思想で言語が設計されています。これより、Pythonでは同一の仕事をするプログラムは、大体どれも同じようなコードにおさまるという特徴を持ちます。これがPythonで書かれたコードの読みやすさ、保守性の高さに直結します。このようなことから、筆者は、エンタープライズのウェブサービスのプログラミング言語としてPythonに注目しています。
GoogleのPython採用
世界的なIT企業であるGoogleでは使用するプログラミング言語を3つ定めています。それはC++、Java、Pythonの3つです。Googleのサービス、社内ツールの多くがPythonで実装され、大規模なシステムで活用されています。代表的なサービスとして、YouTubeの大部分がPythonで実装されています。また2008年4月にGoogleがリリースしたクラウドサービスであるGoogle App Engineの言語としてPythonが採用されており、Djangoも同梱されています(Google App Engineに同梱されているバージョンは0.96ですが、Google App Engine上で全ての機能が使用できるわけではありません)。
Googleのような世界的レベルの企業が、Pythonを積極的に活用しているのも、Pythonがエンタープライズのシステムで用いるのに効果的な言語であることを認められているからではないでしょうか。欧米ではGoogleをはじめとしてPythonの良さが既に認められ、さまざまなシステムやサービスで使用されています。
Python Hack-a-thonの第1回の開催が、8月に予定されています。75名募集のところが、募集開始と同時にあっという間に定員に達し、キャンセル待ちが20人以上発生している状態です。このようなことからも、日本国内でのPython人気が高まってきていることが伺えるのではないでしょうか。
Hack-a-thon(ハッカソン)とは、ある開発テーマの技術に興味のあるプログラマーたちが、ノートPC持参で集まり、ソフトウェアをハックしたり、プログラムをコーディングしたりして、最後に開発したアプリケーションやサービスをプレゼンするというイベントです。日本でもここ最近で活発に開催されるようになってきています。