エッフェル語を学習した経験のある人はいますか。
Eiffel Studio は Visual Studio に似ていますか?
OOPを学ぶのに良いルートですか?
等
私はこの言語を約 15 年前に学びましたが、後悔したことはありません。
Eiffel は主流の言語とは少し異なり、他の環境ではすぐに利用できないいくつかのメカニズムを備えています。ある意味では、それは主流よりも少しアカデミックです。
EiffelStudio 環境は、平均的な IDE にも存在しないいくつかのアプローチを採用しています。(たとえば、ドラッグ アンド ドロップに似たピック アンド ドロップ機能をサポートしていますが、選択したアイテムをドラッグするときにマウス ボタンを押し続ける必要はありません。) かなり高度なブラウジング機能を提供するため、この意味では Visual Studio に非常に近いものです。また、Diagram ツールや Metrics ツール、最近追加された AutoTest などの組み込み機能もいくつかあります。EiffelStudio のドキュメントを参照して、その機能について理解することができます。
この言語には基本型を導入するためのハックがなく、複数の継承とジェネリック型がサポートされ、最初から Design by Contract が統合されているため、日常的に使用する予定がない場合でも、OOP の学習ツールとして非常に優れています。 - 日基準。そのためには、「オブジェクト指向ソフトウェア構築」第 2 版をお勧めします。バートランド・メイヤー著。言語への最新の追加は含まれていませんが、全体として OOP への適切なルートを提供します。
オブジェクト指向は非常にうまく機能するため、OOP を使用するのに最適な方法だと思います。オブジェクト指向に関して、これほどクリーンで一貫性のある oop 言語は見たことがありません。したがって、学生がそれを正しく行う方法を理解することは有益です。
言語としては、python や rebol などのスクリプト言語と比較すると、より重量があります。品質を維持したい大規模なプロジェクトに最適です。適切なオブジェクト指向に完全に焦点を当てています。(したがって、プログラミングのすべての概念について説明するわけではありませんが、OO は主要なパラダイムです) C にコンパイルされるため、速度は非常に優れています。反復的な開発と考え抜かれた設計を促進するため、これも優れた手法です。
Eiffel チュートリアルを読んで全体像をつかむことができますが、100 ページの「チュートリアル」なので、慎重に読んでください。
実際、OOP を教えられている学生は、言語よりも概念に苦労するように、できるだけ簡単な言語で学ぶべきだと思います。Java と C++ の両方を学びました。前者は大丈夫でしたが、後者は悪夢でした。Pythonが私の提案です
エッフェルに関して言えば、私はエッフェルで博士号を取得しようとしましたが、深刻な問題に遭遇しました。GUI に関するドキュメントはほとんどまたはまったくないため、GUI の使用は絶対にお勧めしません。また、コンパイラには非常にバグがあります。私は、完全に奇妙な行動に関する彼らのサポートと常に連絡を取り合っていました. たとえば、print ステートメントを配置すると、コンパイル時エラーが解決されます。
Eiffel は最良の多重継承オプションのいくつかを提供しますが、それでさえ悪夢に変わることがあります。すべてが 1 つのメイン クラスから継承された複数のクラスから継承しSELECT
、それらから 1 つの関数を再定義する必要があったこと、または関数を必要としRENAME
たことを覚えています。
契約による設計は良い追加であり、バリアントは無限ループを回避するのに役立ちましたが、他の場合には、このようなチェックを行うと馬鹿のように見えました (私の Eiffel は少し錆びています)。
foo (something)
do
x = x + 1
ensure
updated: x == old x + 1
他にも小さな問題があります。多くの場合、Eiffel スタジオは破損し、機能させるために特定のバックアップ ファイルを消去する必要がありました。