As a teenager I read "Object Oriented Software Construction" by Bertrand Meyer, and was convinced that Eiffel was THE programming language of choice.
However, that love didn't last long. Too many simple things just took way too much effort to do, and most damning of all, there was no working ecosystem of libraries.
There were some libraries, but getting them to actually work with your version of Eiffel was a huge hassle (and not always successful), and there were, like 20 to 50 libraries in total.
I'm still missing some of the language features in other languages though...
I don’t think Meyer understood that the era of free compilers had begun.
He continued to charge money for the compiler while Java was establishing itself. We were starting to see rules of language adoption (like “build Hello World in 10 minutes, something trivial in the first hour”). But by the time he learned these too, the Java train had already left the station.
But one of the other things we were starting to learn is that most successful languages have a champion, in the form of a larger corporate backer (Java, Go, C), or an IDE company (Kotlin, Turbo Pascal). Once in a while a flagship application will serve (Rust, Elixir, perhaps Ruby). I don’t recall Eiffel having any of those.
And I wanted to try Eiffel but could not afford the cover charge, by the time I could I had specializations that were still uncommon enough that switching languages seemed like a bad move. I still have it on my todo list to hunt up some of Meyer’s writing and spelunk for lost wisdom, but not for the language itself.
> I don’t think Meyer understood that the era of free compilers had begun.
It arguably hadn't. OOSC came out in '88, and that was probably the first big push of Eiffel. The dedicated book and the release of their IDE "EiffelBench" followed in '90. Free compilers weren't an issue for either commercial nor desktop customers.
But the market for the big OO language was still more open, so they would've needed to gain more ground in that era. Most of the other OO gurus of that time (and it was a fiercely personality-driven industry) favored either SmallTalk or C++. A few built other OO languages, like Oberon or Modula-3.
Maybe Meyer should've collaborated/marketed more, maybe having an European background was a big downside from the very start. Maybe the whole purism was a bit too strong for an industry that likes sequels more than Hollywood does.
By the time OOSC2 came out in '97, MS heavily invested in C++ and Java was all the rage. If you wanted something alternate, you used something like Delphi. It was over by then. Small/Smart-Eiffel actually was pretty good and could've been used for even commercial projects. But no programmer used it in their day job, no killer app was written in it.
Even in the mid-late 90s IBM was still backing Smalltalk as the next big thing, with its (expensive) VisualAge products. By the end of the 90s they had ditched it entirely and pivoted to Java Java Java.
That was slightly before my time in the industry, do you have any indication on how hard they were backing it? I mean IBM brings out a lot of stuff and was quite aimless in the late 90s/early '00s. They were supporting SmallTalk for quite a while, but on the other hand, so they did with RPG and PL/I…
> I don’t think Meyer understood that the era of free compilers had begun.
That's right, and something I had totally forgotten.
I started with a shareware version (?) of Eiffel Studio, and later it was made free as long as you used it either for non-commercial purposes, or released your software as GPL.
Looking back at it, that just sounds quaint.
I think the IDE was actually written in Eiffel, and was pretty good for that time, but not good enough to stand out, like Turbo Pascal did back in the days.
Ah, yessss, Cepage, or "seepage". At the very first talk I went to, to find out about Eiffel, in 1986, Meyer spent 3/4 of his alotted time talking about Cepage. Soured me.
It was an interesting language, in some ways, and could have been extended enough to be useful but, like Modula-3 and Oberon, even at the time obviously would not supplant C++. Rust could still suffer the same fate if it can't fix its compiler-speed problems. It's the only candidate on the horizon, with its Drop trait, for those places where nothing else will do.
Wirth has mentions in one of its articles, not sure which, that he just expected too much from mainstream.
He was convinced, that by building such systems, mainstream programmers that cared about quality engineering would just flock to Modula-2 and Oberon, and in retrospect some advertising effort could have been done.
Modula-3 was killed by Compaq and HP, after their cascade acquisition from Olivetti research labs, they never cared about this kind of research.
Rust might have better chance, because just like it happened with C++ vs C, there are a couple of big names that care about it nowadays. Microsoft just had an internal Rust Summit.
Also Ada is still around, NVidia and Genode OS being two relevant names that have recently adopted it for security critical software layers.
I went through the same thing, and I think that may be why I prefer Ruby over Python. I still have a soft spot for Eiffel and checked it out recently, but the tooling situation and library ecosystem is still not great, and I can’t see myself actually using it for anything practical.
> As a teenager I read "Object Oriented Software Construction" by Bertrand Meyer, and was convinced that Eiffel was THE programming language of choice.
> However, that love didn't last long. Too many simple things just took way too much effort to do, and most damning of all, there was no working ecosystem of libraries.
What langugage features are you missing? When I learnt about Eiffel, Contract Oriented Programming was the thing, but these contracts are easily done in Elixir, so they aren't that special. Oh yeah, the tooling was horrible.
Apparently you can generally assume x = x, which seems like a very nice feature and one that's perversely absent in all other programming languages I can think of.
My first 2 years of university were using Eiffel in a NeXT lab. The professors had built up their own standard libraries. Some of the preconditions and postconditions got a little annoying, but probably staved off a lot of bugs.
Junior year they switched everything to Java. The CS lab switched to macs, but the main computer labs were mostly all windows, but CS students could finally work on their CS programs there if they didn't have their own computer (but everyone did anyways)
However, that love didn't last long. Too many simple things just took way too much effort to do, and most damning of all, there was no working ecosystem of libraries.
There were some libraries, but getting them to actually work with your version of Eiffel was a huge hassle (and not always successful), and there were, like 20 to 50 libraries in total.
I'm still missing some of the language features in other languages though...