Learning Eiffel Experience

Does anyone have any experience learning the Eiffel language.

Is Eiffel Studio like Visual Studio?

Is there a good route to study OOP?

and etc.

+4
source share
3 answers

I learned this language about 15 years ago and never regret it.

Eiffel is slightly different from the main languages ​​and has some mechanisms that are not available in other environments. In a way, this is a little more academic than basic.

EiffelStudio uses some approaches that are also not available in medium-sized IDEs. (For example, it supports the Pick & Drop function, which is similar to Drag & Drop, but does not require a mouse click when dragging the selected item.) It provides fairly advanced viewing options, so in this sense it is pretty close to Visual Studio. It also has several built-in tools such as Diagram and Metrics tools recently added by AutoTest, etc. You can look at the EiffelStudio documentation to get an idea of ​​its capabilities.

Since the language does not contain hacks for creating basic types, supports multiple inheritances and common types and integrates a contract design from the very beginning, it is very good as a learning tool for OOP, even if you do not plan to use it every day. For this, I would recommend Object-Oriented Software Construction, 2nd ed. Bertrand Meyer. It does not include the latest additions to the language, but it provides a good route for OOP in general.

+14
source

I actually think that students who study OOP should learn in easy language, so they struggle more with concepts than with language. I learned in both Java and C ++. The former was fine, but the latter was a nightmare. Python will be my suggestion

As for the Eiffel, I tried to make my PhD project in Eiffel and I was having serious problems. I would definitely not recommend using a graphical interface, since there is little documentation on it. Also, the compiler is very buggy. I constantly communicated with their support regarding completely strange behavior. For example, posting a print statement will solve a compile-time error!

Eiffel provides some of the best options for multiple inheritance, but even this can sometimes turn into a nightmare. I remember that I inherited from several classes that are all inherited from one main class, and then with SELECT one overridden function from them or to the RENAME function.

The contract design was a good addition, and the option helped to avoid endless cycles, but at other times you just looked like an idiot when you had such checks (my Eiffel is a little rusty)

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

There are other minor issues. Often the Eiffel studio will be damaged, and you had to delete certain backup files in order to make them work.

+2
source

I think this is the best way for OOP as it is very object oriented. I have not seen the Oop language, which is just as clean and consistent in terms of object orientation. therefore, it is useful for the student to understand how this should be done correctly.

As a language, if you compare it with scripting languages ​​such as python, rebol, etc., it is heavier. Best for large projects where you want to maintain quality. It completely focuses on the correct orientation of objects. (therefore, you will not see all programming concepts, but OO is the main paradigm) Its speed is very good, since it was compiled to C, so I had in mind the heavy construction. It promotes iterative development and thoughtful design so that there is also a good technique.

You can read the Eiffel Tutorial to get a comprehensive overview, but treat it carefully, as this is a hundred pages "tutorial".

+1
source

Source: https://habr.com/ru/post/1307429/


All Articles