この記事は Javascriptを使うのをやめろ:Railsの時代遅れ云々についての結論 等の
「JSダメだろ」「いやダメなのはお前だろ」論争に対する私の考えになります。
結論
JavaScriptを使う前に、それによって提供されるUXに対してもっと検討してほしい。
メシマズって
ここでメシマズを例に挙げたのはJSの使い方が
「普通のケーキじゃ物足りないと思ってアクセントに刺身を入れてみたの。どう?」
「うん、おいしい……よ? (生臭くて食べられたもんじゃない、どうしよう)」
という流れに似ていると感じたためです。
この記事では「このような行為」もしくは「このような行為をする人物」をメシマズと呼ぶことにします。
メシマズなサイト
ケーキに刺身は極論ですが、例えばこのQiitaを例にします。
このサイトでは過去の記事を見たい場合、下までスクロールして「もっと見る」のボタンを押す。
こうするとリストの下にさらに過去の記事リストが追加されます。
その途中で「この記事、気になる」と思ってうっかりクリックするとさあ大変。
新しい記事に飛んだあとにブラウザバックしても元の位置には戻れません。
もしこれまでに「もっと見る」を10回押していた場合は、続けるにはまた最初から10回ボタンを押さないといけないわけです。
従来どおりのWebであれば、「前へ」、「次へ」、ページ番号のリンクがあるページネーションを使うでしょう。
そのように実装すればこのような不便は起こりません。
だから私にはこの使い方がメシマズのように感じられます。
アクセントのために使ってみました、美味しいかどうかは関係ありません、というようにです。
他にも、一昔前だと全部フラッシュで作成されてるWebページ。
最近だとJSでリンクを実装したせいで、ホイールクリックで新しいタブで開けないページ。
などメシマズだと思われる使い方はたくさんあふれています。
リンク先にあるような「JavaScriptがクラッシュしてサイトが使えない」なんていうのは「ケーキに刺身を突っ込んで食中毒おこしちゃった」と同レベルでしょう。
そうはいっても
もちろんこの例に当てはまらないものはたくさんあります。
例えばGmailであれば完全にJSに依存しており、JSを使わないという選択肢は考えられないでしょう。
例えばGitHubであればAjaxによる遷移にpushStateをうまく使っており、メシマズどころか「カレーにヨーグルトをうまくマッチさせたような」と形容してもよいと思います。
また酢豚のパイナップルのように、ある人には邪魔、ある人には美味な機能もあることでしょう。
私は入れない方が断然好きですが。
ですのでJSを用いる人には、どのようなUXを提供するのかをもっと真剣に考えてほしいと思います。
話を戻して
この問題を解決するのは「メシマズな嫁においしい料理を作ってもらう」のと同じくらい難しいでしょう。
JavaScriptを使うなというのは、ある意味「完全にレシピ通りに作れ、遊びは許さない」に近いと思っており、それもよいのではないかと思います。
もちろんレストランのシェフ(を自負するの)であれば、そんなレベルで留まってもらっては困りますが。
最後に
Qiita様、悪いサンプルの例として利用したこと申し訳ございません!!