Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

They are totally unrelated.

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.



> The only thing that killed Eiffel in the mainstream was the target audience of Eiffel Software

Same type of thing killed Ada in the mainstream.


Indeed, thankfully there are enough business out there where using CVE friendly languages is not an option.

NVidia has adopted Ada/SPARK for security critical firmware, for example.

Likewise, Genode is now replacing C++ with Ada on the security critical OS layers.


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.


> ...the next big open source desktop language. Instead we still have walled garden C++ and reinvent-the-wheel C.

The RESF might take issue with that statement. Though it was of course largely true as late as the 2010s, not just in the 1990s.


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.


Smalltalk supports multiple inheritance via traits, added to post Smalltalk-80 systems.


iirc Added to Pharo. Not added to the commercial Smalltalk implementations.

Do you know different?


Just by reading papers, so I might be wrong here regarding adoption among them.

My last commercial Smalltalk was Smalltalk/V, just before Java got released, so not much I can state here.


I think it was added originally in Squeak[0], Pharo got it from there.

[0] https://wiki.squeak.org/squeak/3059


It isn't obvious to me that Squeak classes have been re-organised to actually use traits?

Where-as for some reason I seem to imagine Pharo classes have been re-organized to use traits?


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.

Any details why he thinks that way?


If I had to guess, probably the staticness, which is what people usually mean when they make that Simula/Smalltalk distinction.


I guess from that point of view makes sense.


They're unrelated but their stance towards simplicity seems similar to me. Listening to golang core developers makes me remember (Smart)Eiffel developers.


You mix that up with https://people.inf.ethz.ch/wirth/Oberon/Oberon07.Report.pdf and https://en.wikipedia.org/wiki/Oberon-2. Mössenböck and Wirth were the PhD supervisors of Griesemer.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: