Eiffel has generics, value and reference types, design by contract, non nullable references, pure OOP in Smalltalk linage, agents, it is designed for IDE based tooling, since the beginning had a mixed mode development workflow (VM inside the IDE and C or C++ compilers for release mode), uses dynamic loading for extensibility,...
The only thing that killed Eiffel in the mainstream was the target audience of Eiffel Software, basically enterprise with deep pockets delivering projects in areas where Eiffel capabilities are relevant.
The fact that Eiffel Software remains in business, kind of proves that there are enough companies willing to pay for such tooling.
Enterprises supporting their sunk costs supports a lot, that by itself isn't a good judgment of quality. I wouldn't be surprised if more enterprises use Clipper than Eiffel...
Eiffel had similar issues that Pascal had: Appearing too much like an educational, purist language and having "good enough" more popular alternatives on the market (C/C++ vs. C++/Java).
And authors that don't compromise to sell stuff.
The crappy "SmallEiffel" situation didn't help either. It started out pretty great (good feature set, quick and cross-platform compiles via C), but then, erm, FOSS nature took its course. Which is why I'm a bit ware of similar language and their situations since then, e.g. Nim.
Man, there was a time in the 90s where I was hoping that we'd get Eiffel (or Sather) as the next big open source desktop language. Instead we still have walled garden C++ and reinvent-the-wheel C.
Had forgotten about Sather. Was too poor to afford Eiffel itself, but I remember really liking Sather and using it some.
That said, that was about the time I started realizing just how pointless it is to learn niche languages, as anything other than an amusement. I can't recall the wording, but trumpet players have a saying that you can learn flugelhorn for fun, but trumpet is always going to be what pays your bills.
I was just talking about Linux/BSD desktop apps and their implementation languages/libraries. Not a lot changed there, and the RESF seems to focus on more fashionable/achievable things (The only non-C++ option for Qt right now seems Python, and the most popular non-C language for gtk is probably Vala).
Right now not enough hubris for either Go or Rust to do a build their own thing right from scratch.
Actually, Bertrand Meyer (the creator of the Eiffel Programming Language) has always emphasized that the object oriented origin of Eiffel comes from Simula 67 and not from Smalltalk.
Yeah, according to his book OOP is mostly about inheritance (Java/c++ style OOP) rather than message passing or objects . Eiffel even support multiple inheritance.
Except that Simula allows free functions and Eiffel does not, while Eiffel also supports metaclasses and Simula does not, additionally using MELT feels like having a Smalltalk image, so it is a bit strange his point of view.
They're unrelated but their stance towards simplicity seems similar to me. Listening to golang core developers makes me remember (Smart)Eiffel developers.
Eiffel has generics, value and reference types, design by contract, non nullable references, pure OOP in Smalltalk linage, agents, it is designed for IDE based tooling, since the beginning had a mixed mode development workflow (VM inside the IDE and C or C++ compilers for release mode), uses dynamic loading for extensibility,...
The only thing that killed Eiffel in the mainstream was the target audience of Eiffel Software, basically enterprise with deep pockets delivering projects in areas where Eiffel capabilities are relevant.
The fact that Eiffel Software remains in business, kind of proves that there are enough companies willing to pay for such tooling.