静的型付け言語・動的型付け言語ってなに?のイメージ

初めまして。わかすぎです。

プログラミング歴は二年、普段はJavaでご飯食べてます。 現在は自社開発の手伝いでPHPの勉強を始めました。そんな中、頭に浮かんだことがあるので、今回はそれを題材にしてみようと思いました。

また、今回が初めての寄稿になりますので、拙い文章にはご寛容いただきますようお願いします。

はじめに

皆さんはどのプログラミング言語が好きですか?

Java, PHP,  Ruby,  Swift, Go, Python, RUST, JavaScript

言語によって、 得意なこと・ライブラリの豊富さ・記述のしやすさ

そんなところで決まってくるんじゃないでしょうか?

この中でも、『記述のしやすさ』にフォーカスして、今回は書いていきます。 (少し技術選定も関わってきます。)

静的型付け言語・動的型付け言語ってなに?

どれだけの人がこの言葉を聞いたことあるのでしょうか。

これは、プログラミング言語(またはフレームワーク)の記述ルールではっきりと分かれるものです。

『型』。つまりデータ型のことですが、 コーディングしていて、型をどれだけ意識しているか否かでわかります。

以下、引用します。

  • 静的型付け: Java, C、C#, VB, .netなど
  • 動的型付け: JavaScript, Python, Ruby, PHPなど

どうでしょう?イメージわきましたか?

それでは実際の例を挙げて書いていきます。

静的・動的ってどういうこと?

整数の配列を扱う変数を定義してみます。

  • 静的型付け言語の場合 Javaでは、以下のように書きます。(一例)

※List, Integer, ArrayListが型になります。

List>Integer> a = new ArrayList>Integer>();
  • 動的型付け言語の場合 PHPでは、以下のように書きます。(一例)
$a = [];

あれ?コードの量差違いすぎない??

ベーシックな書き方でこれを抜粋しましたが、ハッキリ違いがわかりますよね。

そうです。型の定義が、『明確』か『曖昧』かで静的動的がわかります。

じゃあどっちがいいの?

性格…といいたいところですが、 これは開発規模によって分けるべきだと思います。

先の例でいえば、

  • 静的型付け言語では、予め定義された整数型の変数に、文字列型でも浮動小数点型でも、それらの値を入れようとしたものならコンパイル時点でエラーが出ます。
  • 動的型付け言語では、型の定義をしておかないわけですから通ります。

他の例でいえば、

  • なんでも許容してくれるほうが楽で便利だからそれにする。
  • 平日だろうが祝日だろうが、6時には絶対に起きる。
  • ご飯食べに渋谷へ来てみたけれど、お店が多すぎて決めきれない。
  • 通勤はブーツって言われて行ってみたら、スーツだった。

などと予め決めておくということには、融通さや容易さに違いがあると思います。

これらがどういう影響を与えるかと言うと、開発速度・チーム連携・データ受け渡し。 これらをまとめて開発規模です。

…長くなってしまいましたので今回はここまで。

See you NEXT time.