バートランド・メイヤーは、
1950年11月21日生まれの
フランスのコンピュータ
科学者です。彼は、
オブジェクト指向プログラミング言語
Eiffelの開発者として、また
ソフトウェア工学における「契約による設計」の創始者として広く知られています。メイヤーは、簡潔で洗練された、使い勝手の良い
コンピュータ言語を追求し続け、
オブジェクト指向プログラミング(OOP)の初期からの提唱者の一人でもあります。
メイヤーの業績と活動
メイヤーは、
オブジェクト指向プログラミングに関する著書『Object-Oriented Software Construction』(日本語訳『オブジェクト指向入門』)で、OOPの概念を明確に示し、その後の
ソフトウェア開発に大きな影響を与えました。この書籍は、OOPの教科書として広く利用されています。
他にも、『
Eiffel: The Language』で
プログラミング言語Eiffelについて詳しく解説し、『Object Success』ではオブジェクト技術が経営層にもたらす影響について論じています。さらに、『Reusable Software』では
ソフトウェアの再利用に関する問題と解決策を探り、『Introduction to the Theory of Programming Languages』では
プログラミング言語理論への深い理解を促しています。
メイヤーは、
Eiffel言語の設計者として、そして「契約による設計」という開発手法の創始者として、
ソフトウェア開発の品質向上に貢献しました。彼は、
モナシュ大学の非常勤講師を務め、コンサルタントとしても活動し、オブジェクト指向システム設計、アーキテクチャレビュー、技術検証など多岐にわたる分野で専門知識を提供しています。また、カンファレンスでの講演や教育活動を通じて、オブジェクト技術や
ソフトウェア開発に関する知識を広めています。
メイヤーの経歴
メイヤーは、
エコール・ポリテクニークで学士号を取得後、
スタンフォード大学で修士号、
ナンシー大学でPh.D.を取得しました。
フランス電力公社で9年間、
カリフォルニア大学サンタバーバラ校で3年間の勤務経験を経て、1985年にInteractive Software Engineering社(後の
Eiffel Software社)を設立しました。同社で
オブジェクト指向プログラミング言語
Eiffelを設計し、2001年からはチューリヒ工科大学の教授として、信頼性の高い
ソフトウェアコンポーネントの構築に関する研究に取り組んでいます。
メイヤーは、
オブジェクト指向プログラミング言語
Simulaを通してオブジェクト技術を経験し、
抽象データ型と
形式仕様記述に関する研究も早い段階から行っていました。これらの経験が
Eiffelの開発に活かされており、
Eiffelは
Pythonなどの他の
プログラミング言語にも影響を与えています。
メイヤーは、2005年にダール・ニゴール賞、2006年にはACM
ソフトウェアシステム賞を受賞しています。特にACM
ソフトウェアシステム賞は、
Eiffelの設計が
ソフトウェアの品質に大きく貢献したことが評価されたものです。
メイヤーは
ウィキペディアに対しても肯定的な見解を示しています。ドイツ語版
ウィキペディアで彼の死去に関する虚偽情報が掲載された際には、この出来事を
ウィキペディアが持つ自己修正能力を示す例として捉え、その信頼性を擁護しました。彼は
ウィキペディアを「潜在的な不備を抱えながらも、自らの力で自分自身を治すシステム」と評価し、その有用性を高く評価しています。
主な著書
メイヤーは、数多くの書籍を執筆しており、以下にその一部を紹介します。
『オブジェクト指向入門 第2版 原則・コンセプト』
『オブジェクト指向入門 第2版 方法論・実践』
Object-Oriented Software Construction 2nd Edition
Object Success : A Manager's Guide to Object Orientation
Reusable Software: The Base Object Oriented Component Libraries
Eiffel : The Language
『プログラミング言語理論への招待 正しいソフトウェアを書くために』
Introduction to the Theory of Programming Languages
これらの書籍は、
ソフトウェア開発の分野における重要な文献として、広く参照されています。
メイヤーの業績は、
ソフトウェア工学、特に
オブジェクト指向プログラミングの分野において、計り知れない影響を与え続けています。彼の思想と実践は、今日の
ソフトウェア開発の基礎を形成しており、今後の
ソフトウェア開発においても重要な役割を果たし続けるでしょう。