特集/連載
“プログラミング言語なんてどれも同じ”論者もうなずく「言語の違い一覧」:ソフトウェア開発にまつわる10個の神話【第4回】
世の中には数々のプログラミング言語が存在する。それらに対して「どのプログラミング言語も同じだ」と主張する人がいるが、実際はそうではない。プログラミング言語は何が違うのかを分類に沿って解説する。
ソフトウェア開発にはさまざまな手法が存在し、その違いが議論の対象になることがある。議論を必要以上に複雑にしかねないのが、誤解に基づく“神話”の存在だ。ソフトウェア開発業界にある10個の神話のうち、7つ目を取り上げる。今回はエンジニアが日常的に使う、プログラミング言語に関する神話だ。
神話7「どのプログラミング言語も同じだ」
併せて読みたいお薦め記事
連載:ソフトウェア開発にまつわる10個の神話
- 第1回:エンジニアをいくら増やしても「納期遅れ」を回避できないのはなぜ?
- 第2回:「OSSはソース丸見えだから危険」が実は“間違い”なのはなぜ?
- 第3回:「プログラミングはつまらない」説を論破する“納得の根拠”はこれだ
エンジニアのためのノウハウ
全てのプログラミング言語は、
- データを変数として管理する
- 条件付き分岐(「if」文など)を実行する
- ループ内で処理を反復的に実行する
といった3つの機能を備える。こうした基本的な部分は共通しているものの、プログラミング言語にはさまざまな種類がある。
プログラミング言語は幾つかの観点で分類できる。主な分類は以下の通りだ。
- プログラミングパラダイム(プログラミングの考え方やスタイル)による分類
- オブジェクト指向言語
- データと処理(メソッド)をまとめた「オブジェクト」をプログラムの基本要素とする。
- 関数型言語
- 関数を値として扱う。
- オブジェクト指向言語
- 実行形式による分類
- インタープリタ言語
- ソースコードを逐次解釈する「インタープリタ」を使ってプログラムを実行する。
- コンパイル言語
- あらかじめソースコードをプログラムに変換(コンパイル)する。
- インタープリタ言語
- ソースコードの抽象度による分類
- 高水準言語
- ソースコードが人にとって理解しやすい。
- 低水準言語
- ソースコードが機械語に近い。
- 高水準言語
- 変数の型(数値や文字列といったデータの種類)の定義による分類
- 動的型付け言語
- プログラムが変数の型を自動で決定する。
- 静的型付け言語
- ソースコードに変数の型を明示する。
- 動的型付け言語
エンジニアはソーシャルメディアで、どのプログラミング言語がベストなのか、なぜベストなのか、といった議論を常に交わしている。もし全てのプログラミング言語が同じであれば、このような論争はすぐに収まるはずだ。だがそうではない。「全てのプログラミング言語が同じだ」という神話に、彼らは激怒している。
第5回は、8つ目の神話を紹介する。
変更履歴(2023年6月2日14時15分)
記事掲載当初、本文で高水準言語と低水準言語の説明が逆になっていました。おわびして訂正します。本文は修正済みです。
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.