WebProgを極めて居酒屋を開発する Twitter

このブログは 2008 年から更新されていません。すべての記事が古いので、あまり参考にしないようにしたほうが良いです。時が流れるのは早いのです。

 | 

2008/09/22

自分なりに

第1回 LOCAL PHP部 (aka PHP北海道) のつどいに行ってきたよ!

感想は釧路に帰ってから覚えてたら書くよ!

とりあえず今はなんとなく脊髄反射的なエントリを書いておくよ!

PASEOの水の広場のモバイルポイントから。w

404 Error - FC2ブログ

この手の話は、たぶん各人によって見解はちがうと思うのですが、俺なりな解答をしておきます。

まあ、鵜呑みにしても良いことは無いかと思いますが :-p

// さらに、全文引用状態で、[これはひどい]というカンジw

そもそも、PHPは何がどう「駄目な言語」なのか

プログラマさんたちは、口を揃えて「PHPは駄目な言語だ」と言う。

型の宣言が曖昧だったり、HTMLの中にPHP宣言を細切れで割り込ませたりできるのが言語としておかしいことは私にもわかる。

でも、簡単に利用できたり、軽かったり、WEBアプリケーションが作りやすかったりするメリットを上回って「駄目」な理由を、初心者やデザイナーにもわかるように説明してほしい。

その際「オブジェクト指向が…」や「○○クラスタが…」とかいうプログラミング用語は禁止(私はActionScriptかじっているので、オブジェクト指向はある程度知っているが)。

何をもって「駄目な言語だ」とするかの問題ですよね。

rubyみたいにスマートで無駄が無くて統一性のある言語じゃないと嫌だ!って人にはそりゃphpは駄目な言語でしょう。(もちろんそれだけではないですが)

関数に統一性は皆無(関数名も、引数の順番も、バージョン間での差異も)だったり、もうそれはそれは酷い言語です。

でも、ドキュメントがしっかり整備されてて、誰にでも使いやすい言語じゃないと嫌だ!って人にはphpは最強かと思います。(もちろんそれだけではないですが)

糞見にくいドキュメントしかないrubyはこの観点から言うとものすごい糞言語です。

個人的には「でも、簡単に利用できたり、軽かったり、WEBアプリケーションが作りやすかったりするメリットを上回って「駄目」な理由」は無いと思っているので、phpを使ってます。

結局は自分が「駄目な言語だな」って思ったらその時点から駄目な言語だと思います。決してダンコーガイが駄目な言語を決定している訳でもなんでもないはずです!

問題がある関数とはどれのことを指すのか

プログラマさんは時々「PHPは問題のある関数があるから…苦笑」とも言う。

それは一体どれのことなのか。使うとセキュリティ的にやばいのかサーバー的にやばいのか。じゃあPHPは使っちゃいけないのか。

この手の話は大抵使い方が悪かったりすることが多いのですが、実際のphpの実装が酷い関数はそれなりに存在します。

ただ、自分の目的を達成できているのであれば、特に問題も生じないんじゃないかなーとは思います。

要は、使い方と使い所の問題です。

PHPの演算子が何種類もあるのだが

他の人のプログラムを見てみると、PHPのif文の記述方法が何種類もあってわけがわからない。三項演算子とか{〜}で囲まないとか、ORとか||とか。

私は正式な記述で統一しているが、他の言語もこんなに適当なのか。欠点とはこれのことなのか。

これは個人的には魅力的な部分ではあります。

選択肢がたくさんあった方が楽しく無いですか?

ベストプラクティスに従え、的な言語はありますが、phpはいわばイイトコドリな言語なので、これはまあ、こういうものだと思うしかないですね。

自分の好きなように書けば良いと思います。

なんでPHP以外の言語のアプリケーションは普及しないのか

さっき書いたように、デザイナーはほとんどが現場の必要に駆られ、最初のプログラミング言語にPHPを選択する。

それは至極もっともなことだ。なにしろ、WEBデザイナーがかかわるべき、世の中に普及しているWEBアプリケーションの大半にPHPが含まれているのだから。

