0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Adaの初学者が躓くポイントと哲学的処方箋

Posted at

"難しさは、語彙が多いことではない。語彙の一つひとつに“意味”が込められていることだ。"

Adaは習得が難しい言語だと言われる。
たしかにその記述は冗長で、構文は厳密、自由度も低く感じられる。

だがそれは、「習得しづらい言語」なのではなく、**「設計に誠実であれ」という言語」**である。

本記事では、Adaの初学者が特につまずきやすい点を取り上げ、
その背景にある哲学的意図と向き合うことで、難しさを“美しさ”に変える処方箋を提示する。


躓き①:型定義の堅牢さと制限の多さ

subtype Voltage is Integer range 0 .. 100;

「なんでいちいち範囲まで指定するのか?」
その疑問はもっともだ。だが、それこそが誤りを事前に排除する設計意図なのだ。

Adaでは、「どんな値でも入りうる」ことはであり、
「入り得る値を制限し、それ以外を拒否する」ことが構文的美徳とされる。


躓き②:制約の多い関数定義と契約条件

function Divide (X, Y : Integer) return Integer
  with Pre => Y /= 0;

他言語なら「ゼロ割はif文で処理すればいい」と考える。
しかしAdaでは、「そういう呼び出しを構文で許さない」設計を選ぶ。

このPre条件は、意図を明文化し、設計を“嘘のつけない言語”にする試みである。


躓き③:無名の構造体・ラムダ・暗黙的型推論がない

JavaScriptやPythonのような「速く書ける言語」に慣れた人にとって、
Adaの文法は窮屈に感じられるだろう。

だがAdaは、あらゆる構成要素に“名前”を要求する。
その理由は明快で、名前のないものは、設計上存在しないのと同じだからである。


躓き④:警告ではなくコンパイルエラー

Adaは設計ミスを「警告」ではなく「拒否」する。
それは不親切ではなく、設計者を“未来の事故”から守る優しさである。

「動くかどうか」ではなく、**「正しく動く保証があるか」**を重視するのが、Adaの信念だ。


結語:不便さの中にある誠実さ

Adaは、習得すれば便利になる言語ではない。
そもそも“便利さ”を追求していない

その代わりに得られるのは、
「設計意図がコードに宿り」「未来の誤りが予防される」「誰が読んでも一貫性のある構造」だ。

"Adaの難しさは、誤魔化しが通用しないという一点に

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?