«前の日記(2008-01-25) 最新 次の日記(2008-01-27)» 編集

Matzにっき


2008-01-26 [長年日記]

_ 実家へ

私の両親が1年間の任期で東京での「ボランティア」の途中で 1週間だけ実家に帰ってくるということで、家族総出で米子へ。

昼食をいただいたり、おしゃべりをしたり 大変楽しい時間であった。 途中、私はうとうとしてしまったけど。

_ ひげを剃った

ふと、思い立って髭を剃ってみた。

しかし、家族の誰も気づかない。 夜寝る前になってやっと次女が気づいた。

そんなもんだ。

_ [Ruby] James on Software: Ruby Reddit

私の情報源のひとつ、Redditがsub reddit作成をユーザに開放した ということで、Ruby Redditができた。

他にもHaskellやScalaができてるみたい。

_ [言語] Attacking PHP

PHPがいかに駄目な言語か、という話。

  • いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要
  • hashやlistがobjectが区別できない
  • オブジェクト指向機能が壊れている
  • lambda(無名関数)がない。create_functionはlambdaじゃない
  • short_open_tagsやらsafe_modeやらregister_globalsがonになってるかもしれない
  • 一貫性のない名前(str_replace,strlen,parse_strとか)
  • 引数の順番がわかりにくい(in_arrayとかstrposとか)
  • strpos('abcd','a')は0を返すが、0は偽である
  • PHPで書かれたたくさんのアプリがあるがどれもHTMLとロジックが分離されてない(本当?)
  • 「PHPは初心者に学びやすい」と言われる。確かにそうかもしれないが、 おかげでどれだけのSQLインジェクションやらXSS脆弱性やら、 ひどいコードが放置されていることか
  • グローバル。使うんじゃないってば。

もちろん、反論もあるだろう。たとえば「Defending PHP」とか。

でも、個人的にはやはり否定側の方が筋が通ってる印象かな。

特に「PHPは初心者に学びやすい(と言われていることが問題である)」という部分に共感する。 PHPは初心者に簡単かもしれないが、初心者による手を抜いたWebアプリケーションは PHPが作られた当初はともかく、現代では害悪ではないだろうか。

Webアプリケーションをなめるな

PHPならではの理由がないわけではないことはわかる。 どこでもインストールされているとか、 デプロイが簡単とか。

でも、「初心者に簡単」を一般公開されるWebアプリケーションを 開発するための言語としての利点にするのはもうやめようよ。

追記

どの言語で書いてもおかしなコードを書く奴は書く」と いう指摘もあった。それは言うまでもない事実ではある。そこには反論しない。

が、本当に問題なのは、世の中には「おかしなコードを書くことを助長する言語」もある という点だ。 で、そういう言語にはおおむね「初心者にやさしい」というラベルがついている。 どういうわけだか。

たぶん、「初心者がおかしなコードを書くのをじゃましない」とか あるいは「初心者っぽいコードを積極的に支援する」から、「初心者に優しい」って呼ばれるんだろう。 もしくは「設計者がまだ初心者」とか。

そういう言語が存在しちゃいけないとは言わないけど(人に迷惑をかけない範囲で)、 ここ半世紀の言語の進化をないがしろにするのはもったいないと思うな。

本日のツッコミ(全98件) [ツッコミを入れる]
_ tsuwabuki (2008-01-29 11:42)

しかし、脆弱性があるWEBアプリケーションを放置したとしても、実際にクラックされることは本当にまれだと思うんですよ。大きなサイトは別ですが。それよりもプログラミングに親しみやすいほうが教育効果も高いのではないかと思います。習うより慣れろですね。PHPが初心者に親しみやすいかどうかは疑問ですが・・・。個人的にはSchemeが初心者にとって一番親しみやすいのではないかと思っています(構文の簡単さと親しみやすさは別ですか?^^;)。大学のカリキュラムでは最初にCを教えることになっているところが多いのはなぜでしょうね。

_ まつもと (2008-01-29 14:13)

愉快犯もそれなりに居ますから、「本当にまれ」と断言する勇気は私にはありません。教育はぜひ閉じた環境で行っていただきたいものです。<br>最近の大学ではCよりもJavaを教えているようです。それが良いかどうかはともかく、「今一番仕事が取れる言語」を教えるのが大学教育のトレンドのようです。<br>即戦力を求められてるんでしょうね。個人的には言語が違うとプログラムできないような人材は要らないと思ってるんですが。

_ Wittmann (2008-01-29 17:39)

>strpos('abcd','a')は0を返すが、0は偽である<br>Rubyの宣伝ですか?<br><br>PHPが駄目な言語だと言うことには同意しますよ。<br>FALSEを返すのに偽として使えないなんて理解できないです。

_ まつもと (2008-01-29 17:50)

リストの部分は参照先の翻訳で私が書いたものではありませんから、Rubyの宣伝という意図はありえません。この部分は単なる意見の紹介です。

_ bulbul (2008-01-29 18:05)

例えばリストにあるようなことを一つずつ直していったとして、PHPは駄目な言語から脱皮できるでしょうか。

_ うえだ (2008-01-29 18:11)

>>strpos('abcd','a')は0を返すが、0は偽である<br>> Rubyの宣伝ですか? <br><br>どの辺が宣伝なんでしょうか? jp2.php.net/strpos を見ると、そのまんまの内容が書いてありますが。

_ まつもと (2008-01-29 18:18)

bulbulさん、<br>リストにあるようなことを直していってPHPが良い言語になるかどうか、ですが、そのような可能性はあると思います。が、その「未来のPHP」は現在のPHPとは互換性がない上に、プログラムの見かけも今とは全然違ったものになるでしょう。それをPHPと呼ぶかどうか、という問題になりますね。まあ、1960年代のLispと現代のLispは全然違うわけですし、言語がまるっきり変わってしまうのは実はよくあることですが。<br><br>それよりも気になるのはPHPは<br> * 自分を駄目だと思ってない(or 駄目じゃないと思いこもうとしている)<br> * 他の言語から見て「駄目じゃない」方に進化する気がない<br>のではないかという点です。まあ、PHP6の話とかを聞くと進化するつもりはあるようですので、外野があまりうるさく言う必要はないのでしょうが。

_ a (2008-01-29 18:18)

2ちゃんねらにエサ与えないで下さい。

_ Liams (2008-01-29 18:33)

Webアプリケーションって大抵がそもそも舐められてしかるべき<br>アドホックな構造物だったりしないかなと思いますが・・・。<br><br>そしてどんなにイケてなかろうが、先割れスプーンで<br>用が足りるなら、それでやっつけるのもまた合理的な選択でしょう。<br><br>そして、先割れスプーンに先割れスプーンとしての改良進化がもしあるとすれば、それは普通のナイフとフォークとスプーンの進化とはまったく別の進化になるんじゃないかと思います。

_ (2008-01-29 18:45)

数ある意見の中でそれを取り上げたのは他ならぬ君だろ。何を言っとるんだね君は。

_ まつもと (2008-01-29 18:46)