MovableType、WordPressをはじめ、ショッピングカートや掲示板、メールフォームなど、オープンソースでサーバー会社が対応しているアプリはほぼPHPがらみ。これからのWEBデザイナーはアプリの微細な修正にも対応できないと食っていけない。

プログラマの皆さんに失礼ながら暴論を言うと、これらがPerlでできていればPerlから勉強するし、RubyでできていればRubyを選ぶのである。

市場がどうなっているのかは僕は分からないのですが、殆どのレンタルサーバーでそれなりに動いている環境であるから。というのは大きいと思います。

あとは設置の容易さでしょうか。単純にphpを書ける人*1が多い。というのもありそうです。

Perl は環境を構築するのがそれほど容易ではない*2でしょうし、rubyは実用的な速度で動くレンタルサーバーがあまりなかったり*3するのもあるのかなあとは思います。

「phpがインストールされている標準的な環境」が、結構色んな要素を保証している場合が多いですよね。その思い込みが故にハマることももちろんあるのですが。w

コマンドラインを使うのはどうしてなんだろう

馬鹿だと思われるかもしれないが、私はプログラマさんたちが「コマンドライン」でプログラムを書いている理由が未だにわからない。客観的に見て面倒くさそうだ。

テキストエディタで書いてlocalhostをブラウザ表示、じゃだめなのか。

落ち着くからです。(どーん

というのはまあそれなりに要因としてはあるのですが、結局は慣れだとおもいます。

別にやっていることは「テキストエディタで書いてlocalhostをブラウザ表示」と特に変わる部分はないでしょう。

ただ、例えばコマンドでコードのスケルトンをジェネレートするといった作業が多くなると、コマンドラインで全部できた方が楽ですし、慣れると、コマンドラインで作業する方が圧倒的に早くて楽です。

自分に合った環境で開発するのが一番ですよ!

変数名やオブジェクト名はどうやってつけたらいいんだろう

あれは法則があるのだろうか。私は二つ以上の単語をつなげて命名し、最初の単語はグループ名、二個目以降の単語の最初を大文字、という法則を持たせているが、それはプログラミング的に正しいのか。

これは僕も教えてほしいです…。

個人的には分かりやすければ何でもアリ。と思っています。

オシゴトでの開発ならば、そこのコーディングルールとかに従えば良いのかなと。

どの言語でも、デザイナーにフレンドリーなHTMLは出力できるのか

タイトルの通りなのだけど、どんな言語でもコーダーが安心して利用できる、柔軟でValidなHTMLを簡単に書き出せるのなら、別の言語もどんどん勉強したいところ。

マークアップだけでなく、改行やタブも制御したいところだし。

もちろん可能です。

というか、PHPを使ったからと言ってフレンドリーなHTMLなる訳ではないですし、これは出力をどうするかというだけで、言語は何を使っても全く関係ないです。

とまあ、ありがちな質問と言えばありがちですが、特に意味もないと言えば意味もない解答で申し訳ないけども、これは答えようがないですね。

かなりぼやけた感じで解答している部分はありますが、まあその辺りはあまり突っ込まないようにお願いしますw<有識者の方々(笑)

丁寧に色んな根拠とか全部書いていたらキリがないので。。。><w


とりあえずは、WEB+DB PRESS の藤本さんの記事を読んでみると良いかもしれません。w

*1:あえてプログラマとは書かないが。笑

*2:CPANのインストールするくらいならphpを10回コンパイルする方が俺はマシ

*3:生のrubyのwebアプリはあまり存在しないように思います。railsとかどう考えても重量級。

webbingstudiowebbingstudio 2008/09/23 03:15 丁寧なアドバイスありがとうございます!

PHPはデザイナーが取っ付きやすいのに、勉強熱心なコーダーほど失望するという、困った言語だなあと最近思っています。

かつていろいろ言われたけど復権してきたPerlのように、どんな言語でも扱う人の心づもりで評価は変わってくるのでしょうね。

私はPHPが気に入っているので、これからもいいところ悪いところ、いろいろと勉強したいと思います^^

 |