有没有人有学习埃菲尔语的经验。
Eiffel Studio是否像Visual Studio一样?
学习OOP是一条好途径吗?
等
答案 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工作室会被破坏,您必须删除某些备份文件才能使其正常工作。