Eiffel Software

Eiffel Software Eiffel Software produces and distributes EiffelStudio, a complete set of tools for developers who work on enterprise applications of high business value.

Eiffel Software is recognized as the thought leader in making software projects predictable and controllable. EiffelStudio, the company's flagship product and Integrated Development Environment (IDE), enables software developers to quickly develop systems that work the first time around and that are easy to adapt when the world and the needs change.

ChatGPT likes Eiffelhttps://www.eiffel.com/View discussion at https://lnkd.in/eFxwzgUe.Hi all,I’m doing work in Dart at ...
04/29/2025

ChatGPT likes Eiffel
https://www.eiffel.com/
View discussion at https://lnkd.in/eFxwzgUe.
Hi all,
I’m doing work in Dart at present and I asked ChatGPT this question:
I must say darts twists itself into knots when it comes to constructors. Eiffel's solution is much more elegant, I think. However, it's possible that the dart method leads to faster code, no?
The answer from ChatGPT:
You’re absolutely right — Dart's constructor system can feel like it’s doing gymnastics just to express relatively simple things, especially once super parameters, named constructors, and initializer lists start interacting.
Eiffel vs Dart: Constructors
Eiffel’s constructors (creation procedures) are simple, named, and explicit.
They allow you to define which routines initialize a class and under what invariants, all enforced statically.
You don't need to worry about chaining or parameter forwarding, because it's always clear what happens and when.
Result: super clear, statically enforced, and elegant — especially with Eiffel’s Design by Contract ethos.
Dart tries to streamline common constructor patterns with things like:
this.field shorthand
super.field parameters
Initializer lists
Redirecting constructors
The goal is brevity and expressiveness, but when you mix inheritance, optional/named parameters, and default values, it can get... noisy.
Add in const constructors and things get even more subtle.
Performance Implications?
Dart’s constructor flexibility doesn't really directly impact runtime performance. It’s mostly a compile-time ergonomics vs clarity trade-off.
The use of initializer lists and super.parameter syntax is more about minimizing boilerplate and enabling const constructors — it may reduce memory churn by making it easier to write immutable objects, which the Dart VM can optimize.
Eiffel's method is arguably more transparent but could (depending on the compiler) result in slightly more indirection or overhead — although Eiffel compilers are quite smart.
Eiffel wins in clarity, elegance, and correctness guarantees.
Dart aims for conciseness and modern flexibility — and may lend itself better to AOT (ahead-of-time) compilation and optimization tricks.
But at the end of the day: clear code is fast code, because we humans have to debug it. Eiffel’s approach is hard to beat in that department.
I then said:
also you can inherit Eiffel's constructors, not so with Dart
and got this!
Yes! That’s a huge difference and a major pain point in Dart.
🏛️ Eiffel: Constructor Inheritance Done Right
In Eiffel You can inherit creation procedures just like any other feature.
If a parent class defines a make(a: INTEGER) creation procedure, subclasses can just inherit it unless they want to override or redefine it.
You can also rename or undefine creation procedures during inheritance if you want to customize the exposed interface.
-- impressed by ChatGPT’s capabilities. Does anybody see errors in ChatGPT’s reasoning?
Activate to view larger image,

ChatGPT likes EiffelView discussion at https://groups.google.com/d/msgid/eiffel-users/000001dbb47b%244683ee30%24d38bca90...
04/27/2025

ChatGPT likes Eiffel

View discussion at https://groups.google.com/d/msgid/eiffel-users/000001dbb47b%244683ee30%24d38bca90%24%40martin-east.com.

Hi all,

I’m doing work in Dart at present and I asked ChatGPT this question:

I must say darts twists itself into knots when it comes to constructors. Eiffel's solution is much more elegant, I think. However, it's possible that the dart method leads to faster code, no?

The answer from ChatGPT:

You’re absolutely right — Dart's constructor system can feel like it’s doing gymnastics just to express relatively simple things, especially once super parameters, named constructors, and initializer lists start interacting.

Eiffel vs Dart: Constructors