Liamsさん、<br>Webアプリケーションが「舐められてしかるべきアドホックな構造物」という認識はありませんでした。というのも、Webアプリケーションは<br><br> * ユーザが事前に想定できない<br> * ユーザの善意を期待できない<br><br>からです。もちろん、ほとんどの「初心者が書いたWebアプリ」は見知らぬ人に使われる確率はさほど高くないとは思いますが、だからといってそれを当然だと期待しちゃうのは、SNSで犯罪行為を告白しちゃって「炎上」しちゃう人たちと同じ精神構造じゃないでしょうか。<br><br>いざ問題が起きてから「想像してなかった」とかいうくらいなら、最初から外につながったWebアプリなんて書かない方がよいと思います。そういう意味で「舐めるな」と書いたわけで。Webアプリを書く人はちゃんと「外」を自覚した方がよいと思いますが、初心者でそれができてたらかなり奇跡的。<br><br>さきわれスプーンの独自進化については興味深い気はします。が、PHPが独自進化を遂げる余地があるかどうかは未知数ですね。<br><br>そういえば、最近さきわれスプーンを見ませんねえ。うちの子供は給食でもフォークや箸を使うようです。やっぱり「時代の徒花(あだばな)」だったのかもしれません。PHPはどうかな。

_ Anonymous coward (2008-01-29 19:46)

> 脆弱性があるWEBアプリケーションを放置したとしても、実際にクラックされることは本当にまれ<br><br>まれだったら世の中にこんなにbotが流行ってbotnetで悩まされることもないよね

_ 通りすがりです (2008-01-29 19:48)

最初の論点は PHP の言語仕様に述べているのに、最終的には初めてのプログラミング言語を PHP に選んだ奴らバーカになっているのはなぜなのでしょうか?<br><br>本来ならば、PHP を選んだ初心者バーカではなくて、<br><br>○PHP 言語の開発者への提案<br>○セキュリティを考慮した初心者向けの書籍の提案<br>○PHP に限らず、セキュリティに対する教育の提案<br><br>が本来の議論なのではないでしょうか?<br><br>> ここ半世紀の言語の進化をないがしろにするのは<br>> もったいないと思うな。<br><br>少なくともこういう議論をするにあたって、感想を述べる立場にいる方ではないと思いますが、いかがでしょうか?<br>感想だけなら、ほかの方でもできる訳ですし、特に目新しい感想ではありませんし。

_ まつもと (2008-01-29 20:26)

私は「初心者バーカ」とは発言していないんですが。<br>発言していないことについて尋ねられても。<br><br>あと、私が「感想を述べる立場にいる方ではない」というのは、はっきりわからないんですが「自分の言語を持ってるやつはよその言語に口出すな」という意味なんでしょうかね。<br>私は別に目新しい議論をするために日記を書いてるわけではないんですが。

_ きゃっと (2008-01-29 20:34)

> 個人的には言語が違うとプログラムできないような人材は要らないと思ってるんですが。<br>個人的な話になりますが、私はこの一ヶ月で、<br>C/C++のプログラムを書き、rubyで簡単なソースジェネレータを書きました。<br>また、PythonのスクリプトとLuaのスクリプトを直し、UNIX上ではコンフィギュアを、<br>Windowsではwsh上でjavascriptを、ちょっと変わったところでGPU用のシェーダーも書きました。<br><br>例えある特定の言語にこだわっていたとしても、<br>他の言語で書かれたものを修正するには結局その言語を覚えるしかありません。<br>また、システムの内容によっては言語で生産性を飛躍的に伸ばすことができるのも事実です。<br>たとえばRubyではタイポの危険(!)をなくす為にも、製品として出すにはかなりのテストを行わなければいけませんが、<br>個人の趣味スクリプトならこの手間は大幅な軽減が可能ですし、場合によってはゼロになることもあるでしょう。<br><br>ですから、まつもとさんの言うことはまさしくそのとおりだと思うのですよ。<br>一つの言語しかできないのはいかんと思います。<br>ただ、これにさらに付け加えるなら、言語というのは仕事の内容で選ぶべきだということです。<br>これは昔からずっと言われていることですが、改めて主張したいのです。<br>「なんでもRuby」というのは「なんでもPHP」と同じであまり賢い選択とはいえません。<br>初心者がPHPを選択するのは非常に理にかなった選択だと思いますし、<br>高速サーバーを書くのにJavaを選択するのも合理的な考え方だと思います。<br><br>私が一番憂慮していることは、松江のシステム開発にしてもRuby検定にしてもそうですが、<br>「まずRubyという言語があって、その前提で何かをする/システムを作る」<br>という話になってしまっている点です。<br>何度も言いますが、言語は仕事の内容によって選ばれるべきです。<br>個人的には、自治体の業務システム開発ははっきりいってRubyには向かない、<br>というかスクリプトでやるべきではない業務だと思います。<br><br>まあその辺は、Webアプリケーションをなめてはいないし、<br>おかしなコードを書くことの助長もしないRubyならどうにかなるのだと思いますが。<br>当然、Railsはそのうち落ちなくなりますよね?<br>大規模開発をするなら他の言語よりもより詳細なコーディング規約が必要になるとか、<br>その規約を守らなければカオスに陥るとかいうのは、Rubyにはありえない話ですよね?

_ domo (2008-01-29 20:39)

プログラマではないから詳しくはよくわからないけど、<br>OSでいうと、Window = PHP、Unix=Ruby という感じかい?

_ Liams (2008-01-29 20:42)

