「綺麗なコードでも汚いコードでも,動くコードは正解だ」.しかし汚いコードは動かない.

またあの「クレイジーワークス」の村上福之の糞記事か.
「Webプログラミングに関しては、漢字の書き方を覚えるのと、プログラミングを覚えるのは大差ないです。最初の最初は、「写して、書いて、覚える」しかないです。」なんて大嘘書いてるような奴の記事は見るだけ時間の無駄.

http://d.hatena.ne.jp/JavaBlack/20121115/p1
http://d.hatena.ne.jp/JavaBlack/20120415/p1


PHPに限らず,一般に糞言語で汚いコードを書くことについて,

  • 「どんなに汚くても動くコードこそ正義」という人はいる.しかし実際には汚いコードは動かない.
  • 「汚くても動けば正義」とか言ってる奴のほとんどは,自分ではプログラムを書かない/書けない.自分で自分のコードのデバッグができない.
  • 汚いコードの保守にかかる費用は青天井.まともな経営者やマネージャーであれば,コスト意識は非常に重要.
  • 誰かが作った動かないコードを動かせという命令が出されることがある.そのための無駄な努力に費やされる日々は辛いし,なにより空しいよ.
  • 言語が良くても飯は食えないということはある.しかし糞な言語で飯を食うのは非常に難しい.*1
  • 「エンジニアはつねにクソ食ってるんだ。」ブラック企業経営者ならそういうだろう.彼等にとっては技術者など使い捨てのゴミにすぎないから.
    逆に言えば,まっとうな技術者にとってはブラック企業経営者とは天敵だ.そんな奴らのために協力してやる義理などない.

他の所を見ていても,本当にブラック企業経営者の思想そのものだわ.
さすがは「クレイジーワークス」と名乗るだけのことはある.この人自身がクレイジー

http://b.hatena.ne.jp/entry/blogs.itmedia.co.jp/fukuyuki/2013/03/php-57de.html

  • id:ka-ka_xyz PHPがどうとかいう話は置いておくとして、(分野にもよるけど)BtoBでサポート収入固定な契約だと「動けばいい」品質はメンテコストがサポート収入を食い潰したりとかソロバン的にも大変よろしくない可能性アリ。

激しく同意.

  • id:chokovi 汚くても動いてるコードは正しい、綺麗でも動かないコードは価値がない。とよく聞きます。

そして汚いコードは動かないことが多い.動くとしても非常にコスト高.
ゆえに汚いコードはビジネス的お金的にも悪なのです.実際それでプロジェクトがポシャる所も何度も見ている.*2

  • id:erukiti PHPが駄目なのはクソをまき散らすことに抵抗感がなくなるせいだ。初心者がクソまき散らしてもかまわないと覚えるし、中級者がクソにまみれて技術力が低下するし、上級者のモチベーションがことごとく損なわれる

PHPについては,ほとんど思いつきでこういうネタ記事を書いたことがある.ネタだけどだいたいあってる.
http://d.hatena.ne.jp/JavaBlack/20091031/p1

このリンク先HTML5への批判は,IE上のJavaScriptの互換性問題なんかと同種の問題だな.JavaScriptの未だ解消せぬ互換性問題は良いけれど,出たばかりのHTML5の互換性問題は悪いって,主張が一貫していないぞ.

  • id:mohno JavaScriptって、そんなにダメなの? どちらかというと COBOLを博物館行きにしたいところ(なってないけど)。

いろんな意味で良くないなあ.

まあその原因の3割くらいはMSのInternet Explorerのせいだと思うけど.それでもJavaScriptが使われているのはブラウザ上で動く汎用言語が他に存在しないからであって,そうでなければ誰が好きこのんで使うものですか.*3

  • id:Tesh こうしたことは踏まえた上で、明らかにクソクソ罵りながら使うべき道具を礼賛する開発者を見ると困惑しますね。JavaScriptとかJavaScriptとか。新しいバッドノウハウ開発して「面白い」などと言ってるから自浄作用がゼロ。

