私は普段、C#を用いた開発を行っていますが、次の仕事でJavaScriptを使うので学習することとなりました。
JavaScriptはエンジニアになる前も少し触っていましたが、当時は軽く触った程度でした。
今回仕事で使うということで本格的に学習しているのですが、複雑だなと思う点がいくつもあります。
今回はJavaScriptが複雑に感じる点について私の所感ですが紹介したいと思います。
JavaScriptが複雑な点
変数の中身がぱっと見でわからない
C#やJavaでは変数の前にstringやintなどの型が付いているので
何の値が入っているのかパッと見てもわかります。
それに対してJavaScriptは変数の前に型がついていないので、
何の値が入っているかわかりません。右辺をじっくり見ていかないと
値が何か理解することができないです。
JavaやC#のような静的型付け言語でプログラミングするのに慣れていると
結構不便だなと感じることが多いです。
実行しないとエラーを発見できない
実行しないとエラーを発見できない点にも気づきました。
C#やJavaではコードを書いているときにコンパイラがエラーを発見してくれますが、
JavaScriptは実行しないとエラーを検出してくれないです。
オブジェクト指向プログラミングがメインではない
C#やJavaなどのオブジェクト指向プログラミングがメインの言語では
クラスの中に処理を書いてプログラムを実行していくのがメインです。
普段C#などのオブジェクト指向がメインのプログラミングを行っていることが大きいですが、
JavaScriptはオブジェクト指向がメインではありません。
JavaScript ES6からクラスの概念が追加されたようですが、
JavaScriptのコードの組み方はクラスをメインに扱っておりません。
変数に関数を入れてプログラムを組む
JavaScriptの非同期プログラミングなどを学習していて思ったのは
関数を引数として使っていることが多いなと感じました。
クラスを複数分割して処理を記述するのではなく、
関数を使ってプログラミングを行う関数型プログラミングに近いものだと感じました。
無名関数やアロー関数などがよく出てくるのでこちらに慣れるまで
少し時間がかかると感じました。
動的型付け言語であることが大きい
上記に挙げたことを感じるのはJavaScriptが動的型付け言語であることが大きいです。
動的型付け言語とは変数や関数の前に型を付けずにプログラミングを行う言語のことを指します。
動的型付け言語では厳格なルールを決めないのでスラスラ書けるというメリットがあります。
それに対してC#やJavaなどは静的型付け言語です。静的型付け言語では
変数や関数の前に型を付けるので厳格なルールを決めてプログラミングを行います。
私もITエンジニアになる前は動的型付け言語の方が書きやすいと感じていたのですが、
最近は静的型付けで慣れてしまったので大変に感じることが多かったです。
とはいえJavaScriptでコーディングするのは楽しい
JavaScriptに対していろいろ言ってきましたが、なんだかんだJavaScriptは面白いです(笑)
HTMLを操作するDOM操作、サーバーサイドの実行環境を構築するNode.js、
シングルページアプリケーションを作成するReact.js、スマホアプリを作成するReact Native
などなど、JavaScriptは何でもできたりします。
さらにJavaScriptに型を付けた拡張言語、TypeScriptもあるのでこちらも使えるのが大きいですね。
プログラミング言語の幅を狭めるのではなく、様々な言語を学習して
自分の引き出しを増やしていきたいです。
コメント