>最近さきわれスプーンを見ませんねえ。<br>コンビニに行ってピラフとか買うとくれますよ(コンビニの系列によりますが)。<br>プラスチックのものですね。<br><br>えっと、まずひとつ。<br>一般に供されるアプリケーションにおいて安全性を確保すべきは当然のことですが、<br>それはことさらWebアプリだからではないでしょう。どんなアプリケーションでもそうだと思います・・・<br>(むしろコードの上での安全性の確保の技術的難易度はWEBアプリって低い部類に位置しませんか?<br><br>ま、「一般に供するならアプリケーションの安全性の確保ををちゃんとしろ」<br>とおっしゃりたかったというのは、了解しました。<br><br>つまり、「初心者がWEBアプリを作るのは危ないことだからよしなさい」<br>とおっしゃりたい、それは分かります。初心者が躓きながら作ったものが往々にして<br>危険なものであるのは否定しません。<br><br>でもそれそれがいきなりPHP(の言語仕様)のせいですかね?<br>そんなに「危険なコードを書くことを助長」してますかね?PHPの言語仕様が?<br>同じ学習者がrubyで、Perlで、同じように躓きながら、言語使用を一歩一歩理解しながらモノを作ったら、<br>同じSQLインジェクション脆弱性を作りこんでしまう可能性は似たようなものだと思うんですよね・・・<br>(んで、その可能性自体は否定されてないですよね?)<br>そのへんからなんだかよくわからないお話になってるような。<br><br>というわけで、結果としては、どうも僕には、まつもとさんが、<br>「PHPはイケてないよね」という理由として<br>「PHPは初心者向けといわれているからのがダメ だって初心者のコードは危険だもの」<br>っていう、なんか無茶な理由付けを(引用元的には半分ジョーク混じりみたいなニュアンスの項目だと思うんですが)<br>なぜか大真面目に主張されているように見えますけどどうなんでしょ。

_ まつもと (2008-01-29 20:49)

きゃっとさん、<br>> 私が一番憂慮していることは、...<br><br>心配していただいてありがとうございます。仕事に応じて(言語を含めた)ツールを選択するのは、当然のことと思います。とはいうものの、Rubyをはじめとした動的言語の適用範囲は拡大しつつあり、たとえば「自治体の業務システム開発にRubyは向かない」かどうかは必ずしも自明ではないと思います。で、我々はそれに挑戦しているわけです。もちろん、我々の判断ミスの可能性もありますが、その場合は我々が責任を取ることとなるでしょう。この「我々」は発注者の松江市から実装するSI会社までを含みます。<br><br>さて、件の松江市の「高額合算システム」ですが、Ruby on Railsを使って絶賛開発中です。ある意味、実にRubyらしくない作りではありますが、2月末検収を目指して特に遅延もなく進んでいるようです。「Javaよりは生産性が高い」とのことでした。が、ほとんどのメンバがRuby初体験のため、比較するのは難しいとも言ってましたが。<br><br>> 大規模開発をするなら他の言語よりもより詳細なコーディング規約が必要になるとか、<br>> その規約を守らなければカオスに陥るとかいうのは、Rubyにはありえない話ですよね?<br><br>皮肉にも聞こえなくもないのですが、その辺の「気持ち」はスルーするとして、大規模開発で各人が好き勝手すればカオスに陥るのはRubyだろうがなんだろうが、当然のことと思います。実際、上記の業務システムの開発では、それなりの規約を導入して守っていただいてます。

_ 通りすがりです (2008-01-29 21:12)

自分の中で脳内偏向が入っていました。すみません。<br><br>ただ、最初は言語仕様の話が、最終的には属人的な結論に至っているのが論理的に理解できませんでした。<br><br>> PHPは初心者に簡単かもしれないが、初心者による手を<br>> 抜いたWebアプリケーションは PHPが作られた当初はと<br>> もかく、現代では害悪ではないだろうか。<br><br>他の方が指摘していますが、他言語の初心者でもセキュリティを考慮した設計にならない可能性があります。PHP 言語の使用上、セキュリティを考慮したプログラムを書けないならば納得できますが、PHP でもセキュリティを考慮したプログラムを書くことはできます。<br>ならば、今回の投稿は PHP を利用する初心者を的にしているように見えます。しかも、PHP プログラミング初心者を対象にして「害悪」とまで言うのですから、悪意があると受け取ったまでです。<br><br>> はっきりわからないんですが「自分の言語を持ってるやつは<br>> よその言語に口出すな」という意味なんでしょうかね。<br><br>そういう意図はありません。<br>それよりも、セキュリティを考慮したプログラムはどういうものかを書いた方が、まつもとさんが考える「害悪のあるプログラム」は減るのではないでしょうか?<br>でも、投稿の結論は、「初心者による手を抜いたWebアプリケーション」で終わっていますから、どういう考え方が「害悪が減るか」ではないですよね?

_ まつもと (2008-01-29 21:13)

Liamsさん、<br>私は確かに「初心者が安全なコードを書くのは難しい」という意味のことを書きました。が、その点は言語によらず成り立つことです。「Rubyなら初心者でも安全なコードが書ける」なんて思ってもいませんし、そう読めるようなことは書いたことはないはずです。<br><br>私が自分の主張として書いたことは<br><br> * 初心者が安全なWebアプリを書くのは難しい<br> * PHPはWebアプリ用の言語<br> * 初心者が(外向きのアプリのために)PHPを使うのは望ましくない<br> * 「PHPは初心者に優しい」は不適切な宣伝文句<br><br>これだけです。Webアプリ用言語と見なされているPHPが「初心者に優しい」と宣伝することにより、「Webアプリは初心者にも書ける」という誤解が蔓延することは危険だと思います。<br><br>個人的に「PHPはイケてない」とは思っていますが、それはただ単に「イケてない」だけで、わかってる人がちゃんと使うならば別に使い物にならないわけではないし、憂慮すべきこともないと思います。

_ Wittmann (2008-01-29 21:50)

>Rubyの宣伝という意図はありえません。<br>>どの辺が宣伝なんでしょうか?<br><br>原文にある<br>>You’ve got to use if (strpos(’abcd’, ‘a’) !== false).<br>の部分を書かずに、PHPだけではなくC、Python、Perl<br>なども駄目で、Rubyは0が真だから駄目ではないと、<br>宣伝しているようにしか思えませんが。

_ Liams (2008-01-29 22:03)

いや、だから<br><br>「PHPは初心者に優しい」は不適切な宣伝文句<br><br>をすんごく心情的に主張されたいのはわかるんですけど、<br>その理由としてアプリの安全性を持ってくるのは<br>こりゃまたえらく無理を押そうとしてませんか?<br><br>そもそもプログラミング初学者に<br>「ライトウェイト言語は簡単だから、これでWEBアプリを作ってみましょう」という形で<br>学習を勧めるのは、どの言語でも同じ風潮なわけで、<br>PHPの宣伝文句を批判するよりもそういう風潮そのものを批判されるべきなのでは?<br>それをせずに『「PHPは初心者に優しい」は嘘だ』という主張だけを展開されてるように見えます。<br><br>>「Webアプリは初心者にも書ける」という誤解が蔓延することは危険だと思います。 <br>誤解かしら?<br>実際問題としてバイナリアプリケーションに比べ書きやすいのは事実だと思いますよ。<br>重ねて言いますが安全性の問題はもちろん否定しません。<br><br>そういえば先割れスプーンですが、<br>> いったんは学校給食の現場等から駆逐されたにもかかわらず、<br>> 割り箸への批判の高まりや高齢化の進展などから、今世紀に入って<br>> 見直されている道具 (関心空間のキーワードエントリより引用)<br>だそうです。

_ まつもと (2008-01-29 22:22)

通りすがりです,さん。<br>ではどのような仕組みがあれば安全性が高まるかについては別項で。<br><br>Liamsさん、<br>仕組みとしてWebアプリケーションがいわゆるデスクトップアプリケーションよりも簡単なのは同意しますが、外に出てしまえば予想外の危険にさらされるわけで、初心者向けの課題としては要注意だと思います。特にPHPは安全という観点からは逆にバイアスがかかってる印象があります。詳しくは別項。

_ きゃっと (2008-01-29 22:44)

> さて、件の松江市の「高額合算システム」ですが、Ruby on Railsを使って絶賛開発中です。<br>> ある意味、実にRubyらしくない作りではありますが、2月末検収を目指して特に遅延もなく進んでいるようです。<br>たとえば、この調子でrubyの適用範囲を広げていったとしましょう。<br>松江のシステムがrubyづくしになった頃、rubyに致命的な問題が発見されたとしたら、<br>いったいどうするつもりなのですか?<br><br>まあ、未来の危険について考えてもあまり意味は無いのかもしれません。<br>ただ私が言いたいのは、具体的なプロダクトの話ではなくて、考え方の問題です。<br>ruby以外の言語を「ダメな言語」と認定しネガティブキャンペーンを張ることで、<br>言語をruby一色にしたい気持ちは分からなくも無いです。<br>ただ、そのやり方と考え方はとても間違ってますよ、ということです。<br>rubyがどんなに拡張されたとしても、いろいろな言語を使うメリットはありますし、<br>原則として言語は選ばれる側にあるべきです。

_ Jitta (2008-01-29 22:44)

「言語の初心者」と、「開発という作業の初心者」とを、分けて考えるべき。どんなに言語が便利になって、開発者の様々な書くための苦労を軽減してくれても、ロジックを考えるという部分についてはまったく簡単にはなっていない。強いていうなら、ロジックに集中できるようになった程度。これを「開発という作業全般」と誤解しているのが、そもそもの間違いではないでしょうか。

_ まつもと (2008-01-29 22:57)

きゃっとさん、<br>心配しておられることがよくわかりません。<br><br>15年間さまざまな領域で使われてきたRubyに今まで見つかっていない致命的欠陥(直すことができないという意味だと解釈します)が見つかるということを心配するのは杞憂に過ぎないと思います。<br><br>バグなら直せばいいことだし。<br><br>さらに、私はPHPをイケてない言語だとは思いますが、別にRuby一色にしたいと思っているわけでもありませんし、そのためにネガティブキャンペーンを展開するつもりもありません。ですから、「そのやり方は間違っている」と言われても、そもそもそんなやり方してませんから。<br><br>ある言語(PHP)を「イケてない」と断言するだけで、思ってもいない「言語をRuby一色にするためのネガティブキャンペーン」を展開していると思われてしまうとは、言語設計者とは不自由なものです。

_ 通りすがりマン (2008-01-29 23:00)

私がRubyを使わない理由…まつもとさんの性格が嫌

_ コアラ似のおじさん (2008-01-29 23:13)

PHPよりVBScriptがそもそも元凶ではないですか?

_ きゃっと (2008-01-29 23:19)

「Attacking PHP」にある批判はすべて訳つきで紹介しているのに対して<br>「Defending PHP」の方はリンクの紹介のみ。<br>しかも具体的な言及なしに、<br>> でも、個人的にはやはり否定側の方が筋が通ってる印象かな。<br>ですから、少なくとも公平性には欠けると思います。<br><br>また、最初の記事中では<br>> PHPがいかに駄目な言語か、という話。<br>と、あくまで他人の書いた記事を紹介するというスタンスですが、その後のコメント中では<br>> * 自分を駄目だと思ってない(or 駄目じゃないと思いこもうとしている)<br>というように、「ダメ」だとはっきり断定しておられますよね。<br><br>私はこれを「ネガティブキャンペーン」と取りましたが、<br>そう思われても仕方の無い書き方だと思います。

_ 名無しさんの声 (2008-01-29 23:39)

プログラム言語ではないのでコードというと抵抗がありますが、記述してる人のおそらく半数以上が「おかしなコード」を書いているHTMLという言語がありまして・・・。<br>おかしなコードを書くのを邪魔しないのを売りにするとおかしなコードを書いてるのを裏技とか自慢しだしたり、あまつさえそれで解説サイト作ったりする馬鹿が増えるのである程度間違えにくくする配慮は今後必要になるのかもと思ったりします。<br>そうすると今度はXHTMLみたいにあまり普及しないという罠があったりしてバランスが難しいところですけれども。

_ o_6. (2008-01-29 23:45)

僕はずっとPHPを使っているのですが、日頃から感じてました。<br>0とfalseとか一貫性のない関数名や引数の順番。<br>このへんはどうみても道具として「イケてない」ですよね。<br><br>なにかきっかけがあれば他に乗り換えたかったのですが、<br>そのRail(s)に乗り損ねました。

_ まつもと (2008-01-29 23:49)

きゃっとさん、<br>確かにPHPに対して否定的なことを書きましたが、否定的な発言がすべてネガティブキャンペーンではないですよね。<br><br>ネガティブキャンペーンとは「広く大衆に対して相手を陥れる言動を流布することで相対的に自分に利しようとする行為」だと思います。私の日記はたまたま読者がたくさんいるので「広く大衆」という部分はかろうじて合致するとは思いますが、別に自分に利しようなんて気持ちはありません、断じて。<br><br>それを「ネガティブキャンペーンと思われてもしかたがない」とおっしゃるということは、私が(言語設計者であるがゆえに)「ある言語はあまり良くない」と発言することは、自動的に「相手を陥れて自分の言語を宣伝しようという行為」であると認定されると、そのように、きゃっとさんは思っておられるわけですね。私自身がどのように感じているかとは無関係に。そういうことですよね。<br><br>痛くもない腹を探られて、やってもないことを「そのやり方は間違ってる」と言われるのは、多少気分は良くないですが、まあ、そのように感じられるのを止めることはできませんから、「どうぞご自由」にって感じです。<br><br>だいたい、私はRubyをこれ以上宣伝してもいいことなんて全然ないんですけどね。

_   (2008-01-29 23:55)

>たぶん、「初心者がおかしなコードを書くのをじゃましな<br>>い」とかあるいは「初心者っぽいコードを積極的に支援す<br>>る」から、「初心者に優しい」って呼ばれるんだろう。も<br>>しくは「設計者がまだ初心者」とか。<br>><br>>そういう言語が存在しちゃいけないとは言わないけど(人に<br>>迷惑をかけない範囲で)、ここ半世紀の言語の進化をないが<br>>しろにするのはもったいないと思うな。<br><br>Rubyがそうじゃないという根拠はどこにあるんでしょうか?

_ まつもと (2008-01-29 23:59)

すくなくともRubyは「初心者に優しい」と宣伝してません。

_   (2008-01-30 00:02)

「Rubyが初心者のおかしなコードの作成を邪魔しない言語ではない」根拠<br>「Rubyが初心者っぽいコードを積極的に支援しない言語」である根拠<br>「設計者がまだ初心者」じゃない根拠<br>「Rubyが人に迷惑をかけない言語」である根拠<br>「Rubyがここ半世紀の言語の進化をないがしろにしていない」根拠

_ まつもと (2008-01-30 00:14)

まず第一に私はRubyについてはそのような特質を備えているともいないとも主張してないので根拠を出さねばらないいわれはないと思います。<br>ついでにいえば、PHPがそのような特質を備えているともいないとも断言はしてないですね。「たぶん」そのような特質を備えている「だろう」し、それが「初心者に優しい」という主張の根拠になっている「かもしれない」とは書きましたし、事実そういう印象を持っていますが。<br><br>それに私が仮に根拠を出したとしても主観的なものにならざるをえませんし、不毛だと思いますよ。

_   (2008-01-30 00:23)

つまり追記部分は印象でしかないんですね?<br>それにしては後半部分はPHPが「そう」であると読めてしまいますが。<br>さらに、後半部分はあなたがRubyという言語の設計者であるという事実を踏まえると、PHPを貶め、Rubyを持ち上げているようにも読めますが。

_ 名無し (2008-01-30 00:24)

まあ、「10分で作れる××」とか、初心者にやさしいフリをした技術が胡散臭いという点には激しく同意ですが。

_ emo (2008-01-30 00:27)

いろいろな言語を積極的に勉強すれば、どの言語がイケてて、どの言語がイケテナイというは当然でてくるでしょう。<br>そしてそれはその人の立ち位置によって違うでしょう。<br>例えば仕事としてやる人と趣味としてやるひとは当然違う訳です。<br><br>立場を無視したとしても、言語に求める「イケテル」という感覚も人よっても違うでしょう。<br>まつもとさんが言いたい事は、どんな立場な人でも、どんな感覚を持った人にとっても、<br>WEBに公開する危険性というのは平等だという事です。<br>それを、PHPなら「Webアプリは初心者にも書ける」というのはミスリードだという事ではないでしょうか。

_ まつもと (2008-01-30 00:28)

上の方にも書いたように、私自身にはPHPを批判するつもりがないとはいいませんが、Rubyを持ち上げる意図はありません。すくなくともこのエントリでは。

_ きゃっと (2008-01-30 00:28)

> 私が(言語設計者であるがゆえに)「ある言語はあまり良くない」と発言することは、<br>> 自動的に「相手を陥れて自分の言語を宣伝しようという行為」であると認定されると<br>レスをもう一度よく読んでほしいのですが、私は「言語設計者だからうんたらかんたら」<br>なんてことは一言も言っていません。<br>また「自動的に」なんてこともどこにも書いていません。<br>紹介の仕方が公平性に欠けるし、客観と主観の使い方が恣意的なことをもって、<br>これはおかしいのではないか? と指摘しているのです。<br><br>気分を害されたのなら謝ります。<br>痛くもない腹なのですから、「なんかおかしなこと言ってるやつがいるよ(笑)」<br>くらいの気持ちで受け流してもらえると幸いです。

_ torisugari (2008-01-30 00:56)

日本にまれな実用レベルの言語処理系作者と<br>濃ゆい言語処理系討論を<br>*直接に*にやれる千載一隅の状況なのに、<br>「php 批判、その批判、批判の批判…」なんてメタ構図に落ちるばかりなのが、<br>もったいないというか、毎度おなじみネットの華というか。。

_ なか (2008-01-30 00:56)

どんな言語でも普及すれば、初心者が入ってきて<br>○○言語プログラマの平均的な質は下がる。<br><br>生産性が高い言語ほど、その○○言語プログラマの質は下がる。<br><br>それだけのこと。

_ まつもと (2008-01-30 00:57)

きゃっとさん、<br>では、私が言語設計者であることと、私が他の言語に対してネガティブキャンペーンを展開したと読み取られたのは無関係だとおっしゃるんですね。<br><br>ということは、PHPに対して否定的なことを述べる人はすべてネガティブキャンペーンを展開しているとおっしゃるおつもりなのでしょうか。それはいくらなんでも考えにいことですし、それに、私がこのエントリでRubyとPHPを比較していないにもかかわらず『ruby以外の言語を「ダメな言語」と認定しネガティブキャンペーンを張る』とか『言語をruby一色にしたい気持ちは分からなくも無い』とおっしゃったので、これは、言語設計者である私が特別扱いされているのだと推測したのですが。<br><br>公平性に欠けるとおっしゃいますが、私が自分の個人的なブログでにPHPに対して否定的な意見のほうをより大きく取り上げて共感してはいけない理由はないように思うのですが。

_ 石蕗 (2008-01-30 01:14)

政治家が個人的なブログで個人的な意見を書いても<br>やはり誤解されることは避けられないのと同じことではないでしょうか

_ 名無しさんの声 (2008-01-30 01:54)

本筋は、PHPに対するネガティブキャンペーンというより、変なプログラム、HTMLでいうならValidですらないXHTMLを書くような製作者の氾濫が好ましくないってことを言ってるような気がします。<br><br>んで、PHPは「HTML?知ってるよタグだろタグ!」ってレベルの製作者が何も考えずに使える言語故に、そういう連中が俺スゲーな解説サイトとかつくって毒をばらまくと更に汚染が広がるのでHTMLみたいになる前に。<br>いや、PHPの解説サイトとかの現状はよく知らないんですけどね。すんません。ただ、もしそういうサイトが増えてくるならHTMLにおけるStrict厨みたいな存在がPHPユーザの中にこそ必要だと自分は思います。

_ きゃっと (2008-01-30 01:55)

> ということは、PHPに対して否定的なことを述べる人はすべてネガティブキャンペーンを展開しているとおっしゃるおつもりなのでしょうか。<br>なんども申し上げますが、私はそんなことは一言もいっていません。<br>ただ、その結論にたどり着くまでの過程があまりにも主観的だし、結論自体もあまりに偏っているといっているのです。<br><br>だって、<br>> が、本当に問題なのは、世の中には「おかしなコードを書くことを助長する言語」もあるという点だ。<br>> で、そういう言語にはおおむね「初心者にやさしい」というラベルがついている。どういうわけだか。<br><br>> たぶん、「初心者がおかしなコードを書くのをじゃましない」とかあるいは「初心者っぽいコードを積極的に支援する」から、<br>> 「初心者に優しい」って呼ばれるんだろう。もしくは「設計者がまだ初心者」とか。<br><br>> それよりも気になるのはPHPは<br>> * 自分を駄目だと思ってない(or 駄目じゃないと思いこもうとしている)<br>> * 他の言語から見て「駄目じゃない」方に進化する気がない<br>> のではないかという点です。まあ、PHP6の話とかを聞くと進化するつもりはあるようですので、<br>> 外野があまりうるさく言う必要はないのでしょうが。<br>ですよ?<br>さらに後のコメントでは<br><br>> ついでにいえば、PHPがそのような特質を備えているともいないとも断言はしてないですね。<br>> 「たぶん」そのような特質を備えている「だろう」し、それが「初心者に優しい」という主張の根拠になっている<br>> 「かもしれない」とは書きましたし、事実そういう印象を持っていますが。 <br><br>と続けています。もう一度繰り返しますが、私は<br>「PHPに対して否定的なことを述べる人はすべてネガティブキャンペーンを展開している」<br>なんてことは一度も言っておりません。<br><br><br>> では、私が言語設計者であることと、私が他の言語に対してネガティブキャンペーンを展開したと<br>> 読み取られたのは無関係だとおっしゃるんですね。<br>「言語をruby一色にしたい気持ちは分からなくも無い」というのは気持ちは分かる、<br>といっているだけでそれ以上でも以下でもありません。<br>まあ確かに、言語設計者であるというバイアスがまったくかかっていないとは言いません。<br>ただそれは、「言語設計者が言ったから」ではなくて「言語設計者にしてはあまりにもひどい内容だから」<br>というものです。

_ (2008-01-30 02:08)

プログラミング言語を創る者として、他の言語を見下すようなことを何度も書くのって、どうなんでしょう?<br>害悪とか、足元にも及ばないとか、問題発言があまりにも多すぎますよね。<br>まじめなPHP開発者さん達が読んだら、どう思うでしょうかね。

_ torisugari (2008-01-30 02:36)

がんばるぜと思うんじゃね?

_ まつもと (2008-01-30 02:48)

PHPの設計者Rasmus Lerdorfは「PHPは言語じゃない、ツールだ」って言ってましたね<br><br>http://www.rubyist.net/~matz/20050804.html#p05<br><br>言語設計者同士は意外と仲良しですよ。

_ nanashi (2008-01-30 03:02)

どっちでもいいから、ちゃんと動くものつくってくれーー<br>って、社長が言ってるぞ。

_ VIPから来ました (2008-01-30 03:34)

PHP開発者は一人じゃないわけで

_ どうでもいい (2008-01-30 04:12)

本当にくだらないことをわざわざ記事にしてまで相当暇人なんですかね?<br>言語は正直何だっていい。<br>クライアントからすれば動くものを作ってくれれば言語なんて2の次すぎる…。

_ VIPから来ました (2008-01-30 04:16)

てか、昨日の日記でPHPの批判をしてみたけど、コメントの突っ込みで失速しちゃったから、他に悪い点を探してみました、みたいな感じかしら。

_ 知り合いから薦められて (2008-01-30 09:41)

「おかしなコードを書くことを助長する言語」<br>Rubyでおかしなコード書いてみればOKですか?<br><br>所詮、ある言語の開発者が他の言語(ツールだということですが)を客観的に見ようとしても無理。PHPがいかに駄目な言語かだとか攻撃的に書いてる時点で、「その点自分が作ったRubyは〜」みたいなことを示唆していると勘ぐられてもしょうがない。<br><br>本当に客観的に見ているのであれば、ご自身の作成されたRubyのダメな点も日記で取り上げられてみては?

_ medusajap (2008-01-30 13:26)

こんちわ。<br>PHPってmagic_quotes_gpcがデフォルトでOnだったりするんで、Offとしない限りSQLインジェクションが起こることはまず無いです。<br>「クロスサイトスクリプティングは不完全」と言う人もいますし、そこら辺の真偽は不明ですが^^;

_ medusajap (2008-01-30 13:34)

↑ごめんなさい追記です。<br>つまりどの言語にしても、同じようなSQLインジェクション対策は必要ですよ、ってことです。

_ 軟式PHP (2008-01-30 13:46)

>PHPってmagic_quotes_gpcがデフォルトでOnだったりするんで、Offとしない限りSQLインジェクションが起こることはまず無いです。 <br>いや、起こりますよ。文字コードの罠がありますから。<br>基本、SQLはプレースホルダー使ってエスケープしないと。

_ PHPプログラマ (2008-01-30 14:32)

> でも、「初心者に簡単」を一般公開されるWebアプリケーションを開発するための言語としての利点にするのはもうやめようよ。<br><br>http://www.seshop.com/detail.asp?pid=7135<br>「初心者もびっくりのカンタンなステップでブログや地図検索機能などを作ることができます」なんて甘言でRoRを紹介しています。これでセキュリティホールが生まれたら、Rubyを「害悪」と呼びますか?

_ かんた (2008-01-30 14:53)

まつもとさんはネガティブキャンペーンをされているつもりは毛頭なく<br>現にphpを使ったアプリケーション多くはおっしゃっていることは<br>間違いないでしょう。(それで被害を被ったのかもしれないですね。。)<br><br>phpしか使えないので他言語のことはまったくわからないため<br>反論すらできない自分はありますが、1つ言わせてください。<br><br>まつもとさんという立場の方がこういう記事を書かれること事態に問題があるということを、、<br><br>> だいたい、私はRubyをこれ以上宣伝してもいいことなんて全然ないんですけどね。 <br>本心はそうでしょう。まつもとさんの貢献されたことは偉大です。<br>でも世間では「Rubyのまつもと」以外何者でもないのです。<br>そういう方が「Webアプリケーションをなめるな」という言葉と「PHP云々」<br>が同列に並んでいれば、大多数の人がどう捕らえるか、、<br><br>それをわからずにこの記事を書かれた、、わけではないと信じたいのですが、<br>(弾さんは<br> > Matzさんの意見に、想定内の反応が返って来ている。<br> http://blog.livedoor.jp/dankogai/archives/50993137.html<br> とおっしゃってますが、、)<br>世間では「まつもとと弾がPHPネガティブキャンペーンをしている」に発展しています。。<br><br>悪いところは悪いということは重要です。<br>ですから、Rubyを作られてコミュニティに貢献してきたことを<br>PHPや他言語にもしてあげればよいのではないでしょうか。。<br>あなたはそれだけ影響力がある方なのですから・・・<br><br>言葉の使い方、、ぜひ神経をつかってください。。

_ takahashim (2008-01-30 15:02)

>hashやlistがobjectが区別できない<br><br>正しくは「hashとlistが区別できない」ではないかと(anythingはあんまり意味がないような)。

_ まつもと (2008-01-30 18:44)

PHPプログラマさん、<br>> 「初心者もびっくりのカンタンなステップでブログや地図検索機能などを作ることができます」なんて甘言でRoRを紹介しています。<br><br>困ったものです。そのような宣伝文句は害悪だと思います。

_   (2008-01-30 19:27)

なぜRubyの場合は宣伝文句が害悪で済ませるのですか?<br>なぜPHPの場合は言語が害悪とまで言うのですか?

_ 通りすがり (2008-01-30 20:53)

> なぜRubyの場合は宣伝文句が害悪で済ませるのですか?<br>> なぜPHPの場合は言語が害悪とまで言うのですか?<br><br>PHPの場合は「PHPが初心者に優しい」でPHP=初心者に優しい。<br>Rubyの場合は「RoRで初心者にびっくりカンタン」でRoR=初心者に優しい。<br>Matz氏自身がRuby=初心者に優しいと前面に押し出したものでない以上、<br>派生物について氏に責を問うのは筋違いでしょ。

_   (2008-01-30 20:58)

確かに^^;<br>すみません、つい熱くなってしまいました・・・

_ ムース (2008-01-30 21:14)

Rubyがどうの、PHPがどうのとか言う技術者って<br>Emacsがどうの、viがどうのとか言う技術者と同じで<br>それまでどんな凄い実績があっても<br>どーにもしょぼい人に成り下がっちゃうんで<br>日本技術者の雄であるまつもとさんにはやめて欲しいなぁ…。<br><br>それもPHPを良い方へどうこうしようと言う事でもなく<br>おまけに他人の言葉を借りて蔑むなんて<br>なんかたち悪くないですか?

_   (2008-01-30 23:41)

なかなか上質な釣りをありがとうございますた

_ PHP3ユーザ (2008-01-31 01:54)

言語の好き嫌いはともかくとして。<br><br>「PHPは初心者に学びやすい」と言ってるのはPerlでCGIを書くのが一般的だった時代にPHP4が登場し、PHPを紹介するセミナーや出版物などにデカデカとうたい文句で載っていたからじゃないかと推測します。<br>その当時の(間違った?)イメージが定着してしまったことでこんなことが言われているのではないかと思いますが。

_ 通りすがり (2008-01-31 01:55)

通りすがりで差し出がましいことを言うようですが、批判する時は対象と論点をはっきりさせたほうがいいと思います。<br><br>「Webアプリケーションをなめるな」は多分に扇情的に見えます(太字フォント大なんて「EULAには合意しない」以来ですし)が、これは誰を対象に言っているのでしょうか。<br><br>・PHP(もしくはRasmus)なのか<br>・PHPで簡単にセキュアなWebアプリが書けると煽るメディア?なのか<br>・セキュアでないWebアプリを作ってしまう初心者なのか<br><br>そのどれでもあるように読めますし、それぞれになめるな、というだけの妥当な理由はある気がしますが、理由はそれぞれ異なりますよね。それを一緒くたにして批判すると、それぞれから感情的な反論が返ってくるのは仕方がない気がします。<br><br>個々のご意見はもっともと思うだけに本筋以外で余計な反論が起きるのは残念に思います。

_ oo (2008-01-31 10:17)

>これは誰を対象に言っているのでしょうか。<br><br>その前の段落に書いてありますよ。<br>“「PHPは初心者に学びやすい」と言っている人”ですよね。<br>少なくとも論旨から他の二点は出てきようがない。

_ FatalPain (2008-01-31 10:58)

客観視できるはずの人たちがそうでないコメントをしている。<br><br>その段階で「釣り」っすよねw

_ _ (2008-01-31 12:37)

>ooさん<br><br>>“「PHPは初心者に学びやすい」と言っている人”ですよね。<br>>少なくとも論旨から他の二点は出てきようがない。<br><br>そう読むのがまつもとさんの主張どおりであるかと思いますが、果たして出てきようがない、と言い切れるでしょうか。<br>私にはそうでないように読む人がいるように思えます。<br>理由は、<br>・前半部の大半はPHPの言語仕様に対する批判であり、Webアプリケーションの話は唐突に出てきており、さらに批判対象が明示されていない(推測すればわかりますが)。<br>・「PHPは初心者に簡単かもしれないが、初心者による手を抜いたWebアプリケーションは PHPが作られた当初はともかく、現代では害悪ではないだろうか。」<br>この文章は決して初心者自体を攻撃しているものとは思いませんが、初心者が読んで「そんなの俺のせいじゃなくて煽ってるメディアや会社のせいだろ」と割り切れるとお思いでしょうか。この後に「Webアプリケーションをなめるな」なんて強い調子で言われたら、誤解だとしても少なからず感じるところはあるように思います。<br><br>つまりは論の真偽は別として誤読を生みやすい文章構成ではないかと思います。

_ mm (2008-01-31 13:57)

そだね「(PHPはperlと比較して)初心者に優しい」<br>Rubyも枕詞つけて初心者に優しいとググレばあちこちで引っかかる。<br>Rubyも初心者にやさしいとあちこちで喧伝されてますよ既に。<br><br>javaと比較してセキュリティが危険なので<br>RubyでのWebアプリ開発は、<br>Webアプリを舐めてることになりますね。

_ php6ヶ月目 (2008-01-31 17:56)

それこそ初心者に毛が生えた程度の私が言うのもなんですが、PHPは習得するのが確かに容易に感じました。<br>事実全くプログラム触ったことの無い私が今では普通(基本になるプログラムがある上でですが)に組替えたりできるようになりました。<br>勿論セキュリティ云々言われていますが、それも含めて日々勉強です。<br>初心者にはとっつきやすい言語が良いというのは、以前にコメントしている方が居る通りだと思います。<br>PHPの初心者としてですが、他の言語を知りませんしPHPも全てを把握しているわけではないので本当の恐ろしさや、優位性を理解しているわけではありません。<br>そんな中でこう言うPHPを否定するような記事を見ると、それを仕事にして行こうとしている私のような人に不安を与えるだけなきがします。<br>セキュリティが低いので、こうやったらPHPはもっと良くなる等前向きに考えられるような記事を書いて欲しかったですね。<br>Rubyは聞いたことがありますが、その開発者である方がこう言う記事を書いていることが非常に残念に思います。

_ >php6ヶ月目 (2008-01-31 18:09)

>PHPを否定するような記事を見ると、それを仕事にして行こうとしている私のような人に不安を与えるだけ<br>不安になった人は、まともな頭を持っていれば、それを解消するために、ちゃんとセキュリティを勉強するはず。仕事にするなら、尚の事。<br>あと、PHPのどこが悪いのかMatzは明確に書いているよ。そこを直せば良いってことでしょう。<br>理解できないと言うのなら、それは悲しい話だけれど、あなたの勉強不足。

_ 元職業プログラマ (2008-01-31 23:41)

php6ヶ月目さん<br>それこそ初心者に毛が生えた程度の私が言うのもなんですが、職業プログラマとして生計を立ててゆくつもりならば、悪い事は言わないですから、いろいろな言語から、貪欲に、且つ、謙虚に学んだほうがいいと思いますよ。<br>それと、Linuxで仕事をされているのであれば、先ずbashのマニュアルを一通り読んで理解したほうが良いと思いますよ。

_ ryo (2008-02-01 10:40)

>php6ヶ月<br><br>正直、PHPerにはこういうヤシが多い。<br>PHPをphpとか書いちゃうし。<br><br>matz氏は他の言語をrespectすることを忘れてはいない。<br>http://www.itmedia.co.jp/enterprise/articles/0701/15/news024.html<br>みんなここらへんよめ。

_ 元職業プログラマ (2008-02-02 00:39)

ryoさん<br>正直、PHPerにはこういうヤシが多い。<br>DOSカルチャーは、UNIXカルチャーと違って、大文字と小文字を区別しないカルチャーですから、そんな事で目くじらを立ててもしかたがないですよ。<br>そういえば、matzではなくMatzが正しくないですか?<br>ところで、PHPerの発音は、ピーエッチパーですか?<br>それとも、ピーハー? はたまた、ピッパーでしょうか?

_ 元職業プログラマ (2008-02-02 00:44)

やっぱり、ピーエイチピーアーが正解でしょうか?<br>PHP愛好家のみなさん、大変申し訳ありませんでした。

_ 元職業プログラマ (2008-02-02 09:38)

"正直、PHPerにはこういうヤシが多い。"の/^/に、">"を入れ忘れました。大変申し訳ありませんでした。

_ ans (2008-02-03 07:43)

>PHPer<br>ぺーぺーだと思います。

_ - (2008-02-03 10:11)

オブジェクト指向にがっかりしていない人がたくさんいるんだな。<br>Objective-Cの青い本をしっかり読むと、オブジェクト指向サイドの人達がいかに安モンプログラマーをこけにしてこき使おうと思っていたのかがよく分かるよ。まあ、プログラミングランゲージってのは多かれ少なかれそうだけどね。<br><br>ということで、私はルビーみたいな物よりPHPやLISPの方が優れてると思うね。

_ まーまー (2008-02-03 10:14)

つーかネタでしょw<br>言語を批判されてカッとなる精神構造こそが問題なのだよ。

_ PHP他使い (2008-02-03 10:17)

正直、御大の言う通りどの言語でも学習してしまえばかわらんけどさりとて仕事でRubyを使うのかと言えばパフォーマンス的に<br>難しいパフォーマンス的にはJavaのがいいと、開発で頭数<br>揃えるにはPHP、WindowsでGUIならVBとなる現状打破を是非お願いします。

_ っていうか釣られすぎ (2008-02-03 10:38)

<br>言語なんてPHPでもJavaでもRubyでもなんでもいいんだよ。<br><br>作ってる時の楽しさ、できあがった後のエンドユーザの喜びの言葉、デスマのつらさなど、仕事やシュミでのプログラミングでその言語が作業者の負担をチョットでも軽減させたり何らかの形で貢献してくれりゃ、何だっていいんだよ。そこに小難しい三流哲学を持ち込まれても終わりのない(しかも第三者から見てもなんら得られるものがない)議論にしかならない。

_ あまグラマー (2008-02-03 11:49)

まつもとさんは、発言のときにもう少し言葉(単語)を選んだほうがいいですね。

_ よねだ (2008-02-03 13:02)

PHPがダメだというのは良くわかりますし(PHPに限らず)初学者が安全なWebアプリケーションを書くのが難しいというのも真ですね。<br>しかし、そのダメさ加減でもって初心者をプログラミングへの道へといざなった(っている)という功績はあると思うんですね。デスクトップアプリからプログラミングを始める人は少なくなっているようで、Webアプリケーションが初心者にとってプログラミングに取り組む場になっていることは否定できないのではないかと。<br>初学者がWebアプリを作ったり公開するのは迷惑だ、それを助長するPHPはゴミだ、もっと勉強してから来てね……というのは、まともそうな意見に思えるが、実は単に初心者、プログラミングにこれから取り組もうとしている人を排除してるだけ、になりかねないんで、何か代案を出すべきじゃないですか(Rubyは初学者向きではないそうですから)。<br>どなたかも書いてましたけど、何十年?もプログラム書いてきた人がPHPはダメだ、Javaはゴミだ、などと言うのは、まあわかるんです。でも、それを初心者が選択する言語の基準へと敷衍することはできないないんじゃないかと思ってるんですけどね。<br>たとえばオブジェクト指向の有難味なんてのはプログラムをある程度書いてみて初めてわかるわけで。Rubyみたいな言語がいい(とおしゃっているわけではないのは理解しています)、いやObjective-Cがいいよとか、いやいやLispだよとか、いろいろ初心者に勧めるのは、言ってみればベテランのエゴ、あるいは頑固じじいの繰り言みたいなもんかもしれません(余計なお世話みたいな)。C++とかPHPみたいな、わりと行き当たりばったりな言語の方がプログラミングの取り掛かりには適してる事実があるんで、それを全否定するのはいかがのものか、という気がしますね。

_ 単語より返答相手を選ぶべき (2008-02-03 13:16)

どこからどう読んでもPHPの話しかしていないのに、どうしてRubyの話にしたがるコメントがこんなに多いのか不思議。<br>まったく「言語設計者とは不自由なものです」ね。<br>こういう人たちは、美術評論家が否定的なコメントを出すと「お前の絵も下手じゃん」とか言うんですかね。<br>下手に勘繰りを入れず、元の意見が妥当か不当かの話にすればもっと実のある議論になるでしょうに。

_ まとめ (2008-02-03 14:14)

同じ言葉でも書いている人によって意見の意味が変わるのはあたりまえですよ。まつもとさんが書けばRubyの話になって当然でしょう。とはいえ、上の議論では、Rubyそのものの話になっているというよりは、まともとさんに判りやすいようにRubyを例に出して議論を進めているだけのように思います。<br><br>でも、私に言わせればそんなことも不毛ですね。<br>だって、これって仏教の矛盾点や布教方法の問題点を指摘したローマ法王に対して、「お前が言うな」と言ってるようなものですから。他の例だと、○○民族は優れていて××は劣っていると、「○民族の国の酋長が(ここ大事)」言っているのにたいして、「あんたが言うな」とか「建設的ではないでしょ」言っているのと同じ。そんな諫言はまったくの無駄。現に本人に伝わってないでしょ。

_ まとめ (2008-02-03 18:29)

・モノの言われ方にひどく傷つけられてしまい、phpそっちのけでヒートアップしているナイーブな人→62.1%<br> ・うち、php擁護派なのに「rubyのまつもと」離れができずにワケの分からないことになっているタイプ→ほとんど<br> ・うち、まつもとに対して説教じみた意見をしはじめるタイプ→その次にほとんど<br>・phpの技術的側面から考察を述べるタイプ→28.5%<br> ・うち、本エントリとかぶる単語は「php」くらいで、延々とオレの仕事では…」とか語るチラ裏タイプ→たいがい<br>・「どっちも同じ」とか「どうでもいい」とかわざわざ書き込むどうでもいいタイプ→9.4%<br>・この流れにネタを投入するという英雄的行為に及び、不可抗力的に滑るタイプ→僅少

_ 元職業プログラマ (2008-02-03 18:43)

"PHP セキュリティー"で検索したら、こんなものがでてきました。<br>http://gihyo.jp/dev/serial/01/php-security/0001<br>このデータをみると、本当かどうかは分かりませんが、ASPで作られたAPより問題が多いプログラムが多いみたいですね。

_ yohgaki (2008-02-03 19:03)

私もWebアプリは「初心者でも簡単に作れる」と誤解されているのは非情に残念です。簡単ではないのできちんと勉強してから作るべき、という意見には賛成です。<br><br>とりあえず自分のブログにコメント書いておきました。<br>http://blog.ohgaki.net/-5<br><br>少なくともPHPはクロージャをサポートしていない故、初心者に解りやすい、言えると思います。<br># 上級者には欠点ですけど。<br><br>PHP初心者は自分でゴリゴリコードを書くより、フレームワークに乗っかって書くようにする方が良いと思います。これはRubyでもJavaでもPythonでもPerlにも言える事です。初心者がフレームワークも使わずにゴリゴリ書くと、セキュリティ0のWebアプリが簡単に作れてしまいます。それは言語を問わないと思います。<br><br>Webアプリのセキュリティ本はそれほど売れていないのですよね。本当に必要としている方はググって、コピペしておしまい、になっている気がします。<br><br>Webアプリフレームワークもフールセーフにするのは限界があるのですけどね....

_ 元職業プログラマ (2008-02-03 19:51)

フレームワークで実現出来ない機能を実装しなければならない場合は、結局ゴリゴリ書かなければならなくなると思うので、やはり言語の選択というのは重要だと思います。<br>また、地球環境の事を考えれば、フレームワークが高機能化し、処理が重くなって、高性能なハードや多大な電力が必要になるのも問題だと思います。

_ ぐえすt (2008-02-03 23:11)

cpu native asm マンセー

_ tんk (2008-02-05 01:36)

PHPでもセキュリティ対策ができないわけではない<br>しかし、セキュリティを学ぶ前にとりあえず動くものが公開できていしまう<br>これがPHPの悪いところでもあるし、習得の早さを表す利点でもある<br><br>要は、PHP人気、Rubyは不人気<br>そんなにカリカリしなさんなよ<br>現実はこんなもんだ<br><br>売れない自称・偉大な芸術家<br>「俺はすごいんだよ!○○?あんなのゴミじゃねーか<br>俺の方がすごいんだ!理解できない大衆は馬鹿だ!ゴミだ!」

_ 山田 (2008-02-09 04:37)

PHPなんか使うのやめようよ。<br><br>PHPなんか使っても作れるものといったら、WikipediaやFlickr、Wordpress、Yahoo.com等の脆弱で大量のアクセスに耐えられないサイトだけだよ。<br><br>まともな書籍も少なすぎだよ。<br>http://www.amazon.com/s/ref=sr_nr_n_7?ie=UTF8&rs=1000&keywords=php&rh=i%3Aaps%2Ck%3Aphp%2Ci%3Astripbooks%2Cn%3A1000%2Cn%3A5

_ 通りすがり (2008-02-10 13:09)

MatzさんはeRubyについてどう思ってるの?

_ ねむい (2008-02-12 05:10)

どこかにPHPは初心者に「易しい」が「優しくない」とかかれていたのを見た。<br>確かに使うのに「易しい」かもしれないけど、その後のプログラミングキャリアを積んでいく上では「優しく」ないように思われる。<br>種々の概念を抜け落としたままそこそこ動くアプリケーションが生まれるのは、本当にコーダーフレンドリーな言語仕様なのかどうかという問題として受け止めている。

お名前:
E-mail:
コメント:
[]

«前の日記(2008-01-25) 最新 次の日記(2008-01-27)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.