アカウント名:
パスワード:
Rubyが初心者向きだなんて、誰が言っているの?
ああ、もしかして、Rubyは初心者をキャッチアップできてないんだから、それができるようになってからPHPに文句を言えってこと?
# C/C++ が初心者に優しいという宣伝はあまり見たことがないよね~。
20数年ぐらい前には言われていました. 確かにアセンブラに比べれば, ハードウェアのアーキテクチャを隠蔽し, アルゴリズムに注目したコードにしやすかったので当時のプログラマにとっては優しかったのです.
でもそれは数年後に初心者にプログラミングさせてみて, 幻想であることが分かりました. やつらは半端なバカじゃない. でも, 自身を振り返ってみると, やっぱり同じようなバカをやることがあるんですね.
で, 今日までのアプリケーション開発用言語の流れを見ると, 「良いものを作る」「簡単に作る」というよりも「悪いものを作らない(作れない)」を良しとする方向に来ているのだと思います. それでも, たまにハイスキルな人が前者の高生産性言語を使ってシステムを構築するのを見てクールだと思う初心者が自爆する例が後を断たないってことでしょう.
うーん、PHPはドキュメントが充実してるとは到底言い難いですよ? 言語リファレンスにしろ、関数リファレンスにしろ。
http://jp.php.net/manual/en/ [php.net]
章の数こそ多いですが、書き手の側に「詳しい説明を書こう」という気が全くないように思えます。 なんか、皆が書き込めるコメント欄用意することで、お茶を濁してる感じがします。
でも、ドキュメントが貧弱なのは、実はRubyも同じですよね。 (入門書はいっぱい出てますけど...PHPと同じで。)
個人的には「ちゃんとした言語」の必要条件として「ドキュメントが整備されてる」というのが あると思ってるんで、今回の Mats氏の意見には「(純粋に言語仕様の話だってことは理解しつつも) PHPのこと言ってるけど、そういうRubyだってどうなのよ?」と。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
属人的部分の方が多いと思う (スコア:5, すばらしい洞察)
言語の特性というよりはやはり属人的な部分が多いのではないでしょうか.
まつもとさんもコメントで以下のように「初心者」を強調してまとめておられます.
>私が自分の主張として書いたことは
> * 初心者が安全なWebアプリを書くのは難しい
> * PHPはWebアプリ用の言語
> * 初心者が(外向きのアプリのために)PHPを使うのは望ましくない
> * 「PHPは初心者に優しい」は不適切な宣伝文句
私はPHPでコマンドラインツールをぱぱっと書いて使い捨てたりするので
(パイプの最終段でテキストをパースしてDBにぶち込むとか),
「PHPはWebアプリ用の言語」って言われるとそんなに特化してるかなぁ
と思ったりするのですが.
結局,最後の「『○○は初心者に優しい』は不適切」はすべての
{プログラミング|自然}言語に言えるということじゃないでしょうか.
って,そんな分かり切ったまとめ方するなと言われそうですが.
フレームの元になりがちな「◇◇の部分を◆◆に変えて」をやってみる.
-----------
* 初心者が安全なアプリを書くのは難しい
* C/C++はアプリ用の言語
* 初心者が(公開するアプリのために)C/C++を使うのは望ましくない
* 「C/C++は初心者に優しい」は不適切な宣伝文句
-----------
やっぱ,言語の問題というよりは,
「初心者って言葉は免罪符にならないよ」
っていうことだけなんじゃないですかね.
そこをわざわざPHPを持ち出して主張したところが
ヒートアップの原因のような気がします.
屍体メモ [windy.cx]
Re:属人的部分の方が多いと思う (スコア:2, 興味深い)
JavaなんてWebアプリになると初心者どころか中級者も微妙だし。
Rubyのところに書いてある
* シンプルな文法
* 普通のオブジェクト指向機能(クラス、メソッドコールなど)
* 特殊なオブジェクト指向機能(Mixin、特異メソッドなど)
* 演算子オーバーロード
* 例外処理機能
* イテレータとクロージャ
* ガーベージコレクタ
* ダイナミックローディング(アーキテクチャによる)
* 移植性が高い。多くのUNIX上で動くだけでなく、DOSやWindows、Mac、BeOSなどの上でも動く
が果たして初心者に理解できるかどうか。
オブジェクト指向をまず理解できるかどうかな初心者が、特殊なオブジェクト指向機能とかイテレータを覚えるとは思えない。
簡単に楽しくという割りに結局Rubyもそうとは言えないし。
楽しくは主観だからどうでもいいとして、簡単というからには万人に簡単と思われなければならないけど、そうでもない。
「Javaよりは簡単に、且つPHPよりセーフティにWebアプリが作れる」
という謳い文句なら納得だけどw
Re:属人的部分の方が多いと思う (スコア:2, すばらしい洞察)
Rubyが初心者向きだなんて、誰が言っているの?
ああ、もしかして、Rubyは初心者をキャッチアップできてないんだから、それができるようになってからPHPに文句を言えってこと?
Re:属人的部分の方が多いと思う (スコア:1, 興味深い)
matz日記 すべては初心者のために [rubyist.net]
別にオブジェクト指向を知らなくてもRubyは使えますし、そんなに最初の障壁が高いとは思えません。
言語を覚えるという観点では。
ただ、実際に何かを作るとなると障壁が高くなります。
ここでいう初心者はCUIで便利に使うという発想はあまりないでしょうから。
ここにPHPの功罪があって、多くの入門書ではphpinfo();をブラウザに表示させるというあたりからはじまっています。
最初からブラウザで見栄えのする画面を表示させるというのは初学者にとってインパクトがあるでしょう。
実際にWebアプリケーションを作成するまでの障壁が低いのです。
ここにいたって、Webアプリケーションを舐めるなという話に帰着するのではないかと思います。
#まぁこんな話はいまさらですけど
Re:属人的部分の方が多いと思う (スコア:1, すばらしい洞察)
ここまでよく状況を理解していて、ポイントをまとめていて、
それでもなおかつ自分がまとめに含めた「宣伝文句」がキモであることを見落とすと
おもしろおかしいコメントになってしまうにもかかわらず
真に受けた人がヒートアップする原因になることを身をもって示そうとするとは。
なんたる勇気!
# C/C++ が初心者に優しいという宣伝はあまり見たことがないよね~。
Re:属人的部分の方が多いと思う (スコア:2, 興味深い)
といったところでしょうか.
旅に出ます.(バグを)探さないで下さい.
Re:属人的部分の方が多いと思う (スコア:1)
20数年ぐらい前には言われていました. 確かにアセンブラに比べれば, ハードウェアのアーキテクチャを隠蔽し, アルゴリズムに注目したコードにしやすかったので当時のプログラマにとっては優しかったのです.
でもそれは数年後に初心者にプログラミングさせてみて, 幻想であることが分かりました. やつらは半端なバカじゃない. でも, 自身を振り返ってみると, やっぱり同じようなバカをやることがあるんですね.
で, 今日までのアプリケーション開発用言語の流れを見ると, 「良いものを作る」「簡単に作る」というよりも「悪いものを作らない(作れない)」を良しとする方向に来ているのだと思います. それでも, たまにハイスキルな人が前者の高生産性言語を使ってシステムを構築するのを見てクールだと思う初心者が自爆する例が後を断たないってことでしょう.
Re: (スコア:0)
そうそう、健全なお付き合いはまず交換日記から!
C初体験 (スコア:0)
>そうそう、健全なお付き合いはまず交換日記から!
「はじめてのC」ネタは若い者にも通用するんだろうか?
Re:属人的部分の方が多いと思う (スコア:1, 興味深い)
>{プログラミング|自然}言語に言えるということじゃないでしょうか.
初心者向けと言うフレーズだけが問題なんじゃなくて、それが「第三者に公開されるWebアプリを書くための言語」であることと組み合わさるから「やめてくれ」と言う話になるんですよ。ローカルで動かすだけのものならば「初心者に優しい」かつ「セキュリティが甘くなる」と言うものでも殆どの場合は特に問題は無い。
そうした特長・傾向を強く持つのがPHPだと言うのが今回の話であって、「Rubyだって初心者が書いたら」云々というのは的外れです。
あとPHP側からのコメントとして「ドキュメントが充実してる」と言うのがあって、それは確かにすばらしい特徴だと思うんだけど、そんなドキュメントが充実している言語でなぜ、必要最低限のセキュリティ条件を満たしてもいないものが量産されるのかはちょっと疑問。PHPだってフレームワークをちゃんと使えば十分セキュアなものが書けるんだから、そう言うところを最初からきちんと説明してあげるべきだと思うんだけど。
ドキュメントの充実度 (スコア:0)
うーん、PHPはドキュメントが充実してるとは到底言い難いですよ? 言語リファレンスにしろ、関数リファレンスにしろ。
http://jp.php.net/manual/en/ [php.net]
章の数こそ多いですが、書き手の側に「詳しい説明を書こう」という気が全くないように思えます。 なんか、皆が書き込めるコメント欄用意することで、お茶を濁してる感じがします。
でも、ドキュメントが貧弱なのは、実はRubyも同じですよね。 (入門書はいっぱい出てますけど...PHPと同じで。)
個人的には「ちゃんとした言語」の必要条件として「ドキュメントが整備されてる」というのが あると思ってるんで、今回の Mats氏の意見には「(純粋に言語仕様の話だってことは理解しつつも) PHPのこと言ってるけど、そういうRubyだってどうなのよ?」と。
Re:属人的部分の方が多いと思う (スコア:1)
という、全くどうでも良い疑問が・・・
the.ACount
Re:属人的部分の方が多いと思う (スコア:1)
なにせ、C のポインタ変数が理解できない奴っているらしいが、
アセンブラでアドレスレジスタが理解できない奴にはお目にかかったことがない。
Re: (スコア:0)
参考までにお聞きしたいのですが、「貴方」はPerlやRuby,Pythonといった他のLL言語で同じ事が出来ますか?
私の周りでは、複数の言語でフィルタコマンド的な使い方を出来る人は、PHPをその用途に使う事は無いですし
逆に言えば、PHPをフィルタ的に使う人は、PHPしか使えません。
他言語でも同じような事が出来るならば、PHPを使う理由はなんでしょう?
私が今までに唯一納得していて、自分でも度々使う理由は、システム自体がPHPで組まれていて
そのメンテナンス用に、同じPHPで(同じライブラリを使い)サクっと仕事をする時だけです。
同じですね (スコア:1)
ちなみに同じことができるかってことですが,PerlとRubyでならできます.
Pythonではできません.いや,できるんでしょうけど,普段から使い慣れて
いないものでわざわざ使おうとは思いません.
屍体メモ [windy.cx]
Re: (スコア:0)