学习埃菲尔的经验

时间:2010-04-20 07:52:36

标签: eiffel

有没有人有学习埃菲尔语的经验。

Eiffel Studio是否像Visual Studio一样?

学习OOP是一条好途径吗?

3 个答案:

答案 0 :(得分:15)

我大约15年前学过这门语言,从不后悔。

Eiffel与主流语言略有不同,并且具有其他环境中不易获得的某些机制。从某种意义上说,它比主流学术更具学术性。

EiffelStudio环境采用了普通IDE中不存在的一些方法。 (例如,它支持Pick& Drop工具,类似于Drag& Drop,但不需要在拖动所选项目时按住鼠标按钮。)它提供了非常先进的浏览设施,所以在这个意义上它非常接近视觉工作室。它还有几个内置函数,如Diagram和Metrics工具,最近添加了AutoTest等。您可以查看EiffelStudio documentation以了解其功能。

由于语言缺乏引入基本类型的hacks,支持多重继承和泛型类型,并且从一开始就集成了Design by Contract,即使你不打算在一个OOP上使用它,它作为OOP的学习工具也是非常好的。日复一日。为此,我推荐“面向对象的软件构建”,第2版。作者:Bertrand Meyer。它不包括该语言的最新增加内容,但它确实为整个OOP提供了良好的途径。

答案 1 :(得分:1)

我认为这是采用OOP的最佳途径,因为它确实很好地面向对象。 我还没有看到一种与面向对象一样干净且一致的oop语言。因此,让学生了解如何正确行事是有益的。

作为一种语言,如果你将它与脚本语言(例如python,rebol等)进行对比,它就会更加重量级。最适合您希望保持质量的大型项目。它完全专注于正确的面向对象。 (所以你不会看到编程的所有概念,但OO是一个主要的范例) 它的速度非常好,因为它编译成C,所以我只是意味着重量级的结构。 它促进了迭代开发和深思熟虑的设计,因此这也是一种很好的技术。

您可以阅读Eiffel Tutorial以获得全面的概述,但请轻轻一点,因为这是一百页的“教程”。

答案 2 :(得分:1)

我实际上认为正在接受OOP教学的学生应该学习最简单的语言,这样他们就会比语言更加挣扎于概念。我在Java和C ++上学到了很多东西。前者还可以,但后者是一场噩梦。 Python将是我的建议

关于埃菲尔,我尝试在艾菲尔做我的博士项目,我遇到了严重的问题。我会绝对不建议使用GUI,因为它几乎没有文档。编译器也非常错误。我一直与他们对完全离奇行为的支持保持联系。例如,使用print语句可以解决编译时错误!

Eiffel提供了一些最好的多重继承选项,但即便如此,有时也会变成一场噩梦。我记得从多个类继承,这些类都从一个主类继承,然后从它们中获得SELECT一个重新定义的函数,或者必须RENAME一个函数。

通过合同设计是一个很好的补充,变体有助于避免无限循环,但在其他时候你只是看起来像一个白痴当你有这样的检查(我的埃菲尔有点生锈)

foo (something)
    do
        x = x + 1
    ensure
      updated: x == old x + 1

还有其他一些小问题。通常情况下,Eiffel工作室会被破坏,您必须删除某些备份文件才能使其正常工作。