Effective JavaScript

Effective JavaScript

Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series) (English Edition)

Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series) (English Edition)

Professional JavaScript for Web Developers (English Edition)

Professional JavaScript for Web Developers (English Edition)

  • id:fumix-hat 「要するに、量産型ザクだ。」←おい、ふざけんな。ザクはPHPなんかt(ry
  • id:AKIMOTO PHPはザクというよりジムじゃないかと思う

むしろ「神風特別攻撃隊」じゃないかな.*4 *5 *6


敗戦濃厚な国家元首にとっては,敵艦を撃破できる戦闘機こそが正義.*7
たとえ,その対価が熟練パイロットの生命だったとしても.


おれなら,そんな物には乗りたくない.


或いはトラバントに例えるのがいいのかも.

共産主義政権時代、東ドイツでは膨大なバックオーダーを抱えていたが、一般国民が他に入手できる大衆車が実質存在せず、一方で生産工場には需要に見合った適正な生産能力がないという、閉鎖性と停滞の反映に過ぎず、東ドイツの体制をも物語る歴史的なモニュメントとも言える自動車であった。走行性能・安全性・環境性能が数十年前の水準ということもあって、旧東ドイツ地域および周辺諸国においては、急激に淘汰されている。

http://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%83%90%E3%83%B3%E3%83%88

いくら安くても,可能ならば乗りたくない.

  • id:uzulla 褒め殺しか!!!/「PHP5.3でござる」とかいったら交渉が頓挫したの思い出した。

PHP5.3はPHP言語と互換性がないとかいう例のアレ?

Twitter

こいつはプログラマじゃなくてブラック企業経営者ですよ.


http://blog.samuellevy.com/post/41-php-is-the-right-tool-for-the-job-for-all-the-wrong-reasons.html
ふーん,興味深いけど,どうなんだろ.書かれた日付がよくわからん.

PHP caters to the people who don't have much money, who don't have their own skills, and who the $300+/hour "Enterprise" developers wouldn't want to cater for.

PHPは金が無くて,自分達自身にスキルがなくて,時給300ドル以上の「エンタープライズ」開発者を欲しがらない人々(マネージャー?)の要求を満たす.

I am a freelancer, and I take on these clients. When the budget permits, I'll use a language that is better suited to the problem, but more times than not, I use PHP because my margins on these jobs are already so low, that I would be insane to attempt to use any other language. I don't have the budget to use rare white truffle, or the time for slow-roasting the pork, as it were. I have to make the burgers and fries of the programming world because we've all got to eat.
(ざっくり訳:自分はフリーランサーで,そういう(お金のない)客を持ってる.予算が許せばもっとマシな各問題に適した言語を使うけど,時間があろうとなかろうと仕事から得られる利益があまりに少なすぎるのでPHPを選択せざるを得ない.私にはレアホワイトトリュフを買う予算や豚肉をじっくり炙る時間がなく,ただ食べるためだけのプログラム界のハンバーガーとフライドポテトを作るしかないのだ.)

かなり趣旨が違うと思う.*8
PHPが良い言語だなんて一言もいってなくて「PHPは正真正銘の糞言語だけど,金の無いお客のために低予算で短納期の仕事を引き受けてるから仕方なく使ってるんですよ,ジャンクフードを求めるお客さんに対しては,どれだけ不味くて体に悪くてもジャンクフードを提供するのが『最適』な解なんですよ.(プログラマー/シェフとしては泣きたくなるけどな!)」的な話だと思う.


自分が書いたネタ記事の方がまだ近いのでは.

「初心者でも書き易いというよりは猿でも書けるプログラム」
「目がフシ穴の投資家受けする一発ネタ」
「学歴ナシ,実務経験ナシ,技術ナシのワーキングプアから見た自己啓発・自己肯定」
「上流ばかりで現場経験なしで育った中高年COBOLerが望む『製造工程』の姿」
(中略)
PHPとは,そんな人たちのための「ライト」な「プログラミング言語」なんだ。

http://d.hatena.ne.jp/JavaBlack/20091031/p1

特に今回の件については,「上流ばかりで現場経験なしで育った中高年COBOLerが望む『製造工程』の姿」がかなり近いと思う.プログラミングのことを知らないから,「PHPはザクだ」とか的外れな例を持ってくるんです.*9


関連「ITアントレプレナーになりたい若者のみなさんはプログラミングを習得しましょう」 http://www.chikawatanabe.com/blog/2010/04/lean_startup.html
ITスキルの無い起業家というのが考えにくい状況では,上記の条件である「自分達自身にスキルが無い」が該当しなくなってくる.


全くノウハウのない会社の場合は,そういう選択肢も無くなるんだろうなあ.ブラックIT企業にありがちなこと.

保守フェーズについてはPHPの方がヒドイくらいかと.JavaScriptもそうだけど,メンテナンス性が劣悪で互換性問題とバッドノウハウの宝庫だから.*10

Javaの場合はJDKのバージョンが変わっても,Struts1のような古いフレームワークが動くから問題は少ない.PHPだとそれは難しいと聞いている.

配列とリファレンスの奇妙な動作

http://www.programming-magic.com/20080307090613/
http://jp2.php.net/manual/ja/language.references.whatdo.php
ついでにメモ.

http://b.hatena.ne.jp/entry/d.hatena.ne.jp/bravewood/20130307

より.

*1:伊達に言語が糞なわけじゃないんだ.開発効率や保守性が悪いということは,開発者の負担がそれだけ無駄に増えるということだ.ギャラは同じなのに,開発者の負担が通常の三倍になるわけ.開発者の才能や努力や希望を,糞言語と糞コードが飲み込んでいく.まるで開発者という真水を糞言語という砂漠に撒いて,スイカを育てようとするようなものだ.

*2:フィクションだけど,こういう雰囲気. http://el.jibun.atmarkit.co.jp/pressenter/2011/02/post-6b95.html

*3:そういう意味ではPHPFORTRAN的かな.過去に作られた十分に枯れたライブラリがあって,それを使いたいがためならPHPを選択するのも悪くはない.スクラッチから作るならできれば近づきたくない.

*4:或いは竹槍とか風船爆弾とか.日本のSIビジネスとは,B29相手に竹槍を振り回すような作業ですよ.

*5:量産兵器なら,信頼性や保守性などはクリアしているのが普通だろう.たとえばAKB48 AK−47をPHPの例えに使ったりすれば,AK−47に失礼だ.

*6:ミリオタならもっと特殊な兵器の話とかしてくれそうだな.「離陸するだけで自爆しかねない試作爆撃機」とか,そんな感じの奴.

第二次世界大戦 奇想天外兵器 (徳間文庫)

第二次世界大戦 奇想天外兵器 (徳間文庫)

*7:資源もないし技術力も無いし人もいない.資源がないから釣り鐘や鍋釜を鋳つぶして銃弾を作り,熟練技術者もいなくなったので女学生が戦闘機を作ったりするような国家の話.ある意味で現在の日本のIT業界そのもの.

*8:これらの条件だと,多くの日本企業が該当するな.経営者やマネージャーにITスキルが皆無という辺りなんて特に.

*9:経営者はザクだと思っていても,実際は竹槍や火縄銃なんですね.相手がイノシシくらいならそれでも戦えるけど,象や戦車やB29相手だと勝ち目はまずありません.

*10:PHPはまだしもサーバーアプリなので,あるPHPバージョン固定で動かすこともできる.JavaScriptはブラウザ上で動くクライアントアプリだからサポートとか地獄杉.特にIE6とかIE8とかIE9とか.