ALAにJeffさんの記事が。
Webデザイナの聖地「A List Apart」にJeffさんの記事が掲載されました。Djangoに代表される、いわゆる「フレームワーク」とはあまり関係ありませんが、フレームワークという概念を再構成する意味でとてもおもしろかったです。
私の場合、頭の中で意味の強くなった概念は思考の流れをスムーズに、直線的にしてくれるのですが、その代償として論理が単純化されすぎて発展的な思考ができない事態に陥ります。そういう状況の中で内省できるだけの余裕があればいいのですが、実際にはどん詰まりの八方ふさがりになった気分になってしまうことが多いでしょう。
思考のコストと柔軟性、このバランスがうまくとれるようになりたいなと思ったのでした。
- Category(s)
-
Misc
WebデザイナーのためのDjangoはじめの一歩
露木さんによると船井さんがやる気らしい。うーむ、興味深い。しばらく遠ざかっていたDjangoですが、実際に動きがあるならば是非参加していじってみたいですな。
Webデザイナーという言葉が歩き回っているけれど、私はデザイナーではなくてむしろコーダーなのでもう少し曖昧にしてWeb屋さんにとってのDjangoは何かということを考えてみたいなと思いました。先のエントリで、考えるより手を動かそうと言うことを認識したのに実践できていないのはスルーしてください。今の私は文章を書きまくることが手を動かすことなのです。ただし私はプログラミングに関してはほとんど知識がありません。ネットや書籍などで見聞きした情報を適当に解釈して概念化してますのでその分差し引いた上でこの先にお進みください。
Djangoって何?
DjangoというのはWebアプリケーションフレームワークです。つまりWebアプリケーションのフレームワークです。
もっと言い換えてみましょう。
Webアプリケーションって何?
Webアプリケーションというのはざっくりいってしまえばブラウザ上で動くアプリケーションのことですので、身近なところでいえば、ブログ、掲示板、ネットショップやイメージギャラリーなどといったものが考えられるのではないでしょうか。つまり、Djangoというのはブログや掲示板、ネットショップやイメージギャラリーなどといったもののフレームワークです。
もっと言い換えてみましょう。
フレームワークって何?
フレームワークというのは直訳すれば枠組みです。いろいろな仕組みの集まり、といってもいいかもしれません。それではWebアプリケーションが必要とする基本的な仕組みというのは何でしょうか。
静的なWebサイトと違い、Webアプリケーションには動的な仕組みが必要です。動的というのは閲覧者のアクションによってサイトの振る舞いがいろいろ変わるということでしょう。静的なサイトではWebサーバにHTMLファイルや画像を配置すればそれでOKですが、動的なサイトを作成するにはHTMLファイルや画像を処理するだけではなくその他たくさんの「仕組み」が必要です。たとえばログインすると商品を買うことができるというようなネットショップはHTMLファイルと画像だけでは構築することができません。
もちろん動的といっても掲示板のようなとても単純なものもあれば、ネットショップやオンライントレードのように高度なセキュリティやスケーラビリティを要するものもありますので、一概に「これとこれとこれがあればOK」といったことは決められませんが、「このくらいのものがあれば単純で小さなものからある程度複雑で大きなものまで何となくできちゃうんじゃないのか」というようなものなら「基本的な仕組み」といってもよいのではないでしょうか。たとえば認証やセッション管理、データベースへのデータの保存といったことがこの基本的な仕組みとしてあげることができるでしょう。
結局のところ
Djangoというのは、ブログや掲示板やネットショップなどを作るために必要な基本的な仕組みを提供してくれるものです。
フレームワークいろいろ
アプリケーションフレームワークにはいろいろなものがあります。有名どころはJavaの「Struts」や.netの「ASP.net」などではないでしょうか。なぜならJavaも.netもわからない私でも聞いたことがあるフレームワークだからです。最近の流行はPerl、PHP、Ruby、Pythonなどのいわゆる軽量言語によるフレームワークです。軽量言語は何が軽量なのかよくわかりませんが、まぁ「お手軽」程度に考えておけばよいのではないでしょうか。
Rubyによる「Ruby on Rails」というフレームワークの出現以降、PerlやPHP、Pythonなどによるさまざまなフレームワークが生み出されてきました。もはや食傷気味とでもいえるWebアプリケーションフレームワークですが、それぞれに特徴があり、どれを選んでもいいように思えますので、好きなものを選べばいいのではないでしょうか。
選ぶ上で一番大きなウェイトを占めるのはやはり習得している言語だと思います。特にPerlやPHPといった言語はWeb屋さんであれば必ず一度はいじったことのある言語でしょう。PerlでいろいろCGI書いたよという人ならCatalystとか、Xoopsいじってていろいろカスタマイズしたりモジュール作ったりしたよという人ならCakeとかSymphonyとかRhacoとかいじってみればきっと幸せになるのではないでしょうか。しかしCGIは簡単なものをちょちょっとカスタマイズしただけだしー、Xoopsも動かして使ってはみたけれどモジュール作るとかカスタマイズするとか無理っぽいな…という人は、是非Pythonフレームワークをいじってみてほしいと思います。
CGIやXoopsでいまいちのめり込めなかったあなたへ
Pythonは日本ではマイナー気味です。レンタルサーバの利用可能言語とかにもあんまり載ってません。なのに何故Pythonなんでしょうか。
うーん、現実的に仕事でがんがん使っていこうという野望があるなら素直に他の言語のスペシャリストになった方がよいのかもしれません。特にWeb屋さんであればPerlやPHPの方がよっぽど仕事に生かせるのではないでしょうか。いやむしろJavasciptやActionScriptを勉強した方がよいかもしれません。しかし仕事とは(あんまり)関係なく自分のための便利なちょっとしたツールやオレ環境を構築する目的で、理解しやすかったり自学自習しやすかったりする言語を勉強したいなというのであればPythonがいいと思います。私は昔PerlでCGIを書いたり、XoopsでPHPをいじってみたりしましたが、結局Python環境に落ち着いています。好みは人それぞれで、好きになる言語も人それぞれですが、あなたがそれをまだ決めていなくて、たまたまこのエントリを目にしているのであれば、だまされたと思ってまずはPythonをいじってみてほしいと思います。
Djangoまでの道のり
いきなりDjangoのチュートリアルをやってもよいですが、その前にUnixシステムやWebアプリケーションの仕組みについての概念を頭に入れておくとよいかもしれません。まぁWeb屋さんであればUnixシステムのコマンドもある程度理解できるでしょうし、必要最低限の概念も頭に入っていると思いますし、なにより、基本的な知識すらあやふやな私ができるくらいですからよっぽど大丈夫だと思います。
Pythonなんていじったことが無いんだけど、という人はDjangoのチュートリアルと平行して、「みんなのPython」という書籍を読んだり、PythonでCGIを書いてみたりするとよいと思います。3つ同時平行だと大変そうですが、たぶんいけると思います。というか、私はそんな感じで勉強してます。
ということで
勢いのあるうちに少人数でもいいので勉強会の足がかりとなるような集まりか何かができるといいですね。そのまま東海のDjangoの勉強会となるもよし、Pythonの勉強会として範囲が広くなって行くもよし、とにかくアクションを起こさないとしぼんでなくなっちゃいますね。
東海Python Workshop 01終了
東海Python Workshop 01が終了して、なごすいの合奏に出席して、一仕事終えて、今に至ります。
衝撃の事実
WSは個人的にかなりどたばたしていました。4時開始だったので3時15分くらいに到着したのですが、到着後に会場の設営をしてから「さてモニタのテストでもしようか」というときに衝撃の事実が発覚したのです。
「パソコン忘れた…orz」
ありえないミスをしていました。パソコン以外の準備は整っており、プリントアウトしていろいろメモしておいた資料やマウス、電源コードなどほとんどすべてのものが鞄の中にあったにもかかわらず、パソコンだけがそこには無かったのです…。
気づいたのが3時半過ぎ。自宅までは地下鉄と歩きで30分ちょっとかかります。往復で1時間を超えます。今から取りに行っては間に合わない、しかしPloneの環境作りは自宅のパソコンの中でできてしまっているし、小田切さんのパソコンを借りるにしてもちょっとした準備が必要だし、そもそも小田切さんも発表者なのだからその準備も必要だろう…。
結局タクシーを使って家までパソコンを取りに行き、(WSのスタートには間に合いませんでしたが)何とか自分の発表には間に合うことができました。関係者各位様には大変ご迷惑をおかけして申し訳ありませんでした。
グダグダ
そんなこんなで最初からどたばた混乱状態でして、発表の方もテンパってしまい、発表時間も5分オーバー。発表中に電源コードに足を引っかけてしまったり、言おうとした単語が出てこなかったり、散々な発表だったような気がします。というか発表した記憶があまりないような感じでダメダメでした。せっかく東海ではじめてのWSなのにとんだ失態をさらしてしまいました。
「いじる」と「使う」
個人的には小田切さんの「WSGIの日々 名も無きFW」の発表がおもしろかったです。詳細は知識不足で理解不能な部分が多かったですが、いわゆる開発フレームワークがどのような要素で構成されているのか、それをどのようにつなぐのかといったことの断片を見ることができて、そういう抽象概念が頭の中で少し形になったような気がします。
私にとってはそういう「仕組み」を知るということ自体が楽しいのかもしれません。だから私はTurboGearsをおもしろいと感じるのかもしれません。資料を調べて、実際にいじってみて、おー動いたぞー、という楽しみがTurboGearsにはあって、それが私にはとても魅力的なのです。ものを作るという作業はとても労力が必要で、モチベーションを維持するのも大変ですし、それをメンテナンスしていくとなればもうこれはある種の修行みたいなものです。そういう意味ではTurboGearsで何かを作っていくというのは、たぶん私にはありえないことなのですが、限られた時間の中でちょっとした楽しみを味わうという意味ではTurboGearsは(何だか偉そうですみませんが)とてもよいおもちゃのような気がします。今回はTurboGearsの発表はありませんでしたが、次の機会には是非どなたかの発表があるといいなぁと思いました。
TurboGearsはおもしろいのですが、たぶん私には使いこなせなくて、「使う」という観点から見ると圧倒的にDjangoです。自分で使うための何かをTurboGearsで作ることはないと思いますが、Djangoでなら作るかもしれません(まぁ私はPloneでいっぱいいっぱいなのでそれ以外のものに手を出すほどの余裕はないと思いますが)。Djangoの発表は船井さんでした。Twitterもどきのアプリの紹介があっておもしろかったですが、時間が足りなくて不完全燃焼だったようです。次回は是非ともじっくり時間をとって発表していただきたいなと思いました。
Djangoはとても使いやすいと思います。私にとってのDjangoの魅力はDjangoテンプレートと、それから自己完結しているという点でしょうか。あまり知識のない人にとって自己完結しているというのはとても魅力的だと思います。私がPythonに興味を持つきっかけになったのはZope+COREBlogという環境でして、まぁZopeの底は果てしなく深いのですが、COREBlogというのはある意味完結した環境だったと思います。柴田さんはこのことを「箱庭」という言葉で表現していましたが、まさにそういう「私の国」とでもいうべき環境がコンパクトにまとまっているというのは非常に魅力的です。その意味でDjangoの、開発サーバもORマッパーもMTVも全部独自のものであるという自己完結性は私にとって非常に魅力的なものです(ドキュメントも一カ所にまとまってますしね)。
Plone王国
私は今は「なごすいPlone王国」の王様をしています。自分の国を大きくするつもりはなくて、ただ自分の国の中が平和で幸せであればいいなぁ、というのが個人的な希望としてあります。Plone王国はお城も家も商店街もいろんな社会的基盤が最初から用意されているので王様をしやすいです。TurboGearsにしろDjangoにしろ他のタイプの国はインフラから整備しないといけないのでなかなか大変であるように見えます(ただの気のせいかもしれません)。それからPlone王国では、他のPlone王国にも同じような形のお城や家や商店街が建っているので、お城が壊れたり、改造したりするときにはまねっこできるので便利です。政治に関する知識があまり無くても王様ができちゃいます。だから私はこの国にいるのでしょう。私にはこのくらいの国がちょうどよいのだと思います。
と思ったけれど、Ploneはツールというよりもモノなんだからそもそもこんなアナロジーは意味がなかったかなぁ。あれこれ考えるより手を動かせというやつですね。
- Category(s)
-
Plone
-
Python
-
Turbogears
- Django