型付け言語
「動的型付け言語である~」という話をよく聞くのですが、よくわからないので調べました。
■参考にしたリンク
プログラムの種類
プログラムには大別すると「動的型付け」と、「静的型付け」の2種類存在します。
プログラムが稼働するとき、変数や関数など具体的にどのような型で設定・返却するか明示するのが静的型付け
インタプリタ言語のように変数や関数などの型を明示せず、実際に稼働したときに設定される値によって型決まることを指すようです。
ぱっと私の印象は「コーディングは動的型付けのほうが楽そう」でも「静的型付けのほうがレビューが楽」といった印象を持ちました。
動的型付けの特長
インタプリタ言語など、1行1行読み込んで実行する形式の言語が多いためコンパイルによるネガティブエラーが出ないとのこと。
つまり、動かさないとわからないという状態で結構リスキーです。
しかし、メリットとして型の大きさを理解する必要がなく適当な(システム的に最大値)のメモリを割り当ててくれるようです。
しかし、割り当てが大きすぎるので実際にはちょっとしかデータ量を入れなくても無駄になるとのこと。
しかし、これはパフォーマンスにも影響を与えそうなので処理速度郵船などの場合は採用が難しいかもしれません。
静的型付けの特長
静的型付けは事前に型宣言をしておくので、レビューする時どういった値が入るのかがわかりやすいかなーと思っています。
また、コンパイルを通してプログラムが理解できるマシン後に変換するのでパフォーマンスを求める場合静的言語が採用されるイメージがあります。
最近の業界トレンド的には(単価的にも)静的型付け言語(特にGo、Elixir、Kotlin、Rust)などが注目されているようです。
動的型付け言語の種類
調べた感じでの主要だと思うのは以下です。
- PHP
- Ruby
- JavaScript
- Perl
- Python
- TypeScript
静的型付け言語の種類
調べた感じでの主要だと思うのは以下です。
色々言語はあるのですが、特定の言語に固執せずに幅広く勉強しておくことが必要だと思いました。