川井: |
その後の流れはどんな感じだったんでしょうか?
|
柴田: |
最初のプロジェクトのリーダーと「これからはWebですかね」という話もしていて、一緒にWebの開発に移ったんですが、最初に教わったのが、Zopeだったんです。Pythonで書かれたWebアプリケーションフレームワークですね。
|
川井: |
そうですか。しかし、この時代からPythonなんですね。
|
柴田: |
そうですね。当時は、Pythonの最新バージョンが1.5とかそんなもんでした。今は2.5かな。
|
川井: |
しかしWebの開発に移っていきなりPythonだったんですね。
|
柴田: |
そうですね。当時、Webの開発をしようということになって、日経BPのWebサイトを運営するためのシステムをつくるって仕事をオファーされて、面白そうだからやってみようと思ったんです。今で言うCMSですね。ZopeってCMSの構築には向いていて、Pythonってあまり聞かないけど面白そうだからってことで取り組み始めたんです。私は最初にやったパソコンもマイナーでずっと裏街道を歩いてきた人間なんで、ちょっと他の人が使わないようなものに惹かれるんですね。それでヒットしたのもありますけどね(笑)
|
川井: |
なんか分かる気もします。
|
柴田: |
メジャーじゃないところを狙うといいのは、競争相手が少ないんですよ。より少ない努力で目立つことができるじゃないですか。
|
川井: |
それは経営戦略風に言うと、FOCUS&DEEPですね。
|
柴田: |
まあ、ニッチは流れが速いので大変ですけどね。特にWebなんかはさらに大変ですね。それにニッチな世界での開発だと、情報が流れてくるのが海外からなんですよ。だから英語を少なくとも読めないとまずいですよね。書ければなおいいし、話せれば楽しいと思います。英語ができると他の人がリーチするより早い段階でリーチできるんですよ。
|
川井: |
明らかに情報は海外が早いですからね。
|
柴田: |
特にオープンソースの世界は、関わっている人も多いし、才能のある人もかなりいるので、全部、自分でやろうとしない方がいいですね。流れを読んで、うまく流れに乗って、全体の1%でも自分で何か生産的なことができればいいくらいじゃないですか。それぐらいの気構えでいかないと疲れちゃいますよ。
|
川井: |
個人知じゃなくて集合知ですからね。
|
柴田: |
逆に利用しようというくらいの方がいいかもしれませんね。
|
柴田: |
Zopeの仕事を始めて、当時は日本語の文献どころかアメリカの文献もなかったので、もうソースコードを読むしかなかったんですね。ただZopeはよくできていて、今でこそ、皆さんは、Ruby on RailsとかWebアプリケーションフレームワークがあって、Webアプリケーション開発にオブジェクト指向的なものを持ち込んでいますが、Zopeは当時からオブジェクト指向で、こういう風にWebの開発ができるのか、こういう風にすっきりできるのかっていうのを、ソースコードを読みながら学べたんですね。いい経験でした。
|
川井: |
これはいつぐらいですかね。
|
柴田: |
2000年の初め頃ですね。世の中は未だにPerlのCGIですよね。職人が作っているような時代です。そういう時代にZopeっていうのはテンプレートエンジンを持っていて、データベースもオブジェクトデータベースを格納しているんですよ。Pythonのオブジェクトを作ると、それがそのままデータベースに保存されるんですよ。こんなデータベースがあるのかと驚きました。今は、オブジェクトデータベースって例えば、Webの世界で商用として有名なのは2つあるんですが、1つはObjectStoreというやつで、JavaとかC++のオブジェクトを映像化するもので、Amazonで使われていますね。たくさんのメタ情報を扱うのにはオブジェクトデータベースがすごくいいんです。あとCACHE’というのがあって、これは医療系で使われています。医療系のCTスキャンだとかそういうものから吐き出されるデータの標準形式があって、それがXMLらしいんですよ。XMLをリレーショナルデータベースにマッピングするのはたくさんリレーショナルをつけなければいけないので、相当大変なんですけど、そういうものを扱うのにオブジェクトデータベースがすごく向いているんです。
|
川井: |
なるほど。
|
柴田: |
Zopeっていうのは、もともと新聞社のWebサイトをつくるために開発されたフレームワークで、そういうWebサイトのコンテンツを開発するためにはオブジェクトデータベースみたいなものがあった方がいいのではないかとZopeの開発チームが考えたんです。でもZopeの開発が始まったのは1997年なんですけど、その頃から彼らは、オブジェクトデータベースとかオブジェクト指向開発をしていたんですよ。そういうのを聞くと敵わないと思いますよね。
|
川井: |
それはすごいですね。
|
柴田: |
でもWebの開発にオブジェクト指向が使えるとか、Webの開発ってどういうものなのかっていうのは考え方なんですよね。だから、思想っていうのは積み重ね式なので、先端の思想を知るためにはまず歴史を知らなくちゃいけないんですね。もう一つ言えることは、より新しいものを生み出すためには今の先端を知らなくちゃいけないんですよ。たまたま私は目の利く仲間がいて、その人にたまたまZopeっていうのを教わって、よく見てみたらすごいっていうもので、当時からそういうものに触れて役に立つことが多かったですね。
|
川井: |
なかなか聞かないお話なので、興味深いですね。
|
柴田: |
Pythonってそういう意味で、すごく重要な意味を占めていて、ちょっと一昔前に騒がれたんですけど、Paul Graham の「Pythonのパラドックス」って説があるんです。例えば、「Javaの仕事の求人をするときに、必ずPythonのスキルを求めなさい」ってことなんですけど、Javaの技術者のスキルってピンきりじゃないですか。でもできれば優秀な技術者が欲しい。そういうときにPythonみたいにマイナーだけど技術的に研ぎ澄まされているそういうスキルを要求すると、Javaができる人の中でもすごくアンテナを張っていて、最新技術を習得する意欲のある人が集まってくるっていう意味なんです。
http://practical-scheme.net/trans/pypar-j.html
|
川井: |
なるほど。
|
柴田: |
最近は「Pythonのパラドックス」ではなくて、「Rubyのパラドックス」とか言われるみたいですけどね。
|
川井: |
確かに、我々もRailsで募集をかけると、Javaの技術が高い技術者の方が応募してきますね。
|
柴田: |
当時は特にまだ「Pythonのパラドックス」がすごく効いていた時代で、Pythonの持っている素養を見抜くような人は、もう1990年代の終わりの頃からオブジェクト指向のWeb開発をしていて、自分たちでオープンソースのオブジェクトデータベースを作って、それを仕事に使っちゃうようなすごい人が集まっていたんですよ。今、思い返すとそれはすごく象徴的なことだと思います。
|
川井: |
それから、Python一筋できているんですよね?
|
柴田: |
そうですね。Pythonは要素技術なので、PostgreSQLみたいなリレーショナルデータベースも使うことがありますけど、仕事をする上ではPythonですね。たまにブリッジを書いてくれといわれてJavaとかPHPを扱ったりもしますけどね。Pythonがフロントエンドになっていて、ビジネスエンドとかバックエンドがPHPとかPerlとかJavaになっていてちょっとだけ書くようなケースですけどね。
|
川井: |
柴田さんなら、それでも書けちゃうんですよね。結構なんでも書けちゃう方ですか?
|
柴田: |
なんでもというわけでもないですけど、比較的好き嫌いなく、メジャーな言語は大体大丈夫ですね。元は同じなので、あまり変わらないですよ。
|
川井: |
Pythonを始めたときは、どこかの会社にはいってやっていたんですか?
|
柴田: |
その時は、仲間と別の会社を立てて、そこで仕事をしていました。
|
川井: |
共同経営みたいな感じですか?
|
柴田: |
そうですね。
|
川井: |
受託系の会社ですか?
|
柴田: |
その会社は面白い会社で、たまに書籍の出版をしたり、英訳もしていましたね。ただ、しばらく続けていくうちに、やっている内容がはっきりと分かれてくるようになったので、私だけ別の会社を作ったという流れです。
|
川井: |
これが4年前ですね?
|
柴田: |
そうですね。
|
川井: |
何か、問題でもあったのですか?
|
柴田: |
会社って家みたいなものだと思うんですけど、家の中で違うことをやっている人たちがいるってあまりよくないことだなって思って、シナジーのあることでもないし、分けた方がいいよねって感じでしたね。
|
川井: |
独立すると仕事を自分でとってこないといけないと思うんですが、そのあたりは人脈とかでいけたんですか?
|
柴田: |
そうですね。私、あまり営業をしないんですよ。というのは営業してしまうと開発の時間が取れないんですね。なので営業しないんです。ただ、日々の仕事というかすでにお付き合いをいただいているお客さんがいるので、そこから追加で仕事をいただいたりとかしていますね。ニッチなところでやっていると、ただWebサイトを持っているだけで、お話をいただいたりすることもすごく多いですね。
|
川井: |
キーワード検索であたりますもんね。
|
柴田: |
そうですね。今、柱になっているのはPloneっていうZopeの上に作られたフレームワークがあって、これもCMSを作るためのものなんですが、XOOPSに近いような感じですね。そのPloneを使った案件が一番多いですね。
|
川井: |
本になっていましたっけ? 確かPython×・・・って本があったかと思いますが。
|
柴田: |
技術評論社のやつですね。あれは私の本なんですが、Ploneじゃなく、「TurboGears×Python」っていう本で、平たく言ってしまうとPython版のRuby on Railsみたいなものですね。そう言うとPythonの人は嫌がるんですよね(笑) 昔はO'Reillyの翻訳本しかなかったんですが、最近はPythonの書籍がたくさん出ていますね。
|
川井: |
確かに。よくみますよね。
|
柴田: |
ニッチなところで仕事をしていくって上で、雑誌の露出とか書籍の露出ってとても大きくて、私も、昨年「みんなのPython」っていう書籍を書かせていただいたんですけど、お陰さまで好評なんです。実は私、Pythonのコミュニティに関わって長いんですけど、自分で書籍を書くなんてことはまったく想像していなくて、誰か他の人が日本で始めての入門書を書くんだろうなあって思っていたんですけど、たまたま、出会いがあってお話しをいただいて、大変なのは分かっていたんですが、ライター経験もあったしブランディングにもなるし、やってみようかなって思って始めたんです。
|
川井: |
分かります。とても影響が大きいですよね。
|
柴田: |
この本は440ページくらいあるんですけど、すべての仕事をストップして、かかりっきりになって2ヶ月くらいかかったんです。辛かったけど、苦労した甲斐があったってすごく思いますね。この本を読んでいただいて、お声をかけていただくことが多くなりましたからね。
|
川井: |
なるほど。
|
柴田: |
比較的、簡易なことから書いているんですよ。私は基本的に人を信用しないところがあって、ずべての前提知識がないものと思って書いたんです。
|
川井: |
レベル的には、Webアプリケーション開発をやっていないと読めない感じですか?
|
柴田: |
いえ、まったくプログラミングをやっていなくても大丈夫だと思います。変数に代入するとどうなってというところから全部書いています。
|
川井: |
よく「素人のための」というような本があっても、読んでみると素人じゃ分からないことが結構あるなんてケースが多いんですけど、そのあたりはいかがですか?
|
柴田: |
やっぱり技術者の目線だと暗黙知のレベルが高くなっちゃうんじゃないですかね。私はライターをやっていたこともあって、そのあたりは、未経験の方でも分かるように書けたという思いがありますね。なんでワープロでプログラムを書いちゃ駄目なのかとか、本当はそういうところから説明した方がいいかもしれないですからね。
|
川井: |
何より、未経験だと分からないのが、このプログラムがどうしたら動くのかっていうのを実感していないんですよね。なので、何をどう組み合わせて、どういう条件や環境があると動くのかが分からないんです。
|
柴田: |
昔は、プログラムとコンピュータが近いところになったので、こうすればこう動くっていうのがすごく分かりやすかったんですよ。例えば、「Hello world」ってあるじゃないですか。昔は、「Hello world」が表示されると「あ! 表示された!」ってすごく嬉しかったんですよね。今って、Javaで「Hello world」を書いて、コンパイルして走らせてみましょうって言って表示されても誰も喜ばないと思うんですよ。それってすごく重要で、何か学ぶってことは、学ぶために投入したエネルギーのリターンが必要なんですよ。そのサイクルがないと学ぶことを続けていけないんですよ。そのサイクルをうまく作りながらちょっとずつ進めていくのが学ぶって過程だと思います。でも今は、リターンを得るためのハードルがすごく高くなってしまっていて、昔だったら記号を組み合わせて人間の形をつくるアスキーアートみたいなもので、うまくパラパラ漫画みたいに入れ替えて、表示すると走っているように見えるものでもみんな喜んだんですよ。今はだれもそんなんじゃ喜ばないですよね。だってインターネットで動画とかバンバン入ってくる時代ですからね。
|
川井: |
確かにそうですね。
|
柴田: |
昔は本当にコンピュータで音を出すだけでも喜べたんですけどね。今はハードルが高すぎて学ことのためのリターンを得るのがすごく難しくなっていますよね。だからプログラミングを始める人たちは、最初の段階では、プログラミングをした結果が目に見えやすい形でリターンとして帰ってくるようなものを使った方が続けていきやすいかもしれないですね。
|
川井: |
掲示板でもいいから作ってしまった方がいいっていわれますね。
|
柴田: |
ええ、動くものを作らないとリターンが得られないですよね。
|
川井: |
車に乗っているとしたら、マニュアルじゃなくてオートマっていう感じです。ひょっとしたらゴーカートに近い感覚なのかもしれません。なのに教本や講義だけで学ぶとやっぱりつまらないですよね。
|
柴田: |
そうかもしれませんね。ペダルとブレーキ踏んでいるだけで、たまにハンドルを動かすくらいのことかもしれませんから、まずはやってみることをお勧めしますね。 |