嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

JavaScriptが大変 1

どの様な話?

作ってもらったWeb画面(html文書)で、

  • 前に、jQuery1.2でトグル(クリックすると表示されたり、消えたり)が
    新ブラウザで使えなくなり、1.12に張り替えた事が有ったが、
  • IE11が対象外になり、3.xに出来るのでは無いか?
  • もっと言うなら、トグルくらいなら「素のJavaScript」でも出来るのでは無いか? トグルの仕様は3.xで激変したそうで、それを望まれているのでは無いか?

という問題意識から、作ってもらった中に有った、共通の.jsファイルを見たのですが、大変でした。

何が大変?

  • 曽祖親のタグが何で、祖親のタグが何で、親のタグが何で、自分のタグが
    何な場合
    (この辺はもはやjQueryセレクタ機能に頼らず、素のJSでも可能?)、
  • 自分を起点に、兄弟姉妹の値(文書)の行数を調べ、属性を付けまくり、
  • 自分らの枠の高さを揃える。
  • jQueryも$.eachとかを(少量ではありますが)使っていて、3.xにして
    大丈夫か判断出来なかった。

なんて記述が共通の.jsファイルにありました。

また、

  • (それ以降)全てのscriptタグにフェイスブックやグーグルアナリシスから
    発行されたIDを属性として付加する。

なんて記述も有り、これらは今月から始まる外部送信規律に引っかかるのも何なので、コメントアウトしました。

不思議な点

これら記述はすべて、JavaScriptの無名関数で出来ています。無名関数といえば、それを変数に収めて使う、関数型です。アロー関数式にだって容易に差替え出来ます。

また、作ってもらったのは、かれこれ10年前になります。

10年前にはこんな大変な(大規模な)関数型の記述が実例として有ったのに、何で実例として誇らなかったのでしょうか?

「属性付けまくり」が関数としては「副作用」に当たり、上記記述ではそれこそが本質なので、それを「関数」と言ってしまうのは憚られたのでしょうか?

冗談抜きで不思議です。

あるいは、形而上などと言ってしまった事を恥じる必要が有るのかも知れません。

結論

とにかく大変(読むのが困難)な事は間違いなく、これからも「JavaScriptが大変」な事でプログラミングが嫌いになる人は存在し続けることでしょう。