動的型付けと静的型付けについて
型付け言語には動的型付けと静的型付けの2種類がある。
動的型付け
動的型付けとは、変数や、サブルーチンの引数や返り値などの値について、その型を、コンパイル時など、そのプログラムの実行よりも前にあらかじめ決めるということをせず、実行時の実際の値による、という型システムの性質。
動的型付けのプログラミング言語
Python
Ruby
JavaScript
PHP
など
スクリプト言語が動的型付け言語と呼ばれます。
javascriptの例。戻り値や引数a,bに型を付けていない。
test(a, b) {
let c;
c = a + b;
return c;
}
コンパイルを行わず、プログラム実行時に型の整合性をチェックするので、プログラムの実行に時間がかかるが、直感的にコードをかけるので、学習コストが低い。
静的型付け
静的型付けとは、変数や、サブルーチンの引数や返り値などの値について、その型が、コンパイル時など、そのプログラムの実行よりも前にあらかじめ決められている、という型システムの性質
C/C++
C#
Java
Go
Scala
Swift
など
型をコンパイル時など、プログラムの実行よりも前に決定するのが静的型つけで、実行時に決定するのが動的型付けになるんですね。業務ではscalaを仕様しているので静的型付け言語を使用していることになります。
scalaの例
def test(a: Long, b: Long): Long = a + b
静的型付け言語は、コードを実装するときに型を付けます。
事前にコンパイルを行うことで、プログラムの実行時には、型の整合性チェックの必要量が少なくなるため、実行時の処理が速い。
コンパイル時には型の整合エラーをチェックできます
目的に合った言語を使用するのが良さそう。
大人数で開発をするには、堅牢なプログラムにするためエラーのチェックを厳密に行うことができる静的言語が向いているというのがわかった。