EiffelStudio Goes Open
WeiszNet writes "Bertrand Meyer, the creator of Eiffel the language and CTO of Eiffel Software in Santa Barbara, CA has announced in his Software Architecture course at ETH Zurich that the company's flagship product - EiffelStudio was released under the GPL today. Here is the press release: and the project's page.
Eiffel is an object oriented programming language supporting contracts. Last year the international standard (ECMA) for Eiffel was released and now the initiative to go open has been taken."
I'm sure we'll all be programming in Eiffel in a few years. Yep.
This was the #1 reason for not using Eifell.
I haven't heard of this language, and don't want to do too much research (go go procrastination!). Can anyone tell me some of the basic info about this, and what makes it different? Why would I want to use this language over something already available, for example.
Eiffel is an object oriented programming language supporting contracts.
I was beginning to get concerned about the incredible lack of object oriented programming languages currently available.
Fortunately, there's now another one to choose from that is now free.
I'm a big tall mofo.
Alright! Another Eiffel story means I've now paid only $10 for each time I've heard or thought about Eiffel since school forced me to buy the book all those years ago. At least it wasn't Java, I guess.
The link for the project page goes to a wiki page with not too much information. Not to sound too much like a slashvertisement, I'm sure they would want you to also link to this page, containing more information:
http://www.eiffel.com/products/studio/
Also there should be a PDF warning on the ECMA standards link, just a thought.
What are the odds that some idiot will name his mutex ether-rot-mutex!
I'm having first year comp sci flashback! I remember at the time being taught Eiffel as my first OO langage used to teach OO techniques and design - I hated it back then it felt clunky, overly protective and claustraphobic. Now after almost 10 years as a programmer every so often I crack open the old textbooks and think "wow.. that is rather elegent and expressive". Eiffel is engineered/designed - it is deliberately not suited if all you want to do is hack about. It's funny, only yesterday I was using Eiffel as an example to my IT team as a language that forced strong contractual based interfaces.
I just can't be bothered.
What are the differences between Eiffel and other free object oriented programming languages? What does Eiffel have that Ruby, Python, and Java do not?
Religion for nerds. Stuff that really matters
In other words, Algorithms + Data Structures = Programs. I'll be damned ... that Wirth guy was right after all.
The higher the technology, the sharper that two-edged sword.
As a language, Eiffel doesn't make it more convenient to express a problem to receive a good solution, it just makes the programmer follow the public speaker's maxim:
Programming by contract is essentially just writing twice as many unit tests, wrapped all around the code that is supposed to be doing the work. It's even easier to write bad tests when it's right next to the code being tested, so why bother?
Bertie, give it up already!
[
At least according to this website I found via the Artima.com website.
It lets you compare any two languages that have compilers in Linux and it gives you a graph of speed vs memory usage in various kinds of programming patterns such as matrix math, branchy programs, etc.
Eiffel (compiled with SmartEiffel) vs C++ (GCC 3.3.4) is actually slightly faster than C++ in almost all of the tests that the author came up with. And the memory usage is just as efficient as C++.
I've looked at Eiffel, but the syntax isn't very pretty. However, for important projects I think Eiffel will be the right language for the job.
They already told you. If you managed to get to the "object oriented" part, how did you miss the "contract" part?
Doesn't anyone remember Bertrand's rant against Stallman and the GPL in 2000? It is pretty amusing that he finally chose the GPL -- I would have thought he would have gone for a BSD License just to save face.
I've heard of Eiffel a number of times. The contract by design feature intrigues me; I've always wanted to try it. Well, I guess now I have more incentive. I don't think there's anything like it in the more common languages - C, Python, Java, etc. When I'm coding, I usually try to force myself to make decisions about which objects/functions are responsible for what. But it never seems to work out that way. Things decay over time.
I've wondered just how much a language can compensate for programmer laziness, carelessness, or just lack of ability. This question recently came up in a discussion. I am somewhat confident that software or languages can be designed to force good behaviour and eliminate (certain types of) mistakes. After all, there are no memory leaks in scripting languages, right? And you can't write to memory that's not yours. In lisp, it's harder to make off-by-one mistakes than in some other languages. Java forces you to handle error conditions with checked exceptions.
Yeah, I'm going to have to try this eiffel thing.
For all of those hearing about Eiffel for the first time. Back in the mid 80's, when the OO paradigm was first starting to gain traction (but it wasn't obvious that C++ would become the first mainstream object-oriented language) there were debates about whether the big OO language of the future would be C++, Smalltalk, or Eiffel.
is the most lucid book I have ever read on what OO is all about, and how a language must be designed to support it.
It clearly indicates that C++ is not such a language.
I have always wanted to do a project in Eiffel, have never had a chance.
Read the book: It will change how you write C, whether kernel or application. Contracts are, IMHO, a lot of what Extreme programming is all about: writing (or, in Eiffel's case, building in) tests as you write the code.
Lew
If you want contract programming, but prefer C++ style syntax to Eiffel style, try the D programming language.
http://www.digitalmars.com/d/
From the product web site http://www.eiffel.com/products/studio/, it looks like Eiffel targets .NET. I know in the past Eiffel could emit C code which was them compiled. I'm not sure if the .NET "integration" is only in Windows or if it uses Mono on linux for that. I'm not able to determine this from a cursury glance at their web site.
In any event, I welcome this move. I'm definitely adding Eiffel to my list of languages to learn. It is a neat language that has a lot of advantages. In fact at one time HP was using it for developing printer firmware since it was less error-prone and increased their productivity dramatically over using just C. Certainly as our apps increase in complexity we need tools that allow things like design-by-contract in order to save us from the inevidable bugs.
"ECMAEiffel".
That's a death knell if ever I heard one.
Just a question.
Design by contract is essentially putting assertions into your code. You typically insert these as pre- and post-conditions. For example part of the contract for a real square root function might be the precondition that the argument is greater than or equal to zero. In C assertions generally cause program failure if they turn out to be false. And the support in C is pretty crude, simply a macro called assert(). In Eiffel this stuff is built right into the language and the language offers graceful recovery in the event that one of these conditions has failed. Most people I know who have used Eiffel hate these features. I've never used it so I reserve judgement.
Now you too can make up technobabble to impress people with your knowledge of contracts.
"The White House is not an intelligence-gathering agency," -- Scott McClellan, Whitehouse spokesman.
Oh yeah, thats right. My college used it in it's introductory CS classes. It was my first real language experience and it almost drove me from the field. I can't tell you why really but it was just too much. I struggled until I we got to C++ and then, well everything made sense. That seem crazy? It sure did to me. Looking at it now it seems rather wordy. I should download it and get to know it, if only to conquer something that frustrated me so much.
"Eiffel is engineered/designed - it is deliberately not suited if all you want to do is hack about."
Which is why OSS will never adopt it.
--
The "are you a script" word for today is overdone.
I have bought the BM's book (Object Oriented Software Construction) a couple of years ago. Did it after hearing raving reviews in the USENET forums. Believe me, it was the absolutely worst $70 (I think it was $70) spent in my life. The guy is a hack. Eiffel is so bad it's not even funny. Contracts are neat, I give him that. But most everything else (including multiple inheritance ant the supposedly bulletproof type-system that aficcionados so like to rave about) is broken in more than one subtle but profound way. If static typing is your cup of tea, stick with Java or OCaml or Haskell or whatever. Heck, even C++.
Sure, Digg can deliver some news faster, but then I prefer the depth of the userbase on Slashdot, the moderation system, the fact that it is frequented by more than just 16 year olds and of course its lovely green.
If Digg is what you want, Digg is what you should get, so piss off.
And yet game engines are written in C/C++. Guess OOP isn't everything.
Instead we'll reinvent perl several times with "dynamic" "domain specific languages" in Ruby and other hacks.
Maybe this will breath some life in to Eiffel.. I hope so.
You can do design by contract in any language. You can do the same thing in any other language but you have to always remember to call super methods when you are doing your pre and post assertions otherwise your subclasses won't adhere to the contract. What Eiffel gives you are contracts as part of the language.
Disclosure: I haven't used Eiffel since about 1998 when my undergrad degree software engineering courses were taught using the language, so I'm not complete current on the language.
These posts express my own personal views, not those of my employer
http://www.gnu.org/licenses/gpl-faq.html#CanIUseGP LToolsForNF
If they don't allow using it (the environment, not the compiler) to develop commercial software, its license is not the GPL, unless I'm missing something.
Eiffel is kind of dated. Even its successor, Sather, didn't catch on, even though Sather has been out under the GPL since 1999. There are some great ideas in there, but the language was a bit too clunky. It's kind of like Ada and Modula in that respect; the concepts are sound but the syntax is too bulky to become popular.
On the other hand, all the languages listed here protect against buffer overflows without requiring an interpretive run-time system.
Please mod parent up! That is all.
I'm done with sigs. Sigs are lame.
I happed to take a course that taught among other things how to program in Eiffel, and the contract principle is in fact very nice. When you write a contract, you define exactly what you want want to pass to a feature.. err... function and exactly what you want to get from it. I know, every good programmer has to write down specification anyway, may be even in clever mathematical form. Still, contracting scheme helps to avoid lots of stupid errors, and when you are sure you're done, just turn off contract checking in the compiler. After some time, I started thinking in terms of contracts, and it would be great feature in next revision of C++. I'm writing this because there are many features that I do not like in eiffel, and in EiffelStudio (you can download free version for most of the platforms). In general, the language is very restrictive, and allows no freedom whatsoever - you can use classes, only classes and nothing but classes and you will use them exactly the way it's creators want you to, e.g. No break statements. Also it is slow - when developing applications - eiffel code is translated to C, then C code is compiled. So on average you'd get 80 Mbyte project for every 500K of code. And finally Eiffel has arcane Pascale-like syntax, it could've been much simpler. Adding insult to injury, EiffelStudio, the IDE if you ever try to program in eifffel(I know, RTFA), is very annoying, if you made a mistake in the code and attempted to save it, studio will make a pop up window informing you about it, if you try to look inside anther class while having an error inside the current one, the studio will abruptly return you to the line where you made a mistake, even if you need to switch to a different class to fix the error. It, also, doesn't have context menu, the right mouse button is used for other purposes, e.g. view single function from other viewer inside the studio in a debug mode (don't ask me why), or moving around the code - double right click on class declaration will move you to the class definition, this actually is really nice, except, why makers of eiffel never thought about middle mouse button?! Though, debugger is nice. I think Eiffel is 1984 of programming languages, and an attempt to popularize it would not help, anyhow free version of EiffelStudio has been around a while, and it is not like anyone would suddenly begin to develop many applications using it.
"It's kind of like Ada and Modula in that respect; the concepts are sound but the syntax is too bulky to become popular."
Unfortunately when a programmer tosses around the word "syntax". What they really mean is "Hey this isn't C/C++"! Even Python's whitespaces gets chewed up, and spat out. That's partially why Java has done as well as it has with it's "feels like" syntax.
The benefits of Design by Contract include the following:
Ah, and this has been demonstrated how? Programming language designers like to dream about how their features are going to lead to fewer bugs, lower costs, and all that, but there is almost no acceptable experimental data to support their claims.
Is this fully open source? I.e., do you get the entire sources to EiffelStudio and all the libraries, compiler, and runtime?
Or is this one of those pseudo-open source releases, in which a large body of code gets released under an open source license, but in order to compile and run it, you need proprietary tools from the same vendor that released the code?
Here is what I've heard last year from my algorithmic teacher. I'm not saying it is __the truth__, but anyway here is the little story.
In the early 90's (not sure of the precise date), Sun microsystem was planing to create an object oriented language. They looked around and found eiffel quite interesting. So they contacted the guy who created it and asked him something like "we would like to work with you. your language is interesting". And the guy said "no" (don't mind him, he is french). So Sun said "okay, we will write our own".
Okay kids, now go to bed.
As much as it was groundbreaking about 10-15 years ago, nowadays Eiffel is pretty much dead, same goes for Oberon (which was not even groundbreaking, sorry Nicolas Wirth, but I think it is the truth that a language is not groundbreaking if you just rehash the language = os concepts of the early smalltalks but not the geniality behind of having its minimalism, and only going oo the half way, and then nail the Pascal syntax on top of it. Anyway back to Eiffel, it really was groundbreaking by introducing design by contract, but it is a dead fish in the water nowadays, like so many languages before it and afterwards, which were declared as the next big thing when they came out. Maybe it one day will see a revival like Ruby did recently, but for now, forget it :-(
Dylan (invented by Apple for the "Newton") was open-sourced last year.
Well, the popular "Harlequin / Functional Objects"-Implementation in fact.
Comes with a nice IDE with object browser etc. and produces fast, _native_ code!
http://www.opendylan.org/
Have I missed any?
By the way, here are some useful links related to the newly-open-sourced EiffelStudio, and you can find additional Eiffel libraries and tools at EiffelZone.
Paid Q&A/Research
...how things change. for BM's earlier position on free software see The Ethics of Free Software . For a decent eiffel compiler (last time i tried, ISE's sucked hard. funny that, for a company made by the number one authority on software engineering), try SmallEiffel. and don't take me wrong, i think Object-oriented Software Construction is one of the great classics of computer science. but there is a gap between theory and practice.
- OSS? Check.
..., looks like the Eiffel bunch has me looking into their favourite PL with some quality time.
- Avantgarde Language known for neat concepts, hippness and good results? Check.
- Compiled rather than the bazillion interpreted PLs I've got allready (Python, Perl, PHP, etc...)? Check.
- No C/C++ suckage even though it's a compiled language? Check.
- Comes with neat OSS IDE now costing 0 as opposed to the 4900$ last week? Check.
- Zero fuss hassle free cross-plattform deving? Check.
- Zero fuss ultra hassle free cross-plattform GUI kit? Dunno... gotta find that out.
Mmmmh
We suffer more in our imagination than in reality. - Seneca
I've been using Eiffel - and EiffelStudio - a bit lately. Eiffel seems like a decent enough language, though it's most attractive for writing libraries etc, just where its less than fantastic interface with other languages makes it less useful. If I didn't feel some bizarre need to have portable code (what a silly idea!) I'd be interested in using it on the .NET CLR ... but that's not viable for me at present.
EiffelStudio is nowhere near as nice as Eiffel. The IDE is clunky and in some ways quite antiquated. A good gcc Eiffel backend (NOT intermediate-C based like SmartEiffel) or a standalone compiler combined with good integration into Eclipse, VC++, and so on would be much more interesting IMO. Add the ability to generate interface stubs for C, C++, and Java, and it'd actually start to look attractive.
Right now, though, Eiffel looks like the kind of language you use in isolated projects where you don't need to use too many outside componenents and don't expect to have others basing work on your code. Does that sort of project still even exist?
I mean, one could extend this to just about anything, though I'm curious as to how you would describe this technique in non-CS specific terms. Would you consider the relevant variables that the learning context be one that is less forgiving than the typical RL one? That it be more abstract? Would you consider obscurity itself a good thing as it avoids distraction by "mere" commercial applications or tool-specific hacks?
-Rustin
Data is the lever, rigor the fulcrum, brains the force that drives it all.
Of 6mb "hello world" executeables while using eiffel in university. Sigh
I'm not going to hold back on a secret here... I hate everything french for all the basic reasons most people hate the french which are all more or less deeply rooted in their insurmountable arrogance. I've been both to the heartland of frenchianity where I spent a couple of weeks in Paris and I have seen and forever turned my back on Quebec. La monde francophone, "The Frenchspeaking World" which the "Grande Nation" is so terribly proud of is shrinking while I am typing this. It's not that they're not painfully aware of this rapidly decreasing "mind share" and the "mind share threat" posed by les Anglais, we all know what kind of vile laws they have both in La France and Quebec to preserve their oh so precious culture. Let's not help them out by referencing their culture more than is absolutely necessary minimum. As far as the programming language is concerned. One would think that a clearly superior product could be called anything at all and it would succeed no matter what. This I strongly believe is not true because I think deep down most people feel as I do. What I've heard about Eiffel is very interesting which is why I am getting involved with it. However I do have a hard time fighting down the loathing I have for the french and it really hits me extra hard when I look at the box they have on the commercial Eiffelstudio page which clearly looks like "La Tour Eiffel", the Eiffel Tower. I have karma to burn, but if you're really thinking instead of giving in to the kneejerk reaction of perceived "hate speech" then by all means mod the parent up.
To the extreme. On might think that the common funtions -- sine, cosine, etc, could at least be functions in an OO language. But in Eiffel, they are methods of the class of things that knows how to do common functions -- sine, cosine, etc. And everybody who wants to use those functions gets this by inheriting from this class. Is that good?
No one notes it here, but besides the Eiffel Compiler (anyways, we have had a GPL eiffel compiler for about 10 years), the guys at Eiffel.com are releasing not just the compiler, but also one of the most complete IDEs you can find under a Free license.
It has a project editor, integrated debugger, including browsing the object structure in run time, a class browser, an integrated documentation generator, and you can write your designs in BON (a graphical notation, UML-style) and flip back and forth from diagrams to code seamlessly. You probably can compare it pretty well to Eclipse, but much lighter (it's written in Eiffel instead of Java).
Even if you are not planning to use Eiffel, I would love to see that GPL IDE being used for other languages...
thanks for the PDF warning, asshole.
Acutally Eiffelsoft has some great case studies from companies like HP that back up their claims.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
Is this a good time to plug my open source Eiffel project secom?
Secom is an object-oriented library of portable, reusable components for communicating over serial devices. With secom you can develop an application that will compile and execute on Posix and Windows, with little to no changes to the source code.
Check it out
Check out the documentation
Brian
In addition to integrating the design-by-contract paradigm into the language, Eiffel for .NET is also the only .NET language that supports multiple inheritance via compiler-generated interface implementation.
Tech, life, family, faith: Give me a visit
Are we sure that this is being released under the GPL? I don't see any mention of the GPL on the press release or the product page. According to the licensing page (http://www.eiffel.com/licensing/licensing.html) it is only free if you agree to release all software written using it under a free license. If you intend to develop any commercial software, you still have to buy the commercial version. That doesn't sounds at all like the GPL to me. GCC certainly doesn't have that restriction. Moreover the GPL doesn't allow adding additional restrictions to the license either, so I don't think he has any ground to say that you can only distribute it under the GPL if you only use it to write free software.
Not that I am opposed to the guy who wrote the software choosing whatever licensing model he sees fit, but let's not be misleading about this announcement, shall we?
If I don't put anything here, will anyone recognize me anymore?
More Java programmers need to be exposed to Eiffel. I constantly interview Java programmers that can't tell me why Gosling added interfaces to Java. I virtually always get the answer "because they allow multiple inheritance". Then I ask them, "why didn't Gosling just add multiple inheritance to the class hierarchy and be done with it?". They can't answer that question.
Gosling added interfaces to Java because they represent abstract data types (ADTs)! The classes are implementations of the ADT behavior and are known as concrete data types (CDTs). They are an approximation of the abstract data types. For example, you can't represent an infinite amount of integers in Java. You can only represent -2^32 to 2^32. You can't have a stack of infinite size either. You can only approximate the "infinite stack model" in Java since you have limited memory.
Why is everything in an interface public, static, and final? Because you can't instantiate it and it is a specification of behavior! Gosling doesn't like multiple inheritance in the class hierarchy because of diamond inheritance (which he discusses in the Java book) but he allows it in the interface hierarchy because you are specifying behavior and there is no code to conflict. How do you connect the class tree and the interface directed acyclic graph hierarchy? With the "implements" keyword, a keyword for specifying that an implementation fulfills and ADTs contract.
Even Java programmers need to read the Eiffel book. They can't even program in Java correctly.
So an OLDER one is better?
I prefer the depth of the userbase on Slashdot, the moderation system, the fact that it is frequented by more than just 16 year olds and of course its lovely green.
Laughing out loud!
The depth of the user base? Oh yes, the deep levels of trolls, flamebait posters, and GNAA members really add to the community here.
The moderation system? Abused by those same trolls and idiots; anyone with a dissenting view is modded off the page.
More than just 16 year olds? Ha, you've got me rolling on the floor now...
I'm with the grandparent. Digg rocks, slashdot is dead.
Tech, life, family, faith: Give me a visit
. Bonded Labour, early and forced marriage, forced labour, slavery by descent, trafficking, worst forms of child labour.
2. Bonded labour is debt bondage. It is used in South Asia, Africa, the Caribbean and Southeast Asia. An estimated 20 million people are held in bonded labour.
3. Full time work, dangerous workplaces, excessive working hours, subjection to psychological, verbal, and sexual abuse, obliged to work by circumstances or individuals, limited or no pay, work and life on the streets in bad conditions, and an inability to escape from the poverty cycle; no access to education. 246 million working children between the ages of 5 and 17
4. Trafficking is essentially smuggling people for the purposes of slavery. It's impossible to know, but an estimated 600,000 - 800,000 people are trafficked across borders each year, not counting internal trafficking.
5. Kshatriya, Vaishya, Shudra, and Harijan. Varnas consist of many communities called Jats. Jats themselves can break up into further communities. Marriage occurs within the Jat. Anyone who broke this rule was outcasted. But it has exceptions, such as when female populations fell low.
6. 90% of the population was peasants. There were free peasants, and indentured servants. The unpaid lived on the land without paying any money, but worked for the Lord, earning their stay. Farmers were given a plot of land. They had the right to form their own courts, called halimotes. They made bylaws that governed the villager's actoins. The court was overseen by a representative of the lord. The lord had immense power over the peasants. He had economic as well as political control. The feudal system is similar to the caste system in that there are specific, strict roles for the citizens. It has less levels than the caste does though.
7. There is a definite poor area of town, and the surrounding areas are slightly less poor as well. There are definitive areas of wealth, and definitive areas of poverty.
8. The wealth seems to be concentrated in the Northeast, and Southern inland states are among the poorest. New Hampshire is among the wealthiest states in the Union. This could possibly be from the amount of taxes we have as a state.
9. The data the census presents seems to say that poverty in the united states is centralized mostly in the southern United States. What's interesting is that Arizona, New Mexico, Texas, and Oklahoma have rather high poverty, but Utah, Colorado, and Kansas have almost no poverty.
10. Stratification is promoted through the caste, class, feudal system and slavery. These systems and ideals separate people into certain sections, and as such, they are inherently
Etiquette is etiquette. He kills his mother but he can't wear grey trousers.
Basicly, what you do is, you programm everything twice. Once in preconditions, invariants, and postconditions, and last in code.
* If you wish to earn a commercial benefit from your application and not release its source code, you must purchase the number of licenses you need for your development from Eiffel Software. After you purchase licenses, you are free to use and distribute your application the way you want.
* If you select the Open Source license, you must release your development under an Open Source license for the benefit of the community at large.
Source: http://www.eiffel.com/licensing/licensing.html
So, either the Eiffel folks don't understand the GPL, or there's a GPL'd runtime module that that has to be linked into your executable code.
Either way, this is more restrictive than, say, the licence for gcc.
Right. First you call your neighbor and tell him that you're coming over to smash his car, kill his dog, rape his wife and children and then rob him of anything you see fit taking and then finally to burn down his house and kill him and his family with a huge knife. Then you go into the garage and spend two hours looking for that bush knife you want to use on him... but to your surprise of the sudden there is this click noise and you drop everything you're holding in your hands because your neighbor is standing behind you with a shotgun in his hands and a grim look in his face.
Last night I downloaded and installed Eiffle Studio 5.7 and wrote my first Hello World program in Eiffle. After careful consideration, I have decided to concentrate on developing my expertise using this programming language. It is a losing proposition to base your expertise on a common programming language or commonplace technology. I think I've wasted my time, effort, and genuis on developing solutions only to see my work taken over by some less experienced and talented developers because the company "has the software" and doesn't feel they need my expertise. Frequently this has disasterous results and significantly impacts work efficiency but management clearly does not value technical expertise or experience.
You were going to drop this before and so was I but regarding the Statue of Liberty, that doesn't register emotionally with me even though I know of its french origins. I think Archtech, you're confusing past grandeur and exploits with the ingrained pettiness of the average french(wo)man I am talking about. Here's an anecdote to give you to think about.
I don't speak french. Un petit peux mais but that is all. Back when I was twenty me and a friend of mine would put on a backpack get on a train and go places. We were on our way to England and if you're travelling to England by rail you, the easiest way to go is the connection Calais - Dover. So we arrived at Paris Gare du Nord (something or rather) and had maybe twenty minutes left before our train left for Calais. Now the thing about this railway station is once you get off the subway you do have to find your way to the trains. Usually in Germany they have pictograms all over the place so you don't need to know a single word of German to find your way to basic facilities but oh no, not the french and back then I didn't know for certain what train meant in their language.
So we tried to ask people. I would go "Excuse me, do you speak English?" and they would all respond with "Non! Non! Non!, I would then ask "Sprechen Sie Deutsch?" and they would again go "Non! Non! Non!". Not knowing the word for train but remembering something like "Chemin der Fer" which sounded plausible to me I asked them in french, "Ou sont les chemin de fer?" and they would look stupidly at me and say something like "La bas! La bas!" (over there! over there!). I repeated this at least 15 times every time with almost exactly the same result and this was in a hot summer and I was sweating like an animal wearing a heavy backpack and we did not make that train that day. However the real kicker is, arriving at the street level I asked a woman again the same questions.. "Do you speak English", she: "NON!". I then asked her if she spoke German and she went "NON!" again, this time even louder. With a sigh I asked her one more time in french for the "Chemin de Fer" and then all of the sudden this woman DID SPEAK GERMAN. Even though she had an accent she needed to work on she was fluent in German! She told me that "Chemin de Fer means Railway Company but I need to ask for the Grand Lignes to get to the trains".
I'm not alone with this. It appears the french are universally hated. Don't ask me how I got there or on what business but a couple of years ago me and a colleague of mine stopped at a gas station on I80 somewhere in Illinois. We went into the "restaurant" and we were talking to each other in German. All of the sudden I see this rapid movement to my left and this huge trucker jumps out of his chair dropping that chair to the floor and approaches us with his fists clenched. He wasn't pretending most obviously he wasn't joking. "Don't tell me you're french!" he roared, "Don't tell me you're french!". I just looked at him and thought of the irony that now I was going to get the shit beat out of me for the french. Then I got a little angry myself over that and told him, "We're GERMAN! DEUTSCHE! GERMANS! Wir sind Deutsche, verstanden! GERMANS! GERMANS!". After that they made us sit at their table and I had the worst Spaghetti Bolognese you could imagine. While I was shoving that Dreck down into my system the truckers told me they had to go through the Quebec to get to Ontario which is why they really don't appreciate to see any froggies south of the border.
I could go on and on and maybe even tell you about M. Voisin, the man I had to work with in Montreal who didn't have his intestines under control and would fart in front of me and make jokes about "Les Boches!" (derogatory for German) the nekulturny paysan thinking I couldn't understand what he was saying but I guess I have made my point. I get around a LOT in the world I have to say and NOWHERE have I ever been more insulted and abused than in La France and Quebec. Really for the most part people reciprocate friendliness and are
"Case studies" aren't acceptable experimental data.
A Slashdot discussion on Eiffel. And it's intereting to hear people's views.
... well there are various opionions about that. But at least for some number of yrs.
...
Well I should be careful of what I say becuase there's a non-neglible possiblity that others in my company will find their way to this discussion.
We've been using Eiffel
Two of the programming powers-that-be seem to believe that this is the ONLY way to write an expert system. The ONLY, the UNIQUE, anything else is completely UNACCEPTABLE. You get the idea.
So I can claim that I've had a good deal of experience both in writing Eiffel. And watching how the language and the effort around it have operated within an organization.
Eiffel has made some progress within our organization, but that's at least in part becuase massive resources have been thrown at the effort. We've hired some significant portion of the better Eiffel programmers in the world (there aren't many).
I could go on with a lot of things. Let's take just one that people above have been discussing at considerable length.
Design by Contract.
This consists of three keywords: require, ensure and invariant. Require is the feature (routine/method) pre-condition and ensure the post-considition. Invariant (I think I used it once) takes an expression (or maybe body of expressions) and applies them every time there's been a state change in the object (object being the instantiated in-memory version of the class which, stricly speaking is just the source).
No one uses design by contract. And the simply answer is that it's immensely (impossibly) expensive in CPU cycles. Even with Moore's Law etc. And we do have the likes of dual Opteron boxes and Design by Contract is not even used there.
Design by Contract (IMO) might be used in some late stage of development for functional validation. But would almost certainly have to be turned off for the code released into production (again, for performance reasons).
It's a nice idea, but