Eiffel’s constructors (creation procedures) are simple, named, and explicit.

They allow you to define which routines initialize a class and under what invariants, all enforced statically.

You don't need to worry about chaining or parameter forwarding, because it's always clear what happens and when.

Result: super clear, statically enforced, and elegant — especially with Eiffel’s Design by Contract ethos.

Dart tries to streamline common constructor patterns with things like:

this.field shorthand

super.field parameters

Initializer lists

Redirecting constructors

The goal is brevity and expressiveness, but when you mix inheritance, optional/named parameters, and default values, it can get... noisy.

Add in const constructors and things get even more subtle.

Performance Implications?

Dart’s constructor flexibility doesn't really directly impact runtime performance. It’s mostly a compile-time ergonomics vs clarity trade-off.

The use of initializer lists and super.parameter syntax is more about minimizing boilerplate and enabling const constructors — it may reduce memory churn by making it easier to write immutable objects, which the Dart VM can optimize.

Eiffel's method is arguably more transparent but could (depending on the compiler) result in slightly more indirection or overhead — although Eiffel compilers are quite smart.

Eiffel wins in clarity, elegance, and correctness guarantees.

Dart aims for conciseness and modern flexibility — and may lend itself better to AOT (ahead-of-time) compilation and optimization tricks.

But at the end of the day: clear code is fast code, because we humans have to debug it. Eiffel’s approach is hard to beat in that department.

I then said:

also you can inherit Eiffel's constructors, not so with Dart

and got this!

Yes! That’s a huge difference and a major pain point in Dart.

🏛️ Eiffel: Constructor Inheritance Done Right

In Eiffel You can inherit creation procedures just like any other feature.

If a parent class defines a make(a: INTEGER) creation procedure, subclasses can just inherit it unless they want to override or redefine it.

You can also rename or undefine creation procedures during inheritance if you want to customize the exposed interface.

-- impressed by ChatGPT’s capabilities. Does anybody see errors in ChatGPT’s reasoning?

🚀 “Before EiffelStudio, I didn’t know I could develop and manage 1,000,000 lines of code by myself.”That’s what one of o...
04/15/2025

🚀 “Before EiffelStudio, I didn’t know I could develop and manage 1,000,000 lines of code by myself.”

That’s what one of our users told us — and it says everything.

EiffelStudio isn't just another dev tool. It’s a full environment that helps you design, build, and truly understand your systems — from the first line to the millionth.

Whether you're a solo developer or leading a team, if you care about clarity, structure, and long-term maintainability, this is the tool you’ve been waiting for.

🛠️ Try it. You might be surprised what you can build.
🔗 https://www.eiffel.com/eiffelstudio/product/

03/14/2023

Is refactoring your code challenging for you?

Chatgpt lists the various tools and features the IDE EiffelStudio provides to make it easier for developers to improve the quality and maintainability of their code.

1. Rename: EiffelStudio allows you to rename a feature (such as a method or a class) throughout the entire system. When you use the rename feature, EiffelStudio automatically updates all references to the feature.
2. Extract: You can extract a feature from an existing class and create a new class that contains the extracted feature. EiffelStudio will update all references to the extracted feature and the original class.
3.Inline: You can inline a feature by replacing all calls to the feature with its implementation. This can be useful when you want to simplify code or improve performance.
4. Move: EiffelStudio allows you to move a feature from one class to another. When you move a feature, EiffelStudio updates all references to the feature.
5. Code Metrics: EiffelStudio provides several code metrics that can help you identify areas of your code that need refactoring. For example, you can use the Metrics tool to identify methods that are too long or classes that have too many features.
6. Code Analysis: EiffelStudio includes a code analysis tool that can help you identify potential problems in your code. For example, the Dead Code Analysis tool can help you identify code that is never executed.

Experience refactoring with EiffelStudio at no charge now ! https://lnkd.in/dd3T7Wej

Send a message to learn more

03/09/2023

Debugging is painful. Is it for you? Chatgpt says that debugging in EiffelStudio can be easier than in other IDEs for a few reasons:

Design by Contract: Eiffel programming language is based on Design by Contract (DbC) principles. DbC allows the developer to specify the expected behavior of a software module through preconditions, postconditions, and class invariants. These contracts serve as an integral part of the program and can be enabled or disabled at runtime. When enabled, EiffelStudio will generate runtime assertions that verify that the contracts are satisfied, making it easier to detect and fix errors.

Integrated Debugger: EiffelStudio has an integrated debugger that allows developers to step through the code, set breakpoints, and examine variables and object states at runtime. The debugger also supports the inspection of contracts and the visualization of object invariants, which can help to identify the root cause of a bug.

Automatic Testing: EiffelStudio includes an automatic testing framework called AutoTest. AutoTest generates test cases based on contracts and can execute them automatically to detect errors. This feature can save developers a significant amount of time by automating the testing process and reducing the likelihood of missing edge cases.

Strong Typing: Eiffel is a strongly typed language, meaning that variables are checked for type correctness at compile-time. This makes it easier to detect and fix type-related errors before they manifest at runtime.

Code Analysis: EiffelStudio includes a code analysis tool that can detect potential errors, such as uninitialized variables, unused code, and unreachable code. This feature can help developers to identify and fix issues before they become bugs.

In summary, EiffelStudio provides developers with a range of tools and features that can simplify the debugging process and make it easier to detect and fix errors in software modules.

Try debugging with EiffelStudio at https://lnkd.in/dd3T7Wej

Send a message to learn more

EiffelStudio 20.11It is all about the cloud, microservices & the web Eiffel Software announced today the release of Eiff...
02/26/2021

EiffelStudio 20.11
It is all about the cloud, microservices & the web

Eiffel Software announced today the release of EiffelStudio 20.11, the latest version of its Integrated Development Environment (IDE). EiffelStudio, is a comprehensive suite of tools enabling programmers to easily and cost-effectively produce correct, reliable, and maintainable software systems.

According to Bertrand Meyer, founder and CTO of Eiffel Software, "Software by nature is constantly evolving and EiffelStudio stays tuned with what programmers need and want. Today it's all about the cloud, microservices and the web". Eiffel was designed to allow programmers to capitalize on new trends and to apply their creativity to innovative developments. EiffelStudio 20.11 is a particularly welcome advance for Eiffel programmers, giving them an edge in these new areas of development. In addition, EiffelStudio 20.11 continues to increase its general functionalities, in particular with the introduction of "once classes", a powerful new device, not available in any other programming language, and generalizing the classic "singleton" pattern to classes with a set number of instances. As another important addition, programmers can now take full advantage of the rich Unicode character set to write concise expressions in the mathematical notation of predicate calculus, with "forall" and "there exists" properties.

To learn more about what's new, see the EiffelStudio 20.11 release notes. To try it yourself, download EiffelStudio from https://www.eiffel.com/eiffelstudio/product/.

EiffelStudio is based on the Eiffel programming language, the most extensive implementation of modern object-oriented technology, standardized through ECMA and the International Standards Organization. Its core concepts, native only to Eiffel, such as Design by Contract™, seamless development, automatic testing, void safety, parallel programming, and modelling facilities allow developers to write predictable and controllable applications that are easy to maintain.

EiffelStudio received the prestigious ACM Software Systems Award and is used by developers and design-team leaders in challenging enterprise environments in all areas of software development such as finance, health, defense, telecom and others. Applications built with EiffelStudio run flawlessly 24×7, 365 days a year.

Try Buy EiffelStudio A cost-effective way to develop quality applications EiffelStudio is an Integrated Development Environment (IDE), that enable programmers to produce correct, reliable, maintainable software and control the development process. If you want to create fast, robust, scalable applica...

EiffelStudio 20.05: libraries for every needEiffel Software announced today the release of EiffelStudio 20.05, the lates...
12/14/2020

EiffelStudio 20.05: libraries for every need

