SSブログ

三項演算子なんてなくなればいいw [プログラミング]

三項演算子って見にくいですよね。goto文ほど悪いってわけじゃないですけど、可読性を犠牲にして短く書こうとする典型的な例な気がしますね。

まだ単体で三項演算子を使っている分ならいいですが、入れ子にして使うとか狂気の沙汰としか思えません。意図的に読みにくくしたいと思っているとしか思えない。C言語がまだメジャーだった時わざと読みにくくするようなテクニカルな書き方をする馬鹿者がいたけれど、UNIXを扱っている人関係に多いようであった。

たぶん三項演算子はC言語から始まったと思うんだけど、C言語のメジャーさから三項演算子も広まっていってしまったんだろうなと。C言語にはポインタ周りをはじめとした、わかりにくい書き方が結構オンパレードなんだけど、最近の言語はそういうところは気を付けて繰り返さないようにはしているっぽい。



PHPでも三項演算子は良く使われていた。確かに一行で済む分、コード的にはすっきりするんだけど、やはり三項演算子を入れ子にしているところもあって、いい加減にせいやと思ってしまう。

PHP7では三項演算子を入れ子にしていることに文句を言いだすようになって、意図的に丸かっこを使って順序を指定しないと、ワーニングかなんかが出るようになっていた。というかPHPの三項演算子って他の言語と発動する順序が違うみたいなんだよね。

https://qiita.com/suin/items/fb5f21f8d1a75542bd8e

そういうところがPHPが嫌われる要素になっているのだろうけど、そういう処理をするんだから仕方がない。ただ常識と違うところに何か意図的な何かがあればいいんだろうけど、大した理由もなく一般的な理解から離れたことをしていると、みんなから違和感があると言われる。


PHPがディスられることについて、自分としてはそれほど叩くほどではないと言ったことがあるが、個別の事項については納得できるわけじゃない。世間で言われているのは、そういう積み重ねなんだろうけど、使っていて文句が出ない言語っていうのはないんじゃないかと思うんだよね。一長一短だからこその色々な言語のある世界があるのだろうし。

言語があまりたくさんあるのは面倒だけど、色々選べた方が健全な社会といえるだろう。ただ、仕事になるとメジャーな言語はあるし、メジャーじゃなくてもやらないといけないこともあるわけで。ただ、普通の言語よりか違いは少ないので、多言語を使うと言うこと自体はそんなに無理があるわけではない。普通の言語と違ってイディオムは少ないし、組み合わせで仕組みを作ると言う点についてはどのコンピュータ言語も同じだ。組み合わせて使うから可読性というか読みやすさは使いやすさに直結してくる。メンテを考えると書きやすいけど読みにくいというのはまかりならないというのは切実だったりはするけど。

三項演算子は短い分には書きやすいし、読み難くもない。だけど使い方がぞんざいだと一気に可読性が下がる。今は言語レベルから読みにくいものは排除されがちなので、今後採用されることは少なくなるかもなと思ったりしている。Swiftにはなかったような気がする。普通に考えればなくてもいいものは無くしてしまうというのが英断だとは思う。

タグ:PHP
コメント(0) 
共通テーマ:パソコン・インターネット

Twitterまとめ投稿 2020/06/13 [Twitter]


コメント(0)