PHPの嫌さ
普通に愚痴を吐いているようなページなので不快になったらごめんなさいmrsekut.icon
このノートを書く目的
どこが嫌いなのかを言語化しておくことでコミュニケーションできる
「どこがそんな嫌なん?」と問われた時に、芯を食った回答が即座にできるようにしておきたい
mrsekut.iconは普段から「PHP辛い」と言っているので、こう問われる機会がある
あるいは、技術選定する時にPHPが挙がったときの反対の材料になる
愚痴を吐くことによってヘイトを溜め込まずに済む
PHPを書かないといけない状況下で、めちゃくちゃ辛いが、吐き出し先がないのでここに書く
自分にとっての嫌なツール、の特徴を頭に入れておける
自分にとっての良いツールというのはパッと思いつきやすいが、逆はちょっと難しい気がしている
その良い題材になる
前提として、この辺には気をつけて書く
PHPが本来使われるべきだった箇所を知るべき
「こんな大規模サービスに使われる予定ではなかった」みたいな話があった気がする
「PHPは使いたくない」とmrsekut.iconが思っているだけ
PHPの存在否定をしているわけではない
なんにせよまず言語自体の思想を知るべき
その思想に抗うべきではない
つまり「PHPはクソだからHaskellみたいなことができない」という主張はおかしい
それならHaskellを使えばいい
PHPを使うならPHPの思想に則ってプログラミングをするのが正しい
だから「PHPでもこういうハックを使えばHoge言語と同じように書けるよ」というのはできるだけ採用したくない
以上の話はPHPに限った話ではない
プログラミング言語に限った話でもない
任意のツールにおいて言える話
こういう視点になると、「とある言語について賛否を言う」こと自体が無意味に思えてくる
このノートが有用になるタイミングは「技術採用検討時にPHPを採用すべきかどうか」である
技術採用は技術そのものの能力如何ではなくチームメンバーの特性や、ビジネスの性質にも依る
その説明材料になる
思想が全く異なるmrsekut.iconとPHPの接点が存在することが問題
書く機会がなければそもそもこんなに嫌いになっていない
(機械が自動化できるのに)人間が考えることが多い
バッドノウハウが多すぎる
バッドノウハウの量が多い
言語全体で統一感がないので、標準関数それぞれに個別の罠がある感じがする
さらにそのノウハウはPHP以外の場所では全く使い物にならない
学習におけるコスパが非常に悪い
人生における無駄な時間という感じがする
型が効かない
mrsekut.iconの開発の仕方と根本的に異なる
annotationはあるが大して意味ない
型推論もgenericsもないので、記述量が多いだけで特に楽にならない
OOPがしんどい
記述量が多い割に全く楽になっている感じがしない
これはmrsekut.iconの問題なのかPHPの問題なのかわからない
もっとまともなOOP言語で、本物のOOPをやってみないとわからない
KotlinとかScalaとか?わからん
正しい書き方が楽な書き方になっていない
例えば、array_mapとか、使わない方が見やすく便利になる
ググった時に出てくる変な記事が多い
使用者のレベル感が高くない(もちろん高い人もいる)
だからといって、バッドノウハウである意識があるので本気で調べる気にもならない
調べれば調べるほど幻滅することが増えるので、学習意欲も全く湧かない
できるだけ知らずに生きたい
これは言語そのものの話ではなく、エコシステム周りの思想かもしれない
easyに倒しすぎ
「誰でも使える」というのは歪な言語をデザインする免罪符にはならない
正しくてかつ、誰でも使えるようにすべき
例えばElmとか
配列と連想配列が同じ
連想配列の型はarrayで表されるので、何のkeyが規定されているのか読み取れない