みなさんこんにちは。おばたです。
最近は個人開発でVue3を使っています。
GoogleのGeminiAIを使えば、ほとんどVueの知識がなくても手軽に使うことができます。
そんな個人開発の中でわかったJavaScriptの難しさを、できるだけ初心者目線かつPythonと比較しながら記事にしてみたいと思います。
最初に触る言語で悩んでいる人の手助けに少しでもなっていたら幸いです。
「何でもできる」は、底の見えない沼の入口
JavaScriptとPythonを使用環境でとてもザックリと分けてみると、
・Pythonはサーバー側で使える言語
・JavaScriptはフロント側、サーバー側で使える言語
と分けることが出来ると思います。
ものすごく単純に考えると、「え?フロント側とサーバー側の両方で使えるなら、JavaScriptを覚えた方がお得じゃん!」となりますよね。
ところが、これは「底の見えない沼の入口」だったりします。
私も一番最初にプログラミングを始めた頃は「お得なJavaScriptを学びたい!」と、そんなことを考えていました。
ですが、この「何でもできる」は非常に危険なことだったりします。
結局私は、両方とも業務で使うことになったのでハッピーな状態になれたのですが。
あと、どの言語が将来的に伸びるか?とか給料的に有利か?などは、あまり考えすぎてもしょうがないと思います。というのも、自分の経験だけで話すと、言語との出会いは、ほとんど運命のようなものだと考えているからです。
その出会いに感謝して、その言語を愛していくことが良いのではないかと考えています。
私の場合、出会ったその言語で最善を尽くすことを心がけています。
Pythonは非常に単純、だから簡単
プログラミング界隈において最も有名な言葉の一つに「単一責任の原則」と言うものがあります。
サービス開発においても「一言で内容がわかるほどシンプル」なものが良いとされています。
これをPythonという大きな言語という枠で考えると、「Pythonはサーバ側で使われる」という単純な性質を持っていることがわかります。
「サーバ側で使われる」という非常に単純な原則に則っているため、Pythonに関わるあらゆる事柄は、極めて単純な構造となっていることが多いです。
Pythonを使うユーザが、この思想に共感し、単純に使うことを意識しているということかもしれませんね。
この原則があるため、Pythonのドキュメントを非常に単純です。
おそらく基本的な言語の使い方を2,3回読み込めば一生の財産となってくれるでしょう。
簡単ですね。
世の中は難しいことばかりなので、Pythonのようにシンプルで単純で美しいコードを見ると嬉しくなりますね。
Pythonについては、これ以上説明が不要だと思えるほどです。単純で簡単だからですね。
一方JavaScriptはどうでしょうか?
JavaScriptは非常に便利、だから複雑
JavaScriptは先ほども記した通り「何でもできます」。なので非常に便利です。
フロント側で使うこともできますし、サーバ側で使うこともできます。
ザックリと大きく分けると「フロントとサーバ」の2つの環境で使うことができます。
これを単純に考えると、「フロント側のJavaScript」と「サーバ側のJavaScript」を知る必要があるということです。
「えーーっと、まだ2つなら余裕!」私もそう思います。
Pythonでもif分岐などを使いますので2つくらいなら大丈夫です。
では以下のようになったらどうでしょうか。
・「フロント側のスタンダードなJavaScript」
・「フロント側のモダンなJavaScript」
・「サーバ側のスタンダードなJavaScript」
・「サーバ側のモダンなJavaScript」
4つになりましたね。個人的にはif分岐の中に、もう一度if分岐が登場してきた瞬間に、それらを疑い始めます。
ここまででも個人的には複雑だなぁと感じているのですが、これにVueの場合などは、Vueの中で使える記述方法が2つ用意されているのです。
・「VueのOptional記法」
・「VueのComposition記法」
これを見た皆さんは何を感じるでしょうか?
・「色んな選択肢があって便利だね!」
・「ネットで調べた時に、色んな記法があって、自分の環境と違う人が多い」
もっと言うと、JavaScriptはTypeScriptというものを知っていることが前提の様な風潮になってきましたね。
・「TypeScriptについても学んでね」
JavaScriptを扱うにあたって、あとどのくらい勉強を進めればいいのでしょうか?
わかりません。
ちなみに個人開発ではTypeScriptは導入していません。自分しかコードを読まないですし。
少し話が脱線しました。
自分と同じ環境の初心者向けの記事が見つかりにくい
そうなんです。選択肢がたくさんありすぎて「自分と同じ環境の初心者向けの記事がみつからない!」ということになります。
また、ネットを漁っていると、「これはどんな環境で書かれたJavaScriptなんだ?」と混乱させられることもあります。
これはGoogleのGeminiに質問しても同じです。
最新のVue3はComposition記法を推奨していたので、私はComposition記法を採用していたのですが、Geminiの回答はデフォルトでOptional記法なのです。
なので仕方なく、私は毎回「Vue3のComposition記法でお願いします」とお願いすることになります。
既存のネットの記事はもうほとんどがOptional記法です。
記事内に記載してあるコードをコピペしても動きません。書き方が違うので。
これが「何でもできる」ことの代償なのかもしれません。
「何でもできる」は「単一責任の原則」とまったく反対の場所にあるものです。
「何でもできる」の恐ろしさが少しでも伝わっていれば幸いです。
JavaScriptを学び始める人も、何のためにJavaScriptを学ぶのかを明確にしていれば、とても有意義な学習になると思いますので、まずは「フロント側で使いたい!」と決めてみるのはどうでしょうか。
そもそも初心者だった頃を思い返してみれば、サーバーとかフロントとか、そういう大きな概念もよくわかっていなかったと思うので、そういうことに注意を払いながら学習するのは難しいことなのかもしれませんが・・・。
Pythonは単純だけど、環境構築が難しい
一方でPythonは、環境構築が難しいという罠もあります。
Pythonそのものは単純だけど、それを扱う場所を作るのは難しい。
JavaScriptはブラウザで動作するので、環境については考えずに進められます。
結局どっちもどっちな感じがしてきますね。
私が勉強を始めた頃もそうでしたが、オンライン上ですでにPythonが扱える状態の環境を提供してくれているサービスなどもあります。
これは単純で素晴らしいですね。
オンラインならPythonが使える。単純ですね。
まとめ
最後までご覧いただきありがとうございました。
少しでも皆さんの初期学習のお役に立てられていれば幸いです。
私の場合、初期楽手を進める上では、Pythonは単純、JavaScriptは便利、という感覚を持っていたと思います。
今ではある程度両方とも使えるようになったので、どっちでも良いかなぁというくらいにしか考えていません。
というのも、プログラミング言語というのは、単なるツールの1つに過ぎないからです。
問題はその先にある、そのツールを何のために使うか?どんな風に使うか?ということです。
PythonもJavaScriptも素晴らしい言語であることには間違いありません。
しかし、それらを使うのは人間です。道具の使い方によって、良いものも出来るかもしれませんが、酷いものも作ることができます。
皆さんがより良いプログラミングライフを送れることを祈ります。
ありがとうございました。