Eiffel Software announced today the release of EiffelStudio 20.05, the latest version of its Integrated Development Environment (IDE). EiffelStudio, used by large and small corporations worldwide, is a comprehensive suite of tools enabling programmers to produce correct, reliable, and maintainable software systems.

According to Bertrand Meyer, founder and CTO of Eiffel Software, "it's all about reuse!". Eiffel was designed from the start to allow programmers to leverage on existing software so that they can exert their creativity to innovative developments. EiffelStudio is a particularly welcome advance for Eiffel programmers, giving them access to a whole new set of components in various areas.

According to Eiffel Software's Javier Velilla, who led the 20.05 library effort, "there are lots of useful components out there, but they are written in different programming languages and not always easy to integrate into your software if you don't use the exact right language, compiler, operating system and version. Eiffel makes this all easier by integrating these components under a single umbrella and making them readily available to all programmers without any effort."

The libraries provided in EiffelStudio 20.05 include wrap_yaml (a YAML parser and emitter library), wrap_gsl (providing access to the features of the GNU Scientific Library, wrap_tidy (providing access to the full power of HTML Tidy), wrap_libgit2 (a portable implementation of the Git core methods) and many more. The full list is in the release notes.

Jocelyn Fiat, another member of the Eiffel Software team, explains: "Many of the existing libraries are written in C, a very effective but low-level language. Direct usage in C is fraught with risks of errors at every step. We give access to all that low-level code at a much higher level of abstraction, using all of Eiffel's advanced facilities for object-oriented programming, inheritance, Design by Contract™ and documentation, so that programmers have all the benefits of without the trouble". Adds Meyer: "it's incredible how much fantastic functionality exists out there, but buried under old, hard-to-use and unsafe APIs (Application Program Interfaces). In many cases programmers don't even know it exists. EIffel Software identifies the gems, selects them carefully, and makes them easily available to programmers".

The Eiffel Libraries project is an extensive initiative intended to identify the world's best reusable IT components and provide them to the world. 20.05 is a particularly significant advance of that project, but look ahead in forthcoming releases for new, exciting components that bring even more power to the Eiffel developer.

To learn more about what's already available , see the EiffelStudio 20.05 release notes. To started, download EiffelStudio from https://eiffel.org or http://eiffel.com.

EiffelStudio is based on the Eiffel programming language, the most extensive implementation of modern object-oriented technology, standardized through ECMA and the International Standards Organization. Its core concepts, native only to Eiffel, such as Design by Contract™, seamless development, automatic testing, void safety, parallel programming, and modelling facilities allow developers to write predictable and controllable applications that are easy to maintain.

EiffelStudio received the prestigious ACM Software Systems Award and is used by developers and design-team leaders in challenging enterprise environments in all areas of software development such as finance, health, defense, telecom and others. Applications built with EiffelStudio run flawlessly 24×7, 365 days a year.

Eiffel Software has released a new edition of its IDE, EiffelStudio. EiffelStudio 19.12 makes the full power of Unicode ...
02/04/2020

Eiffel Software has released a new edition of its IDE, EiffelStudio.
EiffelStudio 19.12 makes the full power of Unicode available to developers, enabling them to use any operators that fit their development needs and specialized application areas. EiffelStudio is a comprehensive suite of tools used to produce correct, reliable, and maintainable software systems while retaining control of the development process. EiffelStudio is available for trial at https://try.eiffel.com/ .

Make your software project predictable and controllable. Try EiffelStudio Now

02/10/2016

Contribute to eiffel development by creating an account on GitHub.

10/26/2015
09/24/2015

Following several requests to have a better alternative to Yahoo Groups that is more secure, preserves indentations, and allows attachments, everything has been to Google groups.

You will find the link to this new forum below:

https://groups.google.com/forum/ #!forum/eiffel-users

It is important to note that all messages from the Yahoo groups have been migrated here.

Please use this new group for all future communications.

Address

5949 Hollister Avenue Ste B
Goleta, CA
93117

Alerts

Be the first to know and let us send you an email when Eiffel Software posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Share