Perl and PHP
by Junichiro Tobe
- 1,326 views
Accessibility
Categories
Upload Details
Uploaded via SlideShare as Apple Keynote
Usage Rights
© All Rights Reserved
Statistics
- Likes
- 0
- Downloads
- 2
- Comments
- 0
- Embed Views
- Views on SlideShare
- 1,324
- Total Views
- 1,326
ブログが続かないわけというブログをやっておりまして、目にしたことがあるかたもいらっしゃるかもしれません。
Perl 大好きで、何事もPerl で解決したいと常日頃から思っておりますが、仕事でご依頼頂いてつくるWeb サイト
Web アプリ、つまり受託開発はほぼすべてPHP で開発しております。
バッチ処理などのWeb アプリではない部分はクライアントの目を盗んで、Perl で書いています。
はじめまして、bto です。
Vine SPARC の開発に参画していて、未踏ユース採択
元ウノウのCTO をやっていました
とにかく、Unix が好きでとくに言語にこだわりがないので、今日はYAPC に遊びにきました。
J:
使用言語、Perl ないじゃないですか
Web に至っては、PHPてwww
ここ、YAPCですよ。bto さん何しにきたんですか?
B:
PHP の国からPerl をdis るためにやってきました。
今日はみなさんの度肝を抜きますので、覚悟していてください。
J:
うわw
まあいいです。
昨年のYAPC の最後の講演の、有名なメッセージです。
僕はこれでやっぱりPerl だよ!って再認識したもんです。
Perl 全然死んでないんで、bto さんもPerl やるといいですよ
ちまたでプログラミングしている人は、だいたいPHPですよ?
いまここで聞いても意味ないかもですが、だいたいPHPですよ。
いや、確かにPHP 使う人多いですよ。僕だって仕事ではほとんどPHP ですからね。
まあ、Perl はあれですよ。
趣味で楽しむ分にはすごいいい言語で、PHPでは遊ぼうって気にはならないけど
Perl なら遊びたくなりますね。そんな感じなんですよ。それに、ユーザー層的にも
PHP は初心者層が多いから全体が多く見えるだけで、あるていどの習熟度を備えた
人同士で比較したら、対して人数は変わらないんじゃないですか?
Perl はシェア拡大とかあまり考えてきていませんし、そういう言語だと割りきれば素敵です。
B:
Perl はいまのままでいいの?
J:
ん?いまのまま、といいますと?
B:
Web アプリ開発の市場なんて受託がメインを占めてるわけですけど、そこはほとんど
PHP の独壇場ですよね?そういう状況のままでいいの?
J:
まあ、いいんじゃないですかね?
Perl ってそう言う言語ですから
B:
そしたら、今年牧さんががんばって設立したJPA っていうのは、どういう主旨で?
あれはいいですよ。僕も当然会員なんですけどね、bto さんはまだですか?
すぐに入ったらいいですよ
B:
で、なにがいいんです?
J:
JPAはPerl技術及び文化の啓蒙・促進のための組織です。
Perl技術を利用するプロジェクト、コミュニティ、ビジネスのサポートに 取り組む事を目的とします。
B:
つまり?
J:
公式のサポート団体が存在する、素敵な言語ですよってことを言いたいんです。
要は、受託開発で PHPばかりじゃなくてPerl も使ってよ。ってことですね。
極論しちゃいましたけど、Perl の仕事増やしたーいってことです。
B:
じゃあ、やっぱりシェア拡大とかそういうことも視野にあるんじゃないの?
J:
ああ、たしかにそうですね...
でも、PHP vs Perl みたいな言語戦争はまったくするつもりないんですけど、
PHP って使っている人の数は多いけど、それだけって感じしないですか?
もう、ただ多いだけ。
junichiro さん、全然わかってない。
多いってことは正義なんですよ。
「多いから使う」というのは確かな動機として存在するんですよ。
J:
あー、それはわかりますね
好きな言語で作っていいと言われても、Web だとPHP を選択しちゃいます。
それは、いざというときに他のリソースをアサインしやすいからなんです。
Perl で開発して、いざというときに外のリソースに頼るとしたら、endeworks さん
くらいしか思いつかないですからね。
そしたら、Perl ユーザを増やすためにはどうしたらいいんでしょうかね?
ひとことでいうと、PHP 戦略をとるべきですね。
言語の習熟コストがあがると、それに比例して言語の乗り換えコストが高くなるんですよ。
J:
はい
B:
だから初心者から集めるべきなんです
それがまさにPHP の狙ったところなんです
J:
僕はね、再三言ってきたようにPerl が好きなんですよ。
でも、まあ市場が許さないから、仕方なくPHP で開発をはじめることになったんですよ。
でも、bto さんはWeb アプリを始めるときに、まずPHP を選びましたよね?
それはなんでなんですか?
B:
最初にWeb アプリを書く仕事をした会社で使ってた言語がPHP
それだけです。
J:
おお。ホントに言語にこだわりないっすねー。
B:
まあでもね、それもね、さっきの話じゃないけど、数のなせる確率の仕業なんですよ。
J:
たしかに
そうしましたら、PHP のいいところ...
PHP のいいところっていうフレーズがすでに違和感ありますね...
いや、まあ今日はいいです。
PHP のいいところをちょっと考えてみましょうかね。
関数がたくさんある
J:
いきなり気持ち悪いところからきましたね。
呪文が多いなんて、マイナスですよ。マイナス。
覚えないといけないことが多くてうんざりっす。
B:
junichiro さん、よくタイトルを見てください。
(非エンジニア視点)なんですよ。
だから、この会場にいるほとんどの人が納得いかないと思うんです。
僕だって気持ち悪いですよ。
でも、便利なんです。
J:
確かに、昨日までhtml 書いてましたー。みたいな人が、いきなりなにか動的な
ことやろうと思ったら、リファレンスあたって、やりたいことそのまんまな関数を
見つけて動かすってのは、かなり手軽ですよね。
---
B:
次、header 自動出力
J:
さっきから無駄にエフェクトかっこいいですけど、言ってること全然かっこよくないっすよ。
B:
いや、だから...
J:
あー、はいはい。非エンジニア視点ね。
たしかに、エンジニアじゃない人にとっては、というかhttp の仕組みがわからない
ひとにとっては、header だのbody だのっていう概念がないですよね。
PHP みたいに割り切って、標準出力が全部body になるってのは、わかりやすいかもしれない。
B:
そうそう
J:
で、あれですよね。エンジニアならhttp の仕組みくらい多少勉強すべきっていうのは
また別の話で、ただ何か動くものを作りたいってひとに、それを強要しちゃいけないんですよね。
---
B:
$_GET, $_POST
J:
うん、これは便利。
自分でparse する必要ないからね。Perl でもまあだいたいCPAN モジュールつかったり、モダンな
フレームワーク使ったりすれば、リクエストされてきた値は、そんなに意識しなくても扱えるん
だけど、言語レベルでそういう設計になってるっていうのは、やっぱり魅力的ですよね。
B:
わかってきました?
J:
ええ
---
B:
それからテンプレートエンジン
J:
なるほど。PHP 自体がもうテンプレートエンジンそのものみたいなもんですからね。
Perl だとTT とかHTML::Template とか使うことになると思うんだけど、そういう
部分がもとからあるってのはいいですね。
というか、最初にweb アプリめいたものを作ろうって思ったとき、静的なHTML
ありきというケースは多いから、そうなるとテンプレートが言語レベルで備わって
いるってのは、やっぱり素敵なんでしょうね。
B:
あと、最後に忘れちゃいけな、もしかしたら一番重要なのがこれ
---
B:
女子率が高い
J:
...
J:
bto さん。会場、微妙に引いてますけど…(ここは臨機応変に)
まじめな話かと思ったら、結局こういう話ですか?
B:
いや、これ重要ですよ。
エンジニアで出会いのなさに嘆いている人はよく見るじゃないですか
J:
ええ
B:
http://movapic.com/pic/200909021845064a9e3ea22cb92
例えば最近僕の相方が結婚したんですけど、彼はPHP使ってますね。
関数がたくさんある
J:
いきなり気持ち悪いところからきましたね。
呪文が多いなんて、マイナスですよ。マイナス。
覚えないといけないことが多くてうんざりっす。
B:
junichiro さん、よくタイトルを見てください。
(非エンジニア視点)なんですよ。
だから、この会場にいるほとんどの人が納得いかないと思うんです。
僕だって気持ち悪いですよ。
でも、便利なんです。
J:
確かに、昨日までhtml 書いてましたー。みたいな人が、いきなりなにか動的な
ことやろうと思ったら、リファレンスあたって、やりたいことそのまんまな関数を
見つけて動かすってのは、かなり手軽ですよね。
---
B:
次、header 自動出力
J:
さっきから無駄にエフェクトかっこいいですけど、言ってること全然かっこよくないっすよ。
B:
いや、だから...
J:
あー、はいはい。非エンジニア視点ね。
たしかに、エンジニアじゃない人にとっては、というかhttp の仕組みがわからない
ひとにとっては、header だのbody だのっていう概念がないですよね。
PHP みたいに割り切って、標準出力が全部body になるってのは、わかりやすいかもしれない。
B:
そうそう
J:
で、あれですよね。エンジニアならhttp の仕組みくらい多少勉強すべきっていうのは
また別の話で、ただ何か動くものを作りたいってひとに、それを強要しちゃいけないんですよね。
---
B:
$_GET, $_POST
J:
うん、これは便利。
自分でparse する必要ないからね。Perl でもまあだいたいCPAN モジュールつかったり、モダンな
フレームワーク使ったりすれば、リクエストされてきた値は、そんなに意識しなくても扱えるん
だけど、言語レベルでそういう設計になってるっていうのは、やっぱり魅力的ですよね。
B:
わかってきました?
J:
ええ
---
B:
それからテンプレートエンジン
J:
なるほど。PHP 自体がもうテンプレートエンジンそのものみたいなもんですからね。
Perl だとTT とかHTML::Template とか使うことになると思うんだけど、そういう
部分がもとからあるってのはいいですね。
というか、最初にweb アプリめいたものを作ろうって思ったとき、静的なHTML
ありきというケースは多いから、そうなるとテンプレートが言語レベルで備わって
いるってのは、やっぱり素敵なんでしょうね。
B:
あと、最後に忘れちゃいけな、もしかしたら一番重要なのがこれ
---
B:
女子率が高い
J:
...
J:
bto さん。会場、微妙に引いてますけど…(ここは臨機応変に)
まじめな話かと思ったら、結局こういう話ですか?
B:
いや、これ重要ですよ。
エンジニアで出会いのなさに嘆いている人はよく見るじゃないですか
J:
ええ
B:
http://movapic.com/pic/200909021845064a9e3ea22cb92
例えば最近僕の相方が結婚したんですけど、彼はPHP使ってますね。
関数がたくさんある
J:
いきなり気持ち悪いところからきましたね。
呪文が多いなんて、マイナスですよ。マイナス。
覚えないといけないことが多くてうんざりっす。
B:
junichiro さん、よくタイトルを見てください。
(非エンジニア視点)なんですよ。
だから、この会場にいるほとんどの人が納得いかないと思うんです。
僕だって気持ち悪いですよ。
でも、便利なんです。
J:
確かに、昨日までhtml 書いてましたー。みたいな人が、いきなりなにか動的な
ことやろうと思ったら、リファレンスあたって、やりたいことそのまんまな関数を
見つけて動かすってのは、かなり手軽ですよね。
---
B:
次、header 自動出力
J:
さっきから無駄にエフェクトかっこいいですけど、言ってること全然かっこよくないっすよ。
B:
いや、だから...
J:
あー、はいはい。非エンジニア視点ね。
たしかに、エンジニアじゃない人にとっては、というかhttp の仕組みがわからない
ひとにとっては、header だのbody だのっていう概念がないですよね。
PHP みたいに割り切って、標準出力が全部body になるってのは、わかりやすいかもしれない。
B:
そうそう
J:
で、あれですよね。エンジニアならhttp の仕組みくらい多少勉強すべきっていうのは
また別の話で、ただ何か動くものを作りたいってひとに、それを強要しちゃいけないんですよね。
---
B:
$_GET, $_POST
J:
うん、これは便利。
自分でparse する必要ないからね。Perl でもまあだいたいCPAN モジュールつかったり、モダンな
フレームワーク使ったりすれば、リクエストされてきた値は、そんなに意識しなくても扱えるん
だけど、言語レベルでそういう設計になってるっていうのは、やっぱり魅力的ですよね。
B:
わかってきました?
J:
ええ
---
B:
それからテンプレートエンジン
J:
なるほど。PHP 自体がもうテンプレートエンジンそのものみたいなもんですからね。
Perl だとTT とかHTML::Template とか使うことになると思うんだけど、そういう
部分がもとからあるってのはいいですね。
というか、最初にweb アプリめいたものを作ろうって思ったとき、静的なHTML
ありきというケースは多いから、そうなるとテンプレートが言語レベルで備わって
いるってのは、やっぱり素敵なんでしょうね。
B:
あと、最後に忘れちゃいけな、もしかしたら一番重要なのがこれ
---
B:
女子率が高い
J:
...
J:
bto さん。会場、微妙に引いてますけど…(ここは臨機応変に)
まじめな話かと思ったら、結局こういう話ですか?
B:
いや、これ重要ですよ。
エンジニアで出会いのなさに嘆いている人はよく見るじゃないですか
J:
ええ
B:
http://movapic.com/pic/200909021845064a9e3ea22cb92
例えば最近僕の相方が結婚したんですけど、彼はPHP使ってますね。
関数がたくさんある
J:
いきなり気持ち悪いところからきましたね。
呪文が多いなんて、マイナスですよ。マイナス。
覚えないといけないことが多くてうんざりっす。
B:
junichiro さん、よくタイトルを見てください。
(非エンジニア視点)なんですよ。
だから、この会場にいるほとんどの人が納得いかないと思うんです。
僕だって気持ち悪いですよ。
でも、便利なんです。
J:
確かに、昨日までhtml 書いてましたー。みたいな人が、いきなりなにか動的な
ことやろうと思ったら、リファレンスあたって、やりたいことそのまんまな関数を
見つけて動かすってのは、かなり手軽ですよね。
---
B:
次、header 自動出力
J:
さっきから無駄にエフェクトかっこいいですけど、言ってること全然かっこよくないっすよ。
B:
いや、だから...
J:
あー、はいはい。非エンジニア視点ね。
たしかに、エンジニアじゃない人にとっては、というかhttp の仕組みがわからない
ひとにとっては、header だのbody だのっていう概念がないですよね。
PHP みたいに割り切って、標準出力が全部body になるってのは、わかりやすいかもしれない。
B:
そうそう
J:
で、あれですよね。エンジニアならhttp の仕組みくらい多少勉強すべきっていうのは
また別の話で、ただ何か動くものを作りたいってひとに、それを強要しちゃいけないんですよね。
---
B:
$_GET, $_POST
J:
うん、これは便利。
自分でparse する必要ないからね。Perl でもまあだいたいCPAN モジュールつかったり、モダンな
フレームワーク使ったりすれば、リクエストされてきた値は、そんなに意識しなくても扱えるん
だけど、言語レベルでそういう設計になってるっていうのは、やっぱり魅力的ですよね。
B:
わかってきました?
J:
ええ
---
B:
それからテンプレートエンジン
J:
なるほど。PHP 自体がもうテンプレートエンジンそのものみたいなもんですからね。
Perl だとTT とかHTML::Template とか使うことになると思うんだけど、そういう
部分がもとからあるってのはいいですね。
というか、最初にweb アプリめいたものを作ろうって思ったとき、静的なHTML
ありきというケースは多いから、そうなるとテンプレートが言語レベルで備わって
いるってのは、やっぱり素敵なんでしょうね。
B:
あと、最後に忘れちゃいけな、もしかしたら一番重要なのがこれ
---
B:
女子率が高い
J:
...
J:
bto さん。会場、微妙に引いてますけど…(ここは臨機応変に)
まじめな話かと思ったら、結局こういう話ですか?
B:
いや、これ重要ですよ。
エンジニアで出会いのなさに嘆いている人はよく見るじゃないですか
J:
ええ
B:
http://movapic.com/pic/200909021845064a9e3ea22cb92
例えば最近僕の相方が結婚したんですけど、彼はPHP使ってますね。
関数がたくさんある
J:
いきなり気持ち悪いところからきましたね。
呪文が多いなんて、マイナスですよ。マイナス。
覚えないといけないことが多くてうんざりっす。
B:
junichiro さん、よくタイトルを見てください。
(非エンジニア視点)なんですよ。
だから、この会場にいるほとんどの人が納得いかないと思うんです。
僕だって気持ち悪いですよ。
でも、便利なんです。
J:
確かに、昨日までhtml 書いてましたー。みたいな人が、いきなりなにか動的な
ことやろうと思ったら、リファレンスあたって、やりたいことそのまんまな関数を
見つけて動かすってのは、かなり手軽ですよね。
---
B:
次、header 自動出力
J:
さっきから無駄にエフェクトかっこいいですけど、言ってること全然かっこよくないっすよ。
B:
いや、だから...
J:
あー、はいはい。非エンジニア視点ね。
たしかに、エンジニアじゃない人にとっては、というかhttp の仕組みがわからない
ひとにとっては、header だのbody だのっていう概念がないですよね。
PHP みたいに割り切って、標準出力が全部body になるってのは、わかりやすいかもしれない。
B:
そうそう
J:
で、あれですよね。エンジニアならhttp の仕組みくらい多少勉強すべきっていうのは
また別の話で、ただ何か動くものを作りたいってひとに、それを強要しちゃいけないんですよね。
---
B:
$_GET, $_POST
J:
うん、これは便利。
自分でparse する必要ないからね。Perl でもまあだいたいCPAN モジュールつかったり、モダンな
フレームワーク使ったりすれば、リクエストされてきた値は、そんなに意識しなくても扱えるん
だけど、言語レベルでそういう設計になってるっていうのは、やっぱり魅力的ですよね。
B:
わかってきました?
J:
ええ
---
B:
それからテンプレートエンジン
J:
なるほど。PHP 自体がもうテンプレートエンジンそのものみたいなもんですからね。
Perl だとTT とかHTML::Template とか使うことになると思うんだけど、そういう
部分がもとからあるってのはいいですね。
というか、最初にweb アプリめいたものを作ろうって思ったとき、静的なHTML
ありきというケースは多いから、そうなるとテンプレートが言語レベルで備わって
いるってのは、やっぱり素敵なんでしょうね。
B:
あと、最後に忘れちゃいけな、もしかしたら一番重要なのがこれ
---
B:
女子率が高い
J:
...
J:
bto さん。会場、微妙に引いてますけど…(ここは臨機応変に)
まじめな話かと思ったら、結局こういう話ですか?
B:
いや、これ重要ですよ。
エンジニアで出会いのなさに嘆いている人はよく見るじゃないですか
J:
ええ
B:
http://movapic.com/pic/200909021845064a9e3ea22cb92
例えば最近僕の相方が結婚したんですけど、彼はPHP使ってますね。
PHP はデザイナとかも使うので、必然的に女子率は高くなるんですよ。
げんに、福岡のPHP勉強会は女子率高いです。
J:
これ、全然収集つかないな。
ちゃんとした話しましょうよ。
で、なんでしたっけ。
B:
つまり、非エンジニアがすぐ使えるってのがPHP の特徴なんですよ。
PHP はデザイナとかも使うので、必然的に女子率は高くなるんですよ。
げんに、福岡のPHP勉強会は女子率高いです。
J:
これ、全然収集つかないな。
ちゃんとした話しましょうよ。
で、なんでしたっけ。
B:
つまり、非エンジニアがすぐ使えるってのがPHP の特徴なんですよ。
で、それがシェア拡大の一躍を担ったと。
B:
そうです。
もっと具体例で話しましょうか?
例えば、ここに静的なhtml があるとして、ここに動的な要素として現在時刻を
表示させたいとするじゃないですか。javascript とかなしで、サーバサイドで
やるとしたらどうします?
B:
PHP だとこうですよ
---
拡張子変更
B:
拡張子かえて、
---
下記を追加
---
B:
このタグっぽいもの書くだけです
html 書いてた人にもとっつきやすくないですか?
J:
ええ、そうですね?
B:
Perl だったらどうします?
B:
PHP だとこうですよ
---
拡張子変更
B:
拡張子かえて、
---
下記を追加
---
B:
このタグっぽいもの書くだけです
html 書いてた人にもとっつきやすくないですか?
J:
ええ、そうですね?
B:
Perl だったらどうします?
B:
PHP だとこうですよ
---
拡張子変更
B:
拡張子かえて、
---
下記を追加
---
B:
このタグっぽいもの書くだけです
html 書いてた人にもとっつきやすくないですか?
J:
ええ、そうですね?
B:
Perl だったらどうします?
B:
PHP だとこうですよ
---
拡張子変更
B:
拡張子かえて、
---
下記を追加
---
B:
このタグっぽいもの書くだけです
html 書いてた人にもとっつきやすくないですか?
J:
ええ、そうですね?
B:
Perl だったらどうします?
---
結構めんどうなので省略
J:
結構めんどうなんですよね><
---
結構めんどうなので省略
J:
結構めんどうなんですよね><
というわけで、PHP 最強ですよ
J:
そうですね。
それにしても、YAPC でこのスライド、ありえないですよ
この1枚だけみると、あまりにも挑戦的というかなんというか、みたことない。
B:
まあ、ここまでは半分冗談ですけど、まあ、Web アプリを書く上で
最適な言語のひとつだとは認めてもらえたと思います。
J:
そうですね。
なにより、さっきの現在時刻の例は、あれだけではWeb アプリとは到底呼べないですけど
ようは、あそこから初心者ははじまるよってことですよね。
B:
そうです。
J:
たしかに、あのPerl Is unDead の講演でも、初心者が入りやすい環境、コミュニティを
作るべきといっていたので、これはそういうことも示唆してたんだなあと思えるように
なりました。
J:
でも、やっぱりこのスライドは目に毒なんで、めくってもいいですか?
個人的にはPerl 楽しめればそれでいいと思う部分もあるのですが、やっぱりJPA の
活動とかをみてると、少しはWeb アプリに使われるようになってもいいんじゃない?
って思う気持ちもでてきますね。
B:
そしたら、やっぱり、PHP の気持ち悪い部分を、もう少し見習って、非エンジニアに
選ばれる言語に変わって行く部分が必要なんじゃないですかね。
J:
そうですね
そうなると、さっきのPHP がPerl より優れているところ、
あくまでも非エンジニア視点でですけどね、
を、いくつかPerl にも取り入れて行けばいいんですかね?
B:
それが近道だと思いますよ。
言語レベルでは難しいと思うので、これらを満たすフレームワークとかがあれば
少しは近づけるんじゃないですかね
J:
たしかに、Catalyst は初心者には敷居が高過ぎますもんね。
B:
ほかになにかこれに近いフレームワークとかないんですか?
J:
あるにはあるんですが、メンテナがもうあきてるというかなんというか...
とにかくキラーフレームワークが必要ですね
言語レベルでは難しいと思うので、これらを満たすフレームワークとかがあれば
少しは近づけるんじゃないですかね
J:
たしかに、Catalyst は初心者には敷居が高過ぎますもんね。
B:
ほかになにかこれに近いフレームワークとかないんですか?
J:
あるにはあるんですが、メンテナがもうあきてるというかなんというか...
とにかくキラーフレームワークが必要ですね
言語レベルでは難しいと思うので、これらを満たすフレームワークとかがあれば
少しは近づけるんじゃないですかね
J:
たしかに、Catalyst は初心者には敷居が高過ぎますもんね。
B:
ほかになにかこれに近いフレームワークとかないんですか?
J:
あるにはあるんですが、メンテナがもうあきてるというかなんというか...
とにかくキラーフレームワークが必要ですね
言語レベルでは難しいと思うので、これらを満たすフレームワークとかがあれば
少しは近づけるんじゃないですかね
J:
たしかに、Catalyst は初心者には敷居が高過ぎますもんね。
B:
ほかになにかこれに近いフレームワークとかないんですか?
J:
あるにはあるんですが、メンテナがもうあきてるというかなんというか...
とにかくキラーフレームワークが必要ですね
言語レベルでは難しいと思うので、これらを満たすフレームワークとかがあれば
少しは近づけるんじゃないですかね
J:
たしかに、Catalyst は初心者には敷居が高過ぎますもんね。
B:
ほかになにかこれに近いフレームワークとかないんですか?
J:
あるにはあるんですが、メンテナがもうあきてるというかなんというか...
とにかくキラーフレームワークが必要ですね