Slashdot Mirror


SmartEiffel 1.0 Released

Per Wigren writes "Today SmartEiffel, the GNU Eiffel-compiler finally reached 1.0! Eiffel is a very underrated language in the free software community for some strange reason.. Hopefully this will help to gain some interest in this extremely powerful, fast, easy-to-read, easy-to-learn, almost self-debugging language!"

337 comments

  1. IN SOVIET RUSSIA by IN+SOVIET+RUSSIA · · Score: 0, Troll

    Eiffel is a functional language!

    1. Re:IN SOVIET RUSSIA by EggplantMan · · Score: 2
      .... almost self-debugging language!

      How can something be almost self-debugging? This stupid horseshit was obviously injected into the description to generate interest in something that is otherwise unremarkable.

      --

      ?-|||-----x<*))))><
    2. Re:IN SOVIET RUSSIA by Anonymous Coward · · Score: 0

      The writer simply had a 'nearly pregnant with meaning' moment...

  2. is there by mehfu · · Score: 5, Funny

    an implementatation of the towers of hanoi in eiffel? is it free (as in liberty?)

    1. Re:is there by geekd · · Score: 1

      you mean, (dum dum dunnnn), the eiffel towers?

    2. Re:is there by Anonymous Coward · · Score: 0

      That wasn't funny.

    3. Re:is there by Theatetus · · Score: 2, Funny

      Yes, but since Eiffel is French, it's called the Towers of Dien Bien Phu and bails out after 3 recursions.

      --
      All's true that is mistrusted
    4. Re:is there by buggered · · Score: 1

      It's pretty subtle I can't really tell if you like Linux or not. You should really try letting your feelings out.

    5. Re:is there by ravidew · · Score: 1

      now this is funnier...

    6. Re:is there by Anonymous Coward · · Score: 0

      No it's not. It didn't even make sense!

    7. Re:is there by cscx · · Score: 2

      France surrenders. Get it? No? You're hopeless.

    8. Re:is there by Anonymous Coward · · Score: 0

      Why must the first person always write such unwitty stupid stuff? Are you that starved for attention?!?

      Slashdot sucks because of posters like you.

    9. Re:is there by ravidew · · Score: 1

      Clearly you care enough about /. to sign up for a user account and use it. After all, you would never be too cowardly to use it (if you had it)...

      And don't take this personally either.

    10. Re:is there by Anonymous Coward · · Score: 0

      It's so tired.

      The french surrender and then we brave Americunts rescue their asses?

    11. Re:is there by Anonymous Coward · · Score: 0

      Yes, but is it easy enough for Jane Fonda and Joan Baez to knock out a few little things?

    12. Re:is there by Anonymous Coward · · Score: 0

      Too bad there's not a +6 Funny.

    13. Re:is there by jayed_99 · · Score: 2, Informative
      I do have to point out Camerone Day. It is *way* up on the list of legendary-battles-that-really-happened.

      Sure, it might be the French *Foreign* Legion. But there sure were some French guys there driving the train.

      Yes, the vast majority of WWII was not too pretty...however, Dien Bien Phu -- while a failure, was not a surrender. And that difference is incredibly important. Dien Bien Phu would be impressive by itself. But Camerone gives the French, and the French military, something that no one will ever be able to take away. And if you don't understand what I just said, then I will never be able to explain it to you.

      The day after Camerone Day, like the day after Veteran's Day, is a day that I will always manage to get off...because I'll be so hungover that I wouldn't be able to work.


      -- An Anglo-American that spent many, many years in the U.S. Army (with a large amount of time being shot at in Panama, Iraq, Bosnia and Somalia).

    14. Re:is there by plumby · · Score: 2

      Unlike the Americans, huh? Did they win the Vietnam war then?

    15. Re:is there by Shinobi · · Score: 1

      No they didn't. In fact, the US Army set up a base at Dien Bien Phu, the US commander reasoning that the Vietnamese couldn't get artillery onto the mountains surrounding it, just like the french did before him.... Different army, even more stupid, since it didn't bother to learn from previous events.

    16. Re:is there by Anonymous Coward · · Score: 0
      you mean, (dum dum dunnnn), the eiffel towers?

      uhmmm, congrats for getting the fricking point of the joke. Even the mods got it, I guesss that's why it's 5, Funny!

    17. Re:is there by Anonymous Coward · · Score: 0

      You need to learn some history and geography. US ground forces never went anywhere near Dien Bien Phu. You are probably thinking of Khe San, in which battle the US deliberately and successfully lured the NVA into a protracted battle of attrition.

    18. Re:is there by Anonymous Coward · · Score: 0
      I do have to point out Camerone Day [mts.net]. It is *way* up on the list of legendary-battles-that-really-happened.

      Sure, it might be the French *Foreign* Legion. But there sure were some French guys there driving the train.


      Don't forget to mention that Camerone occurred during France's unsuccessful attempt to take over Mexico.

    19. Re:is there by secondsun · · Score: 1

      There was no Vietnam war. It was an armed conflict between the US and the Communist influences in the area. And since the US policy was containment AND there was no new expansion into South Vietnam, you could say we succeeded (though not won).

      Of course that doesn't discount the fact there were still many idiot things done.

      Secondsun

      --
      There is nothing wrong with being gay. It's getting caught where the trouble lies.
    20. Re:is there by plumby · · Score: 2
      There was no Vietnam war. It was an armed conflict between the US and the Communist influences in the area.

      It may not have been declared a war by the US Government, but it was certainly a war as far as the Vietnamese were concerned, and the CIA consider it a war "His study shows that CIA analysts had a firm grasp of the situation in Vietnam and continually expressed doubts that heightened US military pressure alone could win the war."

      there was no new expansion into South Vietnam

      Huh? So who was streaming into Saigon (now Ho Chi Mihn City - named after the communist leader in the north - might give you a clue) as the US troops fled from their embassy? The entire country has been united under communuist rule since 1975. Or are you suggesting that there was no new expansion outside of Vietnam, such as in Cambodia, where the Vietnamese invaded in 1978 to fight the US-supported Khmer Rouge. (you might want to read "Heroes" by John Pilger for eye witness accounts of both events)

      And are you seriously claiming that the US achieved their objectives in Vietnam? They must really teach you some strange things at school over there.

    21. Re:is there by jayed_99 · · Score: 2

      I'll skip the obligatory "though I never respond to an AC comment"...

      The other two conflicts that I mentioned, WWII and Vietnam also result in the French having their asses handed to them. Let's not forget Algeria, either. If you take Napoleon out of the equation, there is a litany of stories that basically end in "...and the French got smacked down yet again."

      What I wanted to point out is that France can lay claim to one of the most stunning, impressive, damn near unbelievable examples of "dedication to duty" that the world has ever seen. It's up there with the Alamo...and as a native Texan, indoctrinated from birth, I don't say that lightly.

      Camerone is a shining example of dedication and a refusal to quit. So, the next time that you have a performance review...or the next time you need to convince your manager that you really *do* need a new server...remember Camerone Day! :)

  3. what's it good for? by brandonfpu · · Score: 5, Interesting

    as perl started out great for scripting stuff and has grown, java started out with the promise of write once, run anywhere, what is eiffel's main strength according to it's developers (any users out here?)

    1. Re:what's it good for? by _Spirit · · Score: 3, Interesting

      Forced OO, at least that's what I remember it by. It's good for teaching OO, as you *have* to do everything in an objectoriented manner.

      --

      beauty is only a light switch away

    2. Re:what's it good for? by kingkade · · Score: 1

      Heh, like Java. Well, almost. You have to box some primitives.

    3. Re:what's it good for? by edhall · · Score: 5, Informative

      I'd not call it is "forced" Object Orientation, but rather it is OO plus pre- and post-conditions in a methodology known as Design By Contract.

      -Ed
    4. Re:what's it good for? by J.+Random+Software · · Score: 4, Informative

      Funny you should mention that. Eiffel's the only language I've seen that actually gets boxing right. Any class can be "expanded" when declared or even used, and then it's transparently handled by value instead of by reference.

    5. Re:what's it good for? by Anonymous Coward · · Score: 0

      Just box primitives..? Damnit boy, I kick the living shit out of them natives!

    6. Re:what's it good for? by sporty · · Score: 2

      How about ruby? I don't know what comes first, but ruby, you can do stuipd things like 1.toOctalString( ) or the equiv :)

      --

      -
      ping -f 255.255.255.255 # if only

    7. Re:what's it good for? by kingkade · · Score: 2

      I'm pretty sure C# does this as well. In Java, if I remember correctly, they're boxed automatically or at least some SDK utility methods do it automatically. But they're immutable, which combined with no convenience in operator overloading becomes clumsy to work with, IMO.

    8. Re:what's it good for? by _Spirit · · Score: 2

      It's been a while, but that sounds familiar.

      --

      beauty is only a light switch away

    9. Re:what's it good for? by Jucius+Maximus · · Score: 2
      "Heh, like Java. Well, almost. You have to box some primitives."

      It is possible to write something in Java that should be OO but it's instead done all in one class. I've seen CS students that were first taught basic C and then Java become totally lost with this multiple files, multiple objects thing. They tried to write all these tree objects, nodes, linked lists, etc all into one class file with their main program. They just didn't get it.

      If it is true the Eiffel forces OO, then it would probably be a good tool for teaching such confused souls how they should take advantage of OO. Once you get it, it can be a time saver because you don't have to send pointers to the moon and back, and you don't have to deal with pointers to pointers to pointers to ... Of course I still become squeamish when I want to write int a[n];. If you were brought up on C, you know why ;-)

    10. Re:what's it good for? by edrugtrader · · Score: 2, Informative

      writing valid code.

      it has pre and post conditions BUILT IN to the system. so it isn't like a comment or an if statement in the function, you say, this function only accepts x if it is between y or z... or any number of boolean statements... if it fails, the system fails. it makes your code very solid.

      --
      MARIJUANA, SHROOMS, X: ONLINE?! - E
    11. Re:what's it good for? by antis0c · · Score: 2

      What's it good for? Choice.

      If we didn't have a choice in languages we'd all be programming in our respective processors assembly. :)

      Long Live mov!

      --

      ..There's a-dooin's a-transpirin'
    12. Re:what's it good for? by the_mystic_on_slack · · Score: 5, Informative

      Well, as a current student at the University of Notre Dame, Eiffel was used in our Data Structures course. We basically had two options, Eiffel or C++. Not a lot of people picked up on Eiffel simply because they were stubborn. But as a whole, the Eiffel coders had consistently better projects and overall success. It's purely O-O, so that takes some getting used to. The Design By Contract is an excellent tool for writing perfect code the first time, thus getting a larger systems to market faster. And the libraries that are available are excellent. The STL is simply not good enough relative to EiffelBase. Bertrand Meyer, founder of Eiffel Software, gave three distinguished lectures here this week, and another to our class, and he's very convincing when it comes to his methodologies. It's a great language for teaching O-O and Contracts. Additionally, the same code runs on multiple platforms, and EiffelStudio is available for free for Windows and Linux. EiffelVision also makes it possible to create GUI's that will compile on Windows and Unix too.

    13. Re:what's it good for? by g4dget · · Score: 5, Insightful

      One of the things people should learn about OOP is when not to use it. If you force them to, they'll end up using it inappropriately.

    14. Re:what's it good for? by Anonymous Coward · · Score: 0

      Neither Java nor C# really support boxing right now, but C# is supposed to do it correctly "soon" and Java is supposed to do it correctly in 1.5 (summer 2003 or so?).

    15. Re:what's it good for? by jerdenn · · Score: 2

      C# does having boxing support for its 'primitive' types...
      -jerdenn

    16. Re:what's it good for? by HiThere · · Score: 5, Informative

      What's it good for?

      It lets you ensure that the program you write does what you intend. (This is called Design by Contract. It works better than any alternative I've encountered.)

      It manages multiple inheritance and limited generics in a way that C++ can't even try to approach. (Ada can do it, but it's a lot more work.)

      And despite what has been said earlier, it isn't a memory hog during compilation. Not compared with the current competition. (Unless you are comparing it with C, of course.)

      It's got a built-in garbage collector. Many languages do now, but it was quite unusual at the time, and it's still one of only a few compilable languages (excepting gcj == java) that have a gc.

      It's got a good documentation system. Better than javadoc. (But the presentation isn't as nice unless you purchase the ISE development platform...which I don't recommend.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    17. Re:what's it good for? by Anonymous Coward · · Score: 1, Informative

      In addition to all the great OO design by contract features mentioned by everybody I would add this:

      An interface specification for a class can be trivially (and with smarteiffel or ISE tools automaticly) derived from the source. You won't have to go and learn JavaDoc or doxygen or anything. Take a look at http://smarteiffel.loria.fr/libraries/
      for an example of automaticly generated eiffel class interface docs.

      To me this is worth a lot. I find that when I write eiffel, I go more slowly than in C or perl (full OO and genericity make you want to think through your design more), but as others have said, long, complicated codes actually tend to work right or require only trivial fixes the first time. Not only that, but when they do, I have lovely documentation that describes them!

      The only major problem is the lack of available libraries, and this situation is improving. There is a POSIX wrapper now, which was a major missing piece of the puzzle in my opinion.

      Also, wrapping C libraries can be a useful exercise. OpenGL for example has bazillions of weird conditions that must be met for things to work right, my own little toy OpenGL wrapper formalizes some of these with preconditions and has already caught me a few times. (There is a more serious eiffel OpenGL wrapper out there but it seems to still be fermenting).

    18. Re:what's it good for? by IdleTime · · Score: 2

      Ehhh. Eiffel studio is free?

      Their webpage quotes the price as follows: Pricing for the Windows and Linux versions of EiffelStudio is US$ 4,799.00.

      I have a problem understanding how $4,799=Free. Please explain!

      --
      If you mod me down, I *will* introduce you to my sister!
    19. Re:what's it good for? by one9nine · · Score: 2


      Two Editions

      There is a free edition and an enterprise edition. I haven't downloaded it yet but it looks like the free edition gives you most of the features of the enterprise one.

    20. Re:what's it good for? by larry+bagina · · Score: 2, Funny
      I have a problem understanding how $4,799=Free. Please explain!

      gnutella, eDonkey2000, DirectConnect, Kazaa, your local warez BBS, etc. etc.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    21. Re:what's it good for? by larry+bagina · · Score: 2, Insightful
      if it fails, the system fails. it makes your code very solid

      So it's good if eiffel does it, but bad in Windows does it, right?

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    22. Re:what's it good for? by J.+Random+Software · · Score: 2

      Ruby seems to always box anything other than nil, false, true, and fixnums. In Eiffel and C++ (and C# within limits) you can choose whether to store user-defined types by reference or value; the cost rarely matters but sometimes it's crucial.

    23. Re:what's it good for? by J.+Random+Software · · Score: 2
      C# has structs (expanded classes) and can box them to pass as a reference to System.Object or an interface, but they're kind of brain-damaged (no default ctor) and you have to copy and paste any type you want to use both by reference and by value, since neither the class nor the struct can inherit from the other.

      Java makes you do it yourself (which a few convenience methods do), and other than simple string conversions, the common wrapper classes are useless--you have to choose some primitive type and unbox before you can even do math!

    24. Re:what's it good for? by joto · · Score: 2
      The number 1 reason to use Eiffel is DbC (Design By Contract). Best explained as assertions on steroids. Obviously inspired by use of formal methods in academia.

      Secondly, Eiffel is a reasonably clean OO language, with a mostly sane syntax, and it has GC. It is mostly the C++ model of OO (class-based, static typing, multiple inheritance is heavily used, focus on efficiency, etc...). Whether you prefer this, or something a little bit more mainstream, such as Ada is of course up to you, but DbC is a real winner.

    25. Re:what's it good for? by Anonymous Coward · · Score: 0

      Great link. This whole idea of contracts(pre-conditions) and how they relate to inheritance is something that I started to do think about when doing c++, but had no idea what Design by Contract was all about.

      I was thinking about how it would be nice if a derived classes method could be forced to call the base class's method before doing anything else. It looks like Eiffel solves this problem(I'm not positive though just by my cursory reading of that link and absolutely no knowledge of Eiffel)

      I don't know if it's possible because of my non-knowledge of Eiffel but is it possible to also turn off the pre-condition for a derived method?

    26. Re:what's it good for? by McDoobie · · Score: 1

      (Ada can do it, but it's a lot more work.)

      Ummm...Hello. It was Ada that practically invented generics back in 95. I've been using both Ada and Eiffel(and C++) for the last five years. In the case of Generics, Ada's is the best yet. Why? Because it doesnt dictate an OO paradigm in the design of the package specification. Ada generics are much more flexible in that I can use them in a strictly procedural way if I want to.
      Dont get me wrong, Eiffel generics are great too. And for some people they are in fact perfect. But they do have some deliberately defined restrictions(which is a good thing by the way.)

      Of course, I find C++ templates to be a poor replacement for either.

      McDoobie

    27. Re:what's it good for? by mentin · · Score: 2
      You can do this in C# too:

      1.ToString();
      "abc".Substring( 1, 2 );

      --
      MSDOS: 20+ years without remote hole in the default install
    28. Re:what's it good for? by Anonymous Coward · · Score: 0

      No, when you force them to, they'll learn when it's not such a good thing. It's a very good exercise.

    29. Re:what's it good for? by TrixX · · Score: 2

      Eiffel strength:
      I don't have debuggers installed in my computer and no need for them since I use it.

      Good enough for you?

    30. Re:what's it good for? by auntfloyd · · Score: 4, Informative

      and it's still one of only a few compilable languages (excepting gcj == java) that have a gc.

      There is nothing special about a "compilable language" (whatever that means) using GC. Lisp has been doing it for decades (and yes, most Lisp systems are native code compilers, such as CMUCL, Allegro, CormanLisp, SBCL, etc). Oberon-2 compilers use GC, including the open source OOC and Oberon System3 from ETH. Ada was designed such that GC could be implemented, but it rarely is. Many FP languages use GC, such as Haskell. Haskell compilers, such as GHC, NHC, and HBC all use GC.

      If you haven't gotten the point yet, there is nothing special about implementing languages using garbage collection, and furthermore, there was nothing innovative when Meyer decided to use it for Eiffel.

    31. Re:what's it good for? by auntfloyd · · Score: 2

      It was Ada that practically invented generics back in 95

      Ada has had generics a lot longer than since 1995. They were in Ada83, the first standardized version of the language. Ada didn't get "full" object-orientation until Ada95, perhaps that is what you confused it with. It is interesting to note that Ada started with generics and added objects later, while C++ started with objects and added generics later.

    32. Re:what's it good for? by scrytch · · Score: 2

      DBC: It has preconditions, postconditions, and class invariants. Am I missing anything astonishingly revolutionary here?

      It has multiple inheritance ... How about a meta-object protocol? Or multimethods at least?

      I do hear the FFI to C is supposed to be nice ... to the point of just importing the DLL and calling C functions like they were in eiffel. How's the C++ FFI?

      Is there anything in Eiffel that makes it just plain feel better to use? God knows the ISE platform turned me off to Eiffel within about 15 minutes of trying to use it...

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    33. Re:what's it good for? by Anonymous Coward · · Score: 0

      if i remember correctly, these conditions are the truly unique(?) feature. well written code should enclude things like ensure/require condition (which would probably be a macro in c) or checks for (in)variance of certain values during/after a loop.
      thus proof of correctness is little more than reading the source.

    34. Re:what's it good for? by the_mystic_on_slack · · Score: 1

      There is definitely a free version available, though the executables created using the free version are not to be distributed commercially. http://www.eiffel.com, and click on Downloads. Then you will understand free.

    35. Re:what's it good for? by Anonymous Coward · · Score: 0

      Yeah, like the conservative approach to sex education: if we never tell them about sex and pretend it doesn't exist, they won't figure it out. Right.

    36. Re:what's it good for? by HiThere · · Score: 2

      Sorry. I keep forgetting LISP. Your point is well taken, but the commercial lisps are vilely expensive, and the open ones haven't been useful enough for me to use them. (Not that they don't work, but they don't easily work for what I do. Also, I don't like macros, even Lisp macros. But it does have a nice inheritance structure.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    37. Re:what's it good for? by HiThere · · Score: 2

      If you were turned off within 15 minutes, then you didn't learn it. ISE has a really nice development environment. Unfortunately, it has some really foul copy protection, so it breaks whenever you upgrade your system. And the documentation specifies the type size in a way that made it totally unreadable until I went in and hand edited the CSS specs.

      I can't recommend ISE, despite the quality of their product. Other features make it quite undesireable.

      DBC: You're missing check, and a few minor things. And some really dicey choices.

      One problem with the exceptions is that they MUST be handled within the routine that detects them. Usually this is desireable, but occasionally it's impossible. If you detect them, you can handle them and then retry the routine. Nice. Except when you can't really handle them, because you can't propagate an exception, only an error. I've occasionally been reduced to dividing by zero in order to get the error to the routine that could handle it.

      The FFI is nice, but it's not as nice as that in Ada or PL/1. It's more like the one in Python.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  4. Nice language by _Spirit · · Score: 5, Interesting

    I learned OO programming in Eiffel. It's nice and structured. Never made anything useful with it though, compiling was cumbersome (Eiffel > C > binary) and it was impossible to do any GUI stuff with the tools I had back then (95 or so).

    --

    beauty is only a light switch away

    1. Re:Nice language by Anonymous Coward · · Score: 0

      Damn RIT students!

    2. Re:Nice language by Per+Wigren · · Score: 2

      There are Eiffelbindings to at least GTK+, wxWindows and Fox widgetsets.. There are also bindings for OpenGL, SDL, Xlib and more if you want to do other kinds of graphics-programming...

      --
      My other account has a 3-digit UID.
    3. Re:Nice language by Admiral+Akbar · · Score: 1

      I learned OO programming in Eiffel also. It's nice and structured. Made lots of useful stuff though, compiling isn't cumbersome at all (Eiffel > bytecode) and it is extremely possible to do multi-platform GUI stuff now (EiffelVision 2) of which the EiffelStudio IDE is made with, here

      --
      -- You see what happens when you have fun with a stranger in the Alps?
    4. Re:Nice language by Aerog · · Score: 2

      Are you sure you weren't just using EBench for a win32 environment? Talk about the motherlode of all crappy programs. I picked up EStudio and NetBSD in less time than it took to make EBench work. Which leads into the obvious comment, EStudio is a fantastic program for Eiffel. So much more intuitive than EBench.

      --

      - Relativistic? That's barely Newtonian!
    5. Re:Nice language by _Spirit · · Score: 2

      When I learned this we only had a compiler that worked on solaris. We didn't have a fancy IDE or GUI toolkit. I don't remember what compiler we used but the tools we had were an eiffel compiler vi and gcc. Not really intuitive if you've never seen c code before ;-) (I did mention this was in 1995 or so, did I ?) I think with tools such as the one in this article it would be better suited for classes such as the one I took then. We were supposed to learn Eiffel and OO programming, not fiddling around with c makefiles, which is what we ended up doing. Ofcourse when we started in c++ after that, the fiddling we did seemed trivial.

      --

      beauty is only a light switch away

    6. Re:Nice language by The_K4 · · Score: 1

      I learned eiffel at RIT. It sucked, but that was more because they made it harder then was really necessary. Ok, we're going to GIVE you AMLOST a whole program (with NO documentation) it's a combination of Eiffel and C++ code, and there's no way you know enough to understand the graphics parts, or the parts that interact with the other language, but HAVE FUN! It's not a bad language, it just needs to be used right......RIT didn't do that. So now they use Java.

  5. What is it? by seagar · · Score: 1

    Maybe I am the only one here..and being that I haven't done any programming in a while might be the cause of this. But i have never heard of Eiffel, and I would honestly like to know a bit more about it...could any /. ers who've used it give me some input?

    Or I could just go with the flow "this sucks! use C!"

    --

    home of the original cupholder
    1. Re:What is it? by Johan+Veenstra · · Score: 4, Informative

      Then this link is for you:

      http://archive.eiffel.com/eiffel/nutshell.html

    2. Re:What is it? by SlowMovingTarget · · Score: 4, Informative

      Eiffel is an object-oriented programming language designed to be replete with O-O-ness (no, really). For example, their are no primitives in Eiffel, everything is an object. Eiffel also has a singly-rooted hierarchy and garbage collection (like Java) and parameterized classes like C++.

      Unlike Java, Eiffel syntax was designed to also act as a specification language of sorts, including syntactic support for contract specification.

      Bertrand Meyer's book Object-Oriented Software Construction explains problems in modern software development, examines how object-orientation probably could solve them, then designs such a language. This language turns out to be Eiffel (sorry for the spoiler if you intend to read this > 1000 page book).

      One of the points Meyer demonstrates is how a syntax to describe groups (classes) of solutions gets fleshed out into actual software that may execute. Eiffel, being that syntax, among other things, was intended to make you think in terms of types of objects sending messages to each other to get work done.

      That said, I use Java. Why? Apache's Jakarta project.



      Regards,

      M. Murphree
    3. Re:What is it? by cbv · · Score: 1
      Eiffel, being that syntax, among other things, was intended to make you think in terms of types of objects sending messages to each other to get work done.

      Sounds exactly like ObjC to me ;-)

    4. Re:What is it? by larry+bagina · · Score: 1

      or smalltalk

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    5. Re:What is it? by huberj · · Score: 1

      ...And smalltalk...and Ruby...

    6. Re:What is it? by joto · · Score: 2

      It's exactly the opposite in fact! ObjC is weakly typed, Eiffel is strongly typed. And the added safety of DbC makes it even more so...

  6. Re:Eiffel 1.0 by Anonymous Coward · · Score: 0

    God, don't you feel dirty after saying something so sheeplike? Is sheeplike a word, people? Because I think it should be.

    And so on...

  7. This is news to me. by ThogScully · · Score: 3, Insightful

    What's the amazing thing about this code and what are its faults? I can't find much info on their website. Some sample code to look at would be really nice just to get a feel for it. Is there a feature list somewhere? A comparison to C/C++/Java?
    -N

    --
    I've nothing to say here...
    1. Re:This is news to me. by Anonymous Coward · · Score: 0

      The fact is, it's not really amazing. You're just experiencing the blind enthusiasm of someone who has gone so far in to the clique that they lose all objectivity.

    2. Re:This is news to me. by g4dget · · Score: 3, Informative
      As a language, SmartEiffel is similar to Java or C#, but it has language support for genericity, operator overloading, multiple inheritance, lexical closures, expanded types, and pre/post-conditions. Eiffel's syntax is more similar to Pascal (probably the most annoying part of Eiffel's syntax is that you cannot declare variables at the point of first use).

      What SmartEiffel lacks is good support for dynamic loading and reflection. Those are crucial features for many real-world applications these days, and given SmartEiffel's compilation strategy, they'll be very difficult to add.

      SmartEiffel's performance was disappointing last time I benchmarked it--Sun Java beat it handily on equivalent problems. In principle, given its compilation strategy and static semantics, SmartEiffel should be able to yield very high performance code.

    3. Re:This is news to me. by Aaron+Denney · · Score: 1
      The biggest fault in it is a hole in the typesystem you can drive a bus through. They try to patch it up with global dataflow analysis, but that hack only half works, and makes seperate compilation a PITA.

      (basically, arguments to functions are covariantly typed, when they should be contravariantly typed. This means that the arguments of a method in a subclass may be further specialized than the arguments of the method overridden in the superclass. This means that at runtime it can throw error. Instead the arguments a subclass method can take should only be allowed to be generalized.)

      Sather is very similar to Eiffel, and gets this right. But there is only one compiler (though a couple of variants), and it hasn't been updated in a while.

      http://www.cs.waikato.ac.nz/sather/
      http://www.gnu.org/software/sather/
      http://www.icsi.berkeley.edu/~sather/

    4. Re:This is news to me. by SnowZero · · Score: 1

      Or use OCAML (if you want objects) or some other ML variant if you're not an OOP fanatic (Yes I know OOP is cool, but when you have polymorphism and a sane module system there aren't too many remaining benefits)

    5. Re:This is news to me. by Aaron+Denney · · Score: 1

      Yeah, O'caml is great, apart from the awful syntax. Yes, I know about the revised syntax via ocamlp4, but it is not yet standard. And as powerful as the module system is, something like Haskell's typeclasses might be easier to use...

      And I really wish more languages would let one define superinterfaces, like Sather.

  8. Holy cow, it's piggy flying time by Johan+Veenstra · · Score: 3, Interesting

    Eifel is simply the best language I ever saw on paper, and I looked at quite a few languages for my study.

    I never imagined I could ever download a free compiler to actually compile the programs I jotted down during exams.

    1. Re:Holy cow, it's piggy flying time by cbv · · Score: 1
      Eifel is simply the best language I ever saw on paper...

      Exactly ... on paper...
      I used it while at university and back then (92/94) it sucked raw eggs through a straw and it probably hasn't changed much. It's nice to teach the concept of OOP to "newcomers" - but it's absolutely useless for doing any 'real life' projects with it. Heck, a simply "Hello World" in Eiffel turned out to be a 500K binary...

    2. Re:Holy cow, it's piggy flying time by berenddeboer · · Score: 3, Interesting

      You probably are not interested in an answer, but anyway: with SmartEiffel and boost mode, your hello world is probaby around 4-10KB or so. Quite comparable to C.

      ISE Eiffel, a commercial implementation, if you compile hello world in melted code, the binary might be MB's. You can read about the advantages of melted mode on ISEs website. But if you freeze it, it's 160KB.

      Read this post:

      http://groups.google.com/groups?dq=&hl=en&lr=&ie =U TF-8&selm=3DDF4E65.6933E52B%40ifrance.com

      --
      If I had a sig, I would put it here.
    3. Re:Holy cow, it's piggy flying time by cbv · · Score: 1

      It is. However, the (in my opinion, no doubt) quite cumbersome way of accessing functions/methods in libs - I vaguely remember having to specify a full path - the long compilation time and hugh (compared to C, Assembler or anything else for that matter) made Eiffel not worth the bother, for me personally.

      Eiffel IS a good way to teach the concepts of OOP, no doubt, but it was (is? dunno) not an effective programming language when it comes to real life.

      Around 94/95 (can't remember) when I came in contact with Objective-C I switched - and never looked back.

    4. Re:Holy cow, it's piggy flying time by berenddeboer · · Score: 1

      Well, that's where melted mode comes into play. With ISE Eiffel, a single line change takes almost no time to compile. Even for large program, i.e. the 1000 classes range.

      The long compilation is only the initial setup, i.e. preparing the melted mode. You can use precompiled libraries nowadays with ISE, so even that is no longer true.

      --
      If I had a sig, I would put it here.
    5. Re:Holy cow, it's piggy flying time by cbv · · Score: 1

      I realise that I'm biased here, based on experience made about 10 years ago, when Eiffel (though already about 7 years old back then) was still in it's infancy. Heck, we got new updated compilers nearly on a weekly basis...

      Yet, old habits die hard, as They say and frankly, personally, I don't see any reason to switch back. I do (and did) however recommend to take a look at Eiffel when asked about OOP as it does provide a relatively easy entry point to OO programming.

    6. Re:Holy cow, it's piggy flying time by msfodder · · Score: 1
      ""Hello World" in Eiffel turned out to be a 500K binary."...
      Isn't that true with all of the bloated OO languages tho?
      --
      ..Free Live Free...
  9. absolutely nothin' by Anonymous Coward · · Score: 0

    PERL, what-is-it good-for?

    Absolutely-nu-thin'

    Ba ba-du-da

    *chorus* Say it again... *chorus*

    1. Re:absolutely nothin' by jejones · · Score: 5, Funny

      You forgot the "HUH...Good God, y'all!"

  10. It's just not Perl by Shamanin · · Score: 4, Funny

    "easy-to-read, easy-to-learn" ... and you think people who prefer perl obviscated code would really buy into something with these sorts of (negative) attributes?

    --
    come on fhqwhgads
    1. Re:It's just not Perl by Dom2 · · Score: 2, Insightful
      Funnily enough, but the reason that I prefer perl over most mainstream languages (barring Python) is the fact that it's by far easier to read and understand what the code is doing. Larry Wall's background in linguistics has payed off handsomely.

      Of course, there's a lot of bad perl out there. There's a lot of bad C, C++, and Java too. Yes, yes, I know you don't write any, but that doesn't mean that it's not there.

      -Dom

  11. Why? by Anonymous Coward · · Score: 2, Insightful

    Maybe Eiffel's underratedness has something to do with it following the functional programming paradigm? Most programmers are still used to more conventional coding. I'm not saying this is a rational argument against the language itself, but when you want to get things done, you use the tools you know best.

    1. Re:Why? by J.+Random+Software · · Score: 2

      Eiffel is a typically imperative OO language. It's not built on avoiding side effects, higher-order functions, lazy evaluation, or currying, which are hallmarks of modern functional languages.

  12. Huh? by SuperDuG · · Score: 1, Interesting

    Why is everyone gung ho on creating new programming languages. What the hell is point of all these languages. I'm still learning cobol in college right now. I'm off to Java next, and will barely learn C++. So it's no wonder no one uses these "great" languages, no one teaches them. Let's work on the languages we have instead of making new ones. This is like gnome and kde, and for everyone who's gung ho about replying "these are what gives us choice ", free is free people the only thing different between kde and gnome is the developers, they're all just trying to be another mac os/windows clone.

    --
    Ignore the "p2p is theft" trolls, they're just uninformed
    1. Re:Huh? by thebatlab · · Score: 2, Insightful

      The point of all these languages is, yes, to give choice to programmers on what to use. Eiffel doesn't do low level so you wouldn't want to code up a device driver in it. C doesn't do high level so mapping a design to C *could* be more work than mapping it to Eiffel. This is like asking why new cars? Lets just improve on the old ones we have. You want to be driving in a model T? A 300 ZX is a lot better :) I know the analogy isn't perfect but it's a starting point ;)

    2. Re:Huh? by Anonymous Coward · · Score: 1, Insightful

      These languages are actually very useful in teaching. Everybody who has the slightest interest in programming has at some point looked into C/C++. But an unguided journey into this world can ruin the ability to create maintainable high quality software. That's why it is a good idea to pull students away from the mess that is C/C++ and have them rethink their way of programming in modern languages. Later on they will code C/C++ again, but hopefully the coding style which they learned with cleaner languages will stick.

    3. Re:Huh? by Nutello · · Score: 1

      Huh?!?!? For the record, the Eiffel language is almost 20 years old.

    4. Re:Huh? by buggered · · Score: 1

      Eiffel is not a new language, it pre-dates C++. I think it came out in early to mid 80's. Eiffel is a very elegant, simple and well thought out language. I've found I can write non-trivial programs in Eiffel and they work correctly the first time, which I have NEVER been able to do in C++.

    5. Re:Huh? by Jerf · · Score: 5, Insightful

      Real people don't depend on "teachers" to learn.

      I was going to say "Real hackers don't depend on teachers to learn languages", but that's just a very isolated special case of the general principle.

      If you honestly don't know anybody using something other then COBOL, Java, or a little C++, you are horribly, horribly disconnected from several exciting communities dedicated to increasing the power of the programmer. If you don't know the why multiple languages are useful, that is a grevious flaw in your education that you need to take immediate steps to rectify, and nobody's going to do it for you but you. Moreover, I don't mean to be offensive but you're so far behind you won't even understand the explanation of why you're behind; you need to be in the position of having used a couple of languages before you can understand comparisions!

      Language differences are nothing like the difference between kde and gnome; it's more like the difference between GUI and CLI.

      Don't wait for someone to teach you; you can't afford to while you're competing with people like me who know at least 10 languages well and can pick up a new one in a week (and I'm nothing special). I strongly suggest you rectify your ignorance.

      'Course, if you don't, and you want to keep your attitude, no skin off my nose. That much less competition for me.

      (*chuckle* I wish I could see you in an interview situation where someone asks about the differences between languages and you gave your post as the answer. They might not even bother to finish the interview.)

      The whole point of this is you shouldn't be waiting for somebody else to look around for you, but here's some hints anyhow. I strongly suggest you spend a few months each on Perl, Python, a functional language like Haskell, and several APIs of some sort, like wxWindows or XML parsing. That's more educational then you might even think directly, since you'll get introduced to event-driven programming (though you may have seen it in Java), handling complicated data structures in general, and a lot of other useful things, not just "XML processing" and "GUI development". All of these things have great, free tutorials online.

    6. Re:Huh? by Waffle+Iron · · Score: 2
      What the hell is point of all these languages. I'm still learning cobol in college right now.

      People create new languages in the hope that a lucky few won't be damned to program in COBOL all of their lives.

    7. Re:Huh? by MeanGene · · Score: 2
      People create new languages in the hope that a lucky few won't be damned to program in COBOL all of their lives.

      No - people create new languages so that they can get new grants to do something that has already been done before... :-)

    8. Re:Huh? by Anonymous Coward · · Score: 0

      Do you always come across as an asshole?

    9. Re:Huh? by Anonymous Coward · · Score: 0

      Well Jerf, you go ahead and get yourself involved in a thousand languages. It'll do you good.

      Me, I'll learn two or three for now. Ones that are popular and also contain many structural similarities with most other languages out there. Let's say C++, assembly and ML.

      Then, with several years of experience under my belt with these, I can go into a shop that uses one or all of the above, and get the job because I have the experience while you, when asked "how much experience do you have with assembly" get to respond with "well, a few months of practical exp. but I know all about these other great, easy to use languages, that no one else in your shop knows."

      Yeah. You get the door. I get the job.

      But you still know all those really keen languages. A great way to fill up all that resume paper.

    10. Re:Huh? by Hornsby · · Score: 3, Interesting

      I strongly suggest you spend a few months each on Perl, Python, a functional language like Haskell, and several APIs of some sort, like wxWindows or XML parsing.

      I agree totally. I just wanted to chime in and say that while you're out checking out new languages, give Ruby a try. It's a beautful language that falls in the same family as Perl and Python but has it's own charm all the same. I use it for all of my development in an environmental lab, and it's served me quite well.

      If you want to explore functional programming, you also may want to check out SML.
      There are several free implementations available, and it's easy to learn. It's very fast and quite powerful for a variety of tasks. Last but not least, check out ANSI Lisp or at least Scheme. Everybody serious programmer should know at least one dialect of Lisp because it's the original hackers language.

      I believe ESR did a rant somewhere on how to become a real programmer or something along those lines. Google could probably dig it up rather quickly. It's worth a read as he outlines languages to learn to explore the various development methodologies(functional, OOP, procedural, etc).

      --
      A musician without the RIAA, is like a fish without a bicycle.
    11. Re:Huh? by Anonymous Coward · · Score: 0

      well, AC, you go ahead and learn only three languages. you'll get real good at them.

      Then, with several years of experience under your belt, you'll go into a shop that happens to use something outside than your magic trinity (like perl or java. I know it's rare, but it happens) and even if I don't know language X, I will get the job because I can demonstrate flexibility in language choice, while you, when asked ``how long will it take you to pick up language X', get to respond, ``well, I don't know, I haven't learned a new language in years.''

      yeah. you get the door and a hearty laugh on your way out.

      but you have all that 'experience', a testament to your inflexibility.

      in my last interview which landed me my current job, they asked me to solve problems in a language chosen specifically because I did not know it at the time (postscript) to see how I would respond. C++ (and apparently cobol [shudder]) programmers are being churned out of every community college in fifty states, but flexible minds are far more rare.

    12. Re:Huh? by Anonymous Coward · · Score: 0

      no, but he does like to cum across an asshole!

    13. Re:Huh? by Bullet-Dodger · · Score: 1
      I believe ESR did a rant somewhere on how to become a real programmer or something along those lines. Google could probably dig it up rather quickly. It's worth a read as he outlines languages to learn to explore the various development methodologies(functional, OOP, procedural, etc).

      That would be this. Excellent guide to becoming a hacker (hacker, as he explains it, in the sense of: "hackers build things, crackers break them."). Among other things , he does talk about the importance of learning multiple languages:

      But be aware that you won't reach the skill level of a hacker or even merely a programmer if you only know one or two languages -- you need to learn how to think about programming problems in a general way, independent of any one language. To be a real hacker, you need to get to the point where you can learn a new language in days by relating what's in the manual to what you already know. This means you should learn several very different languages.
      And specifically recommends learning Python, Java, C/C++, Perl, and LISP. (His comments about the enlightenment you get when you finally understand LISP are right on).
    14. Re:Huh? by 0x0d0a · · Score: 2

      If you're trying to churn out useful software and not do research and want to learn ML, you may prefer Objective Caml to SML.

      I really *hate* type inference, as it makes debugging a pain, and SML/NJ, the SML I learned on, has absolutely atrocious error reporting.

      On the up side, it's quite an eye opener if you've never used a language with really strong typing.

    15. Re:Huh? by Anonymous Coward · · Score: 0

      You, my friend, are living in a dream world.

    16. Re:Huh? by joto · · Score: 2
      Why is everyone gung ho on creating new programming languages.

      Because it is fun, mostly. But also because different languages shape our thoughts in different ways, and can be used for different purposes.

      What the hell is point of all these languages.

      Solving problems. See above.

      I'm still learning cobol in college right now. I'm off to Java next, and will barely learn C++.

      Good for you! You have already decided to stop learning once you are out of college. I applaud your decision, please remember to tell any future employer this before he hires you, so he can save your salary!

      This is like gnome and kde, and for everyone who's gung ho about replying "these are what gives us choice ", free is free people the only thing different between kde and gnome is the developers, they're all just trying to be another mac os/windows clone.

      No, they don't. Wine is trying to be a windows clone. While most of GTK and Qt is obviously inspired by other WIMP-environments, that doesn't mean that they are trying to be windows clones.

    17. Re:Huh? by ClumzyKid · · Score: 1

      "Why is everyone gung ho on creating new programming languages. What the hell is point of all these languages... This is like gnome and kde,... they're all just trying to be another mac os/windows clone."

      I was sitting here for a minute thinking what to respond to this... first finish your degree in college then come back here and read your post again... you're gonna realise how your notion is way off and gonna kick your behind for it... it only means that you don't understand the pure essence computer science let alone all sciences... that's ok though... when you do your final thesis/project... you will :D

      --
      Great ideas happen at 4am. Bad career moves happen at 4pm...
    18. Re:Huh? by n1ywb · · Score: 1

      Shit yeah! Learning new languages is fun and also helps you to better understand old languages. REAL programmers love learning new languages.

      Last year I took a programming languages class where we covered TCL and ML. Honestly they were pretty dumb and I doubt if I'll ever use either one for anything, but it did make me appreciate Perl and C that much more. We also covered Python, which actually seems usefull and I've been fiddling around with it since.

      Everyone in the class had to pick a different language for their final project. Obviously Perl, Java, C, and all the other big guns got snatched up first. I decided to choose Forth. What a cool language! It's like nothing else I've ever programmed in. I was really glad I chose something so different and unusual.

      --
      -73, de n1ywb
      www.n1ywb.com
  13. Re:Who needs all these languages? by zapfie · · Score: 5, Insightful

    Any computer program can be expressed in C... why bother with crap...

    Yeah, right.. while we're going down that slope at all, any computer program can be expressed as machine code, so why bother with assembly, C, VB, or any of that? Why bother with Photoshop when you can just do stuff pixel by pixel? I think you get the point..

    --
    slashdot!=valid HTML
  14. helloworld in Eiffel by caternater · · Score: 5, Interesting
    For those, like me, wondering what Eiffel looked like, here is helloworld:
    class HELLO_WORLD


    creation
    make
    feature
    make is
    local
    io:BASIC_IO
    do
    !!io
    io.put_string("%N Hello World!!!!")
    end --make
    end -- class HELLO_WORLD
    This was taken from http://www2.latech.edu/~acm/helloworld/eiffel.html

    Also, this interesting tidbit from the comp.lang.eiffel FAQ:

    QEIF: What is Eiffel?

    Eiffel is an advanced object-oriented programming language that emphasizes the design and construction of high-quality and reusable software.

    Eiffel is not a superset or extension of any other language. Eiffel strongly encourages OO programming and does not allow dangerous practices from previous generation languages although it does interface to other languages such as C and C++. Eiffel supports the concept of "Design by Contract" to improve software correctness.

    Beyond the language aspect Eiffel may be viewed as a method of software construction. Eiffel is an excellent vehicle for software education, including for a first programming course.
    (http://omicron.felk.cvut.cz/FAQ/articles/a511.htm l)
    1. Re:helloworld in Eiffel by Anonymous Coward · · Score: 0

      Hi there.

      All of this is relevant information about Eiffel, but while you're at it, why don't you just post every fucking article from the newsgroup. This, fellow slashfags, is a shining example of Karma whoring at its finest. That is all. Thank you for your time.

    2. Re:helloworld in Eiffel by caternater · · Score: 1
      Grrr.... pre tags don't work.

      The code was properly indented, so check out the url for a prettier look at the code

      http://www2.latech.edu/~acm/helloworld/eiffel.html
    3. Re:helloworld in Eiffel by boy_of_the_hash · · Score: 3, Interesting
      Based on intrest in Eiffel, wouldn't this be a better example?
      class GOODBYE_WORLD

      creation
      make
      feature
      make is
      local
      io:BASIC_IO
      do
      !!io
      io.put_string("% N Goodbye World!!!!")
      end --make
      end -- class GOODBYE_WORLD
    4. Re:helloworld in Eiffel by zapfie · · Score: 1

      Ah, that makes a little more sense. :)

      --
      slashdot!=valid HTML
    5. Re:helloworld in Eiffel by g4dget · · Score: 2
      Eiffel is an advanced object-oriented programming language that emphasizes the design and construction of high-quality and reusable software. [...] Eiffel supports the concept of "Design by Contract" to improve software correctness.

      Of course, those are merely claims. Sure, Eiffel is almost certainly better than C/C++ in terms of reuse and correctness, but then, what isn't? But is it better than Java, C#, or O'CAML? Or Python, for that matter? Where is the experimental evidence to support those claims?

      Eiffel strongly encourages OO programming and does not allow dangerous practices from previous generation languages although it does interface to other languages such as C and C++.

      By now, Eiffel itself is, in a sense, a "previous generation language". The baseline these days isn't C or C++, it's languages like Java, C#, and O'CAML.

    6. Re:helloworld in Eiffel by ThogScully · · Score: 2, Insightful

      This is the first I've ever seen Eiffel code. Maybe it's just me, but I thought this review said it's supposed to be easy to read? I can't identify what half of those lines of code are for - I can identify the two lines that actually outpue Hello World, but even that would have been hard in a different example.

      What's the point of this language again? I thought it was to combine the power of C/C++ with the ease of VB or something.
      -N

      --
      I've nothing to say here...
    7. Re:helloworld in Eiffel by ravidew · · Score: 1

      2nd that. Show me it's educational value and I'll show you why C++ is taught in schools.

    8. Re:helloworld in Eiffel by d2them · · Score: 1
      or simply:

      class HELLO_WORLD
      create
      make
      feature --creation
      make is
      -- print out hello world
      do
      print("Hello, World!%N")
      end -- make
      end -- class HELLO_WORLD

    9. Re:helloworld in Eiffel by eyepeepackets · · Score: 4, Funny


      #!/usr/bin/wish;puts stdout "Hello World!"

      You can now rename your example to HELLO BLOAT!

      --
      Everything in the Universe sucks: It's the law!
    10. Re:helloworld in Eiffel by Anonymous Coward · · Score: 1, Informative

      Well, since all Eiffel code involves classes, you need a class creation procedure. Comments are literally indicated with a --

      Here goess

      class ROOT_CLASS (specifying the name of the class)

      inherit ANY -- (Not required, using an example of it's multiple inheritence feature which --Java does not have)

      creation make -- (the creation procedure for this routine, equivalent to C++ *p = new (class))

      feature -- (functions and attributes class has)

      make is -- function name
      local statement : STRING -- local attributes
      do
      create statement.make(0)
      statement := "Hello World!%N"
      io.put_string(statement)
      end

      end

    11. Re:helloworld in Eiffel by HiThere · · Score: 3, Interesting

      That's unfair. For one thing, Eiffel is a compiled language. For another, those don't all need to be on separate lines. And for the third, hello world doesn't represent the operations of any resonable program.

      That said, Eiffel does suffer from name_length_inflation due to it's prohibition against overloading.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    12. Re:helloworld in Eiffel by evilviper · · Score: 2

      echo Hello World
      HA! Take that!

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    13. Re:helloworld in Eiffel by Per+Wigren · · Score: 3, Interesting

      You can't judge a language from "hello world", that is just plain stupid..

      Eiffel is designed to write large bugfree object-oriented applications, not short "one-timer" scripts...

      --
      My other account has a 3-digit UID.
    14. Re:helloworld in Eiffel by drooling-dog · · Score: 1

      Well, thanks for the example. Eiffel's superiority to C++ and Java should now be evident even to the complete imbicile...

    15. Re:helloworld in Eiffel by Anonymous Coward · · Score: 1, Informative

      Forth beats all of you:

      'Hello World' .

    16. Re:helloworld in Eiffel by Al+Al+Cool+J · · Score: 2, Insightful
      That's what you think. I just created a new language called HelloWorld in which every program outputs "Hello World" by default, unless the first line is the special SuppressHelloWorld command. So now you can do a Hello World program in 0 bytes!

      Top that!

    17. Re:helloworld in Eiffel by Anonymous Coward · · Score: 0

      Blechhh... No eiffel here..next.

    18. Re:helloworld in Eiffel by TrixX · · Score: 2

      That's unnecessary. This compiles in my SmartEiffel:

      class HELLO
      creation make
      feature make is do
      print("Hello World!%N")
      end -- make
      end -- class HELLO

      Anyway, Eiffel has morea dvantage for bigger systems. Code reduction in the large beats by far the verboseness in the small of the language.

      I do all my "large programming" in Eiffel (and for small things, i.e. less tahn 50 or 100 lines i use C, Pascal or Python, depending on the job) (or Bash, for very short things).

      It's not "the ultimte language for solving everything", But it's great to managing complexity. (and getting it right)

    19. Re:helloworld in Eiffel by jerdenn · · Score: 2

      That's too funny!

      -jerdenn

  15. Too different by Anonymous Coward · · Score: 0, Insightful

    Eiffel is a fine example of a great paradigm which is living in shadow because of programmers' mental inertia. Logical programming could solve many maintenance issues of current software, yet Eiffel is simply ignored.

  16. IN SOVIET RUSSIA by Anonymous Coward · · Score: 0

    ...Eiffel releases YOU!

  17. found some more links by EccentricAnomaly · · Score: 2

    I don't know Eiffel, but I've heard of it... here's some useful links that I've found:

    Why Eiffel: http://www.elj.com/eiffel/why-eiffel/
    Other lins (including tutorials): http://www.cetus-links.org/oo_eiffel.html

    I wonder what is meant by all of this "Design by Contract" stuff... I'm not sure yet if this is something useful, or just more buzz-buzz.

    --
    There are 10 types of people in this world, those who can count in binary and those who can't.
    1. Re:found some more links by SlowMovingTarget · · Score: 3, Informative

      At its heart, Design-by-Contract is an API description mechanism (think assertions). For any given method on a class, you specify what must be true in order to call it (preconditions) and what it guarantees will be true once it has finished execution or has errored out (postconditions, exceptions).

      In Eiffel, however, this kind of specification is given some heft in terms of compiler support. Design-by-Contract is especially useful when defining an interface between code bases (IOW: public APIs). DbC gives client programmers of a class insight into how to call the class, and gives the language a way to enforce and check for that.

    2. Re:found some more links by J.+Random+Software · · Score: 2

      It's also an optimization hook. If the compiler can prove an assertion is fulfilled (because another assertion didn't fail, the caller's passing a value that's obviously correct, or nothing used in the invariant was modified) it can skip the machine code to check it.

  18. Functional? by jefu · · Score: 4, Insightful

    "functional programming paradigm" ?

    Unless things have changed substantially in the last few (um) time-units-of-your-choice, Eiffel is Object Oriented, not Functional.

    I've not codes much (only a few KLOC) in Eiffel, but it is a very nice language with lots of help for producing programs that run. My biggest problem with it was that it tended to be a bit on the verbose side.

    1. Re:Functional? by Anonymous Coward · · Score: 0

      Hey, it's "insightful", what do you know?

    2. Re:Functional? by Nutello · · Score: 3, Informative

      Eiffel remains inherently an object-oriented language, but in recent times it has borrowed some functionality typical of functional languages, through the new agent mechanism (think of iterators, map and for-all).

    3. Re:Functional? by Kashif+Shaikh · · Score: 2

      My biggest problem with it was that it tended to be a bit on the verbose side.

      You mean like COBOL(*ducks*)?

  19. Re:Some Info about GOATSE.cx by Anonymous Coward · · Score: 0

    I am almost pissing my pants in laughter! Not.

    Hi there, are we back in 1992 again? Did I just hear a joke that ended in 'Not' a la Wayne's World? Please. Do us all a favor and kill yourself. K thx bye.

  20. Eiffel = enormous memory hog still? by myowntrueself · · Score: 3, Interesting

    When I was at Auckland university we used to dread when the guys doing the stage 3 OO programming course got an assignment.

    I once saw 12 of them running the eiffel compiler each instance of which was absorbing over 100M of virtual memory on, as I recall, old DEC unix boxes...

    This was back in 1993 so as you can imagine (with relatively limited amounts of RAM and VM in those days and in a relatively small and underbudgeted department) the whole system came to a grinding halt for everyone else. Heck, I couldn't even read usenet news and opening a smallish text file to edit in emacs took around 10 minutes. Which, for vi devotees, *is* unusually long even for emacs ;)

    I think they went home for the weekend to leave their compile processes running, meaning that the rest of the comp.sci facility could barely use the unix servers for the duration.

    Eventually, as I recall en-masse eiffel compiler processes were *banned* and they were told to spread out their compilation processes over a few days (ie not all 12 students at once).

    Since the assignments were weekly this caused problems. I believe they turned to an alternative OO language. I wasn't doing the paper so I don't know which one.

    --
    In the free world the media isn't government run; the government is media run.
    1. Re:Eiffel = enormous memory hog still? by Anonymous Coward · · Score: 0

      I don't know if it is a memory hog. When I compare it to Delphi programs, they mostly take the same size (memory usage and binary). Don't know about other languages.

      I'm in close contact with John Grundy, the current Professor of Software Engineering, and I know he is quite interested in Eiffel. So if students still work through terminals on a single machine, people at the UoA might get some experience with newer ISE Eiffel compilers. But the world of hardware also had moved on of course.

    2. Re:Eiffel = enormous memory hog still? by buggered · · Score: 1

      Having used SmallEiffel (the predecessor to SmartEiffel) for several years, I have found that in full checking mode (where it tests all of the require, ensure, invariant, void (null) pointers, etc.) the programs are fairly large. But when you're finished debugging and use the "boost" mode, they aren't significantly larger than an equivilent C++ program.



      A couple of years ago I compared (for speed not size) some programs written in both C and SmallEiffel and I found that the Eiffel ones were about 1.3 to 1.4 X the C ones. And I have heard that the generated code has been improved since then, so it should be better than that now.



      I should also comment that Small/SmartEiffel compiles to C VERY fast. It will take Gcc far more time to compile the C files into .o's. ;-)


  21. For those too scared to actually look at the link by Anonymous Coward · · Score: 0, Troll



    anger does things, from the berg's-eye-view-dept

    Wired News 10:00 PM Dec 02, 2002 PT
    http://www.wired.com/news/goatse/0,3883,1309,4 20,0 0.html

    Goatse 'It' Guy Breaks Silence, Wind

    First he turned down Jon Katz. Then he said no to Harry Knowles.

    For years, Goatse Man, the mysterious Net celebrity who is featured at a popular website frequently featured on Slashdot, refused all interview requests, including those from the two titans of internet media.

    But Goatse Man, whose fame continues to grow even as he eschews the media spotlight, has finally granted his first sitdown with a reporter, albeit from an unlikely publication.

    The interview with the New York Times (free reg), the old gray lady of printed media, will be published Friday.

    In that article, Goatse Man reveals he was, as many of his "fans" had guessed, under the influence of drugs during the famous set of photographs lifted from Stile, but exactly what he took, editors at the New York Times aren't saying; all is revealed in the interview. The best guess is amyl nitrate, according to online scuttlebutt.

    "It sure as hell wasn't aspirin," said Gerald Boyd, the managing editor who conducted the interview.

    Goatse Man became an Internet celebrity after being featured in a set of forty ass-stretching pics taken by his wife for USENET. After the pictures debuted in 1998, Goatse Man quickly shot to Net celebrity, largely because the url is passed around to unsuspecting surfers.

    Very little is known about Goatse Man, Phil to his friends, except he's married, lives a stable life and has an MCSE; Goatse.cx isn't revealing any details. The New York Times claims the interview is his first.

    The interview contains a number of interesting tidbits, including details on how Hollywood came calling as Goatse Man's online celebrity grew.

    Besides inquiries from Letterman and Leno, MTV talked about doing a pilot show. The Farrelly brothers, directors of hit comedies There's Something About Mary and Shallow Hal, were thinking of offering him a role, but got cold feet when they found out the pictures weren't photoshopped.

    According to Boyd, Phil turned down Letterman and Leno because he's cognizant that his fame relies on an air of mystique. He is different things to different people. Too much exposure would cause his star to quickly fade.

    "He's pretty level-headed about all this," said Boyd. "He's very funny and is a good sport about it all."

    But, of course, in true Hollywood style, he now has an agent, Boyd added.

    Goatse Man is amused that people have t-shirts and coffee mugs decorated with his ass, but avoids Slashdot and Kuro5hin "because he's heard from friends there's some very weird stuff there," Boyd said.

    Phil also reveals how the pictures were taken in the first place. He's a friend of Robert Malda, the editor in chief of Slashdot. The pair went to watch some hardcore gay porn being taped one day, and a couple of spots happened to be open. Both he and Malda were photographed but only Goatse Man's wife caught the magic of the moment. Malda's pictures ended up at a small but increasingly popular website called lemonparty.org.

    The Goatse interview is being heavily promoted by the New York Times, which has plastered New York City with Goatse posters.

    "We've been hyping this pretty big," Boyd said. "There's certainly been some buzz. I'm excited about it. I think people will get a kick out of it."

    The paper scored the interview because someone on staff was an old classmate of Phil's. Goatse.cx has cautioned him not to speak to the press, but Goatse Man figured a newspaper that requires free registration would turn off every privacy nut that reloads slashdot every five minutes at their despairing and menial help desk jobs.

    "Goatse.cx is not incredibly psyched about the amyl nitrate rumors," Boyd said.

    Boyd said Phil is not a resident of San Francisco's Tenderloin district nor would he reveal any more about this rising star except that Goatse Man didn't need any help fitting a fire hydrant inside himself.

    The revelation that he wasn't taking amyl nitrate doesn't trouble his straight fans, who simply don't believe him.

    "I don't care what they say," said Rev. Samuel, who sells a line of Goatse-themed 'Stretch Different' T-shirts. "Duuude. Look at him. Just look at him. Oh sweet Jesus, my eyes."

  22. Some infos about Eiffel by DarknessInBlindingLi · · Score: 4, Informative
    For those who are unfamilar with this language (I fear most of the /. crowd) here a basic overview of its advantages and problems:

    Eiffel is a language with an minimal instruction set (sometimes refered to as RISC language), which is used mostly in environments that emphasize reliability and dependability. It's small instruction set (e.g. there is only one type of loop) make it easy to learn and understand but is taking away some of the fun of coding. Most of the work you put into an eiffel project is to find the right approache, because you don't have too many ways to implement stuff. Here in Europe it's used in mostly academic environments that like the grace of its simplistic approace and its 100% object oriented design.

    Tradeoffs of this language are its high compilation time, as Eiffel source gets translated to C and then into a native form, the scarcity of available system libraries and the lack of dynamic features as shared objects and stuff.

    If your going to invest some time in this language, a look at those open source projects might be worthwhile:
    eposix - POSIX bindings for eiffel
    gobo - a collection of tools and libraries to unify the development of applications on diffrent Eiffel compilers
    mico/e - a CORBA ORB in Eiffel (DISCLAIMER: I am involved in the development of this project)

    1. Re:Some infos about Eiffel by thebatlab · · Score: 3, Informative
      "which is used mostly in environments that emphasize reliability and dependability"

      So true. I hear that a major stock trading application was made using Eiffel as it was the best tool for their needs. Kind of tells you something when a stock trading system uses this pretty much unknown language b/c of it's reliability. Design by contract anyone?? :)

  23. Information on Eiffel by Anonymous Coward · · Score: 3, Informative
    Eiffel is awesome! Here are some of the most obvious benefits:
    • Design by Contract (dbc)
    • Multiple Interitance
    • Static Typing (no such thing as casting)
    • Dynamic Binding


    To learn more about Eiffel, read this and this and this and if you still have time, this.


    Also, check #eiffel on freenode (irc)


    Eiffel is the best,
    DM

    1. Re:Information on Eiffel by thebatlab · · Score: 2, Insightful
      > Design by Contract (dbc)

      Definitely one of, if not the, best part of the langauge. Others have tried to tack it on as an afterthought but it just didn't pan out well enough.

      > Multiple Interitance

      Is a great help but used incorrectly it can be a major downfall. I've even seen the libraries that my former university developed using multiple inheritance when it should have been single inheritance and then an instance within the class of the other type. Also, things get tricky when ambiguous situations arise although Eiffel provides all you need to disambiguate them.

      > Static typing

      There is somewhat of casting with the =? syntax (or is it ?=) though again, it does improve on the idea of casting. If you get a null back, the cast was unsuccessful and you carry on your merry way doing what your program should do after a failed assignment attempt. It's nice to know that your attempt failed right away than having to do a check other than object != Void

      > Dynamic binding

      Most OO languages do this so it's not really a benefit of the language so much as it is that if they hadn't included it, it would be the worst OO language ever ;)

    2. Re:Information on Eiffel by Anonymous Coward · · Score: 0

      eiffel rules. period.

      some additions:
      code is easy to read (who mentioned c?), standard classes are well structered (compared to the java lets-spread-it-all-over-the-place), everything's an object (java: int, Integer -- what the **** is that supposed to be good for?), and yes, it's been said before: multiple inheritance. whoever says mi makes things more complicated just doesn't get it: interfaces (java ...) just make it into a semantic problem -- what's worse?

      code eiffel or die.

    3. Re:Information on Eiffel by Anonymous Coward · · Score: 0

      static typing / ?=:

      if you get some object passed on, and you want to figure out what it is exactly, you can do a couple of attempted assignment (?=) ... if your program died right at the first failed attempt, no way to do something like that.

    4. Re:Information on Eiffel by Doomdark · · Score: 2
      java: int, Integer -- what the **** is that supposed to be good for?

      Performance. To get same level of performance from boxed primitives as 'native' primitives, compilers and VMs need to do more work. Nothing impossible, but originally Java was KISS - oriented language (auto-boxing would make it bit simpler to use, but more complicated internally).

      As to multiple inheritance... I don't quite see how you think interface makes anything into a semantic problem. The thing interfaces are missing (from MI) is the default implementation, and that's a practical, not semantic problem?

      --
      I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
    5. Re:Information on Eiffel by SnowZero · · Score: 1

      So it's the best because it is a better language than C and Java? That's comparing it to pretty low hanging fruit. A language had better beat C in OOPness or something is *seriously* wrong with it, and Java has far to many flaws to outweigh its advantages.

  24. Languages are not the same as GUIs... by Steveftoth · · Score: 1

    There is a point to creating new languages, but only if you don't expect them to be used by everyone.

    There is no language that could possiably be used by everyone, it's just too broad a topic. But given enough ways to do the same thing, everyone will find their own preference. Like in PERL, where there is a million ways to do something, but usually the simplest is best. C is not the end all language, neither is C++, Java or COBOL.

    New language research is necessary for the advancement of computers, as as computers become more complex and powerful, the languages we use to tell them what to do must become more expressive.

    Besides, effiel is not a new language, it's been around for awhile. Just no free compiler has been developed before (AFAIK). There still isn't a modern Java ( > 1.1 ) implementation that is free ( as in speech ).

  25. Re:Some Info about GOATSE.cx by Anonymous Coward · · Score: 0

    Listen, you ignorant child: you weren't even born in 1992 so do us all a favour and SHUT THE FUCK UP. Or I'll rape your mother.

  26. All hail Bertrand Meyer! by EEGeek · · Score: 1

    All hail uber-programming god Bertrand Meyer for creating Eiffel! Although, ISE doesn't create a GPL version of Eiffel to my knowledge, they just make EBench, which you have to pay for. Actually, I really hated the language when I first learned it in my second year comp sci class last year, but now I must say, that its grown on me... ahh the joys of being forced into coding by way of OOP... instead of C++ which is rather pseudo-OOP.

    1. Re:All hail Bertrand Meyer! by Tablizer · · Score: 1

      I have written a critique of Meyer's popular book, "Object Oriented Software Construction, 2nd. Ed." and OO in general. This book is probably the most common source of people's exposure to Eiffel and is, or at least was, a popular university textbook on OO. (Anybody know what book(s) is used for general OO intro now at Universities?)

      It was often recommended to me as a work that allegedly presents decent evidence or explanations on why OO is allegedly better than procedural/relational approaches. But like most alleged OO evidence, it did not stand up very well to scrutiny (at least for general-purpose software. It may shine in specific niches, such as where noun taxonomies are stable due to nature's unchanging laws or slow-moving standards bodies. But, that aint my domain.)

    2. Re:All hail Bertrand Meyer! by EEGeek · · Score: 1

      At my university -- University of Saskatchewan, we used a book called Data Structures and Software Development to introduce us more or less to OOP, its a second year class, and although 1st year science students learn Java, they hardly learn proper OO programming, while engineers like myself learn C/C++. The book itself was written by two profs, and is in my opinion a very good book.

    3. Re:All hail Bertrand Meyer! by Tablizer · · Score: 1

      At my university....we used a book called Data Structures and Software Development....to introduce us more or less to OOP

      I almost think they should introduce databases before data structures. IMO, there is too much encouragement to roll your own data structure managers and indexes when databases would be more appropriate. Too few graduates know how to use databases and end up re-inventing them with complex data structures.

      In fact too much OO training is reinventing the database the hard way IMO. I know I will probably take mod shots for stating such, but that is my opinion. Let the DB manage your noun structures, not hand app code. At least it works for me. Your milage may vary.

      But this gets back to a general issue of whether low-level stuff should be tought before high-level stuff. If you teach low-level first, then students will allegedly think too much about the nuts and bolts instead of focus on abstractions. If you teach higher-level stuff first, then it may be hard to relate to what is going on at times. I don't have any empiracal evidence to suggest which is more effective, but I would lean toward the high-level first if a teacher I think.

    4. Re:All hail Bertrand Meyer! by EEGeek · · Score: 1

      Quite alright, your opinion is yours. I can see where you're coming from in a way, however I haven't taken a DB class yet... perhaps next year... but final year undergrad in the program does have a DB class... kind of like which came first, the chicken or the egg, I guess... I don't even know how the program here rates...

  27. You're a DOUCHE by Anonymous Coward · · Score: 0

    Please see the subject line, douche.

  28. Eiffel is not a new language by Earlybird · · Score: 4, Interesting
    • Why is everyone gung ho on creating new programming languages.
    Eiffel is not a "new programming language". It's nearly twenty years old, invented in 1985 by Betrand Meyer, and a damn well-respected language at that.

    Historically Eiffel has probably had more success in influencing other languages and in teaching software construction principles, than actually being used for commercial software projects, although it has seen some popularity in the finance sector. Lately, like certain other niche languages, it has seen its popularity further eroded through the emergence of Java.

  29. Self-debugging? by kakos · · Score: 0, Flamebait

    Of course it is! It's French. It surrenders at the first sign of trouble and bails out!

  30. IN SOVIET RUSSIA by Anonymous Coward · · Score: 0

    ...Eiffel is, 1.0 is the,...

    ... my, erhm ... fuck ... um

    ...program the is debug this 1 release is class safe broken...

  31. serious limitation by g4dget · · Score: 5, Insightful
    C, C++, Java, C#, and Objective-C, have extensive support for dynamic class/code loading and manipulating objects with types not known at compile time. These are crucial features in modern systems and applications programming languages because many modern software systems are built out of dynamically loadable components and have plug-in architectures. Support for these features is probably at the core of the success of these languages.

    Java and C# are particularly interesting in this regard because they not only support dynamic class/code loading, they also support it safely and with full reflection. That's really the future.

    SmartEiffel, on the other hand, takes a static, global program analysis approach to compilation and optimization. It provides almost no reflection or dynamic loading (if you compile to JVM, you may be able to rig something up). I think ultimately, that makes it a fairly unattractive choice for many applications. Even the commercial Eiffel systems only had those features retrofitted over the last few years, which probably accounts in part for the very limited success of Eiffel as a language.

    SmartEiffel is a really great concept, and for some niche applications, it is very useful (I have used it for some prototyping). I would very much like to see a safe, batch-compiled language catch on for Linux system programming as an alternative to C/C++. But I just don't think SmartEiffel is it, at least not yet.

    1. Re:serious limitation by HiThere · · Score: 2

      What I'd like is a version of Eiffel that both captured the flexibility of Python, and could link transparently to Static Eiffel for efficiency. But I'm not holding my breath. (On the other hand, I've seen this promissing language that appears to blend Python and C in a smooth manner. That holds much promise...but it's C, not C++, or Ada, or even Java. And I'm also contemplating Pizza for use with gcj...but it's not clear to me how calls are made between Java and C/C++ code. O, tempores, O documentation!)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    2. Re:serious limitation by g4dget · · Score: 2
      On the other hand, I've seen this promissing language that appears to blend Python and C in a smooth manner.

      I find the blend of Python and C anything but smooth: the Python C API is complex and error prone, and once you load a C module into Python, all bets are off when it comes to safety.

      What blends very nicely is Python and Java: the mix is secure and safe and Python objects appear as Java objects and vice versa.

      What I'd like is a version of Eiffel that both captured the flexibility of Python, and could link transparently to Static Eiffel for efficiency.

      That isn't sufficient: that kind of mixture, in which only the Python-like part is dynamic, imposes too many restrictions on the static part; it basically means that all the efficient code remains inflexible, and all the flexible code remains inefficient.

      While Java and C# have lots of warts as languages, I think their kind of runtimes are the future. If you don't like the Java or C# languages, you can use compilers like SmartEiffel to compile for those runtimes (although I think SmartEiffel itself is still not quite flexible enough for even that to be all that useful).

    3. Re:serious limitation by TrixX · · Score: 2

      You are comparing C++/Java/etc. to SmartEiffel. That's comparing apples to oranges.

      Compare C++/Java to Eiffel (languages)
      Or gxx/javac to SmartEiffel (compilers)

      Yes, the SmartEiffel compiler lacks now the ability of dynaamic loading. But nothing in the languaage itself discourages it (and actually, it would be very natural). So it's just a matter of time for getting it implemented, not a design flaw of the language (like C++ way of handling multiple inheritance or templates).

      In fact there are (non free) Eiffel compilers supporting what you want.

    4. Re:serious limitation by HiThere · · Score: 2

      I can't remember the name of the language, but it's routines were directly callable from Python. (Also, I believe, from C.) It could directly call either Python or C.

      If you declared a variable with a type, then it created it hand handled it as if it were a C variable of the declared type. If you didn't declare a variable, then it would be created as a Python variable. Etc.

      I never actually used the language, so I don't know whether or not it acutally worked. And I can neither remember it's name, nor locate the web page where I saw it described. Well, if it works, it will surface again. Even if it only works moderately well, this should be important enough to gain attention and support. But it might have been only someone's first design steps. I can't really say.

      As for the future... it won't be Java or C++. I don't yet know C#, but I don't believe that will be the future, either. I think the future will be some language that partially compiles Python. Perhaps it will link to C, or it might be smart enough to just replace C (not a good chance, be possible). Note that I said "Paritally compiles". If Python were turned into a static language for the sake of efficiency, then it would loose many of it's most important features. If it isn't, then it will be too inefficient for many purposes. So what's needed is a compiler that can compile the parts that can be fixed at compile time in an efficient way, and interpret the rest at run time. It will, inevitably, result in large run time libraries, but a "Hello, World" in MS Access already takes up over 5MB. (I actually remember it as being 10MB, and I'm refusing to believe it.) The way to handle this is to have shared-versioned libraries so that common code doesn't need to exist in multiple copies. (This is already done, so I'm not proposing anything new here.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  32. Re:helloworld in Eiffel WHORE WHORE WHORE by Anonymous Coward · · Score: 0

    Hi, who the fuck cares? Quit your filthy karma whoring.

  33. Sather by jefu · · Score: 5, Insightful
    Eiffel is a nice language, but for me the best part of Eiffel is that it spawned Sather.

    Sather started as a free subset of Eiffel but then transmuted itself into a related but very different language.

    Sather had great support for procedural pre and post conditions (not the aftermarket cheezy afterthought kind of thing that some languages seem to want to adopt), class invariants that could be automatically checked on call and return of a "public" method, class based iterators (not cursor classes, but built into the class itself), constrained genericity, simple (and relatively restricted) overloading ("a + b" became a.plus(b)), unboxed objects and so on....

    Without formally measuring it, I'd guess that writing three more or less equivalent programs in Java, C++ and Sather would result in Sather having the lowest LOC count and the fastest development time. Though the tradeoffs were sometimes odd, good pre/post conditions saved me huge amounts of debugging and testing time, but required quite a bit more up front thought on what those conditions were - this resulted in much better code, but sometimes required interesting amounts of redesign.

    Sadly, Sather, while still available here is GNU Sather is no longer being developed or supported AFAIK. Were I more of a compiler maven I'd work on it, but I doubt my efforts as a compiler writer would improve things much.

    1. Re:Sather by Anonymous Coward · · Score: 0

      Weren't Sather the snake-like evil aliens from Star Frontiers?

    2. Re:Sather by Jace+of+Fuse! · · Score: 1

      That was "Sathar"...

      --

      "Everything you know is wrong. (And stupid.)"

      Moderation Totals: Wrong=2, Stupid=3, Total=5.
    3. Re:Sather by Animats · · Score: 2
      I was a Sather fan once, and knew Steven Omohundro, who invented it. But it hasn't gone anywhere. Sigh.

      In language design, we've pretty much settled on C syntax for executable code. No new language with non-C executable syntax has gone very far in the last 15 years or so. Python acceptance is held back by its indentation/no semicolon style, even though it has many good ideas.

      On the other hand, we're still struggling in the declaration space. The current declaration syntax in C++ is a mess for historical reasons.

    4. Re:Sather by Daniel+Phillips · · Score: 2

      In language design, we've pretty much settled on C syntax for executable code. No new language with non-C executable syntax has gone very far in the last 15 years or so. Python acceptance is held back by its indentation/no semicolon style, even though it has many good ideas.

      I'd call that wishful thinking. My unscientific observations suggest Python continues to grow exponentially, and there is Basic (not all dialects are as broken as VB) which still has a huge mindshare. Actually, a quick look into my crystal ball shows me fewer semicolons in the future, not more.

      --
      Have you got your LWN subscription yet?
    5. Re:Sather by ninejaguar · · Score: 1

      >>>Actually, a quick look into my crystal ball shows me fewer semicolons in the future, not more.

      Your crystal ball needs a tune up. Its forcasting a little too far into the future; where semi-colons are fewer because no one programs in code any longer. That's the epoch of self-programming AI systems.

      In the meantime...in the world of Java, C/C++, and C# domination, semi-colons abound a-plenty. At least if you're working for a living.

  34. Thats actually old syntax by Audity · · Score: 1

    The newer versions of eiffel support a new syntax for the creation of objects. Instead of saying !!io now you say create io So HELLO_WORLD should look like this: creation make feature make is local io:BASIC_IO do create io io.put_string("%N Hello World!!!!") end --make end -- class HELLO_WORLD

  35. Shame on me for not using preview by Audity · · Score: 1

    whoops!
    The newer versions of eiffel support a new syntax for the creation of objects. Instead of saying
    !!io

    now you say
    create io

    So HELLO_WORLD should look like this:
    creation make
    feature
    make is
    local io:BASIC_IO
    do
    create io
    io.put_string("%N Hello World!!!!")
    end --make
    end -- class HELLO_WORLD

  36. Not another one! by pla · · Score: 3, Insightful

    Damn, people, can the collective computer geeks of the world *please* pick some sort of "standard" language (or at least a very small set of languages, like perhaps C++ for most things, Perl for scripts, and Tcl/Tk for GUIs)?

    I personally like C. I consider myself fairly good at it. But honestly, I don't care if we decide "Everyone must code in Forth". Just *some* sort of standard. I'll learn it, and feel happy to "waste" a year mastering it, just to never have to learn another "fad" language.

    I see people asking why Eiffel doesn't have more popularity - Why? I can answer that *really* simply. Because we already have too-damn-many languages to choose from!

    Yes, a *FEW* choices make sense, because not every language has the same strengths and weaknesses. But really, how many people research all 250+ "major" existing languages to determine the best for each and every program they write? No one. People pick a language that has a lot of general-purpose power and flexibility, and *ONLY* deviate when their first choice literally cannot accomplish the task at hand.

    Put out efforts toward making a few projects truly great, not having a huge number of mediocre projects.

    1. Re:Not another one! by ken_mcneil · · Score: 2, Insightful

      Put out efforts toward making a few projects truly great, not having a huge number of mediocre projects.

      Obviously you don't get why people create programming languages in the first place, or most of the open source software for that matter. They do it "just for the hell of it" or to "scratch an itch". Their goal is not to take over the world with a massive project to create the language to end all languages. In fact, the idea of working on a massive project full of documentation, debugging, and huge libraries may not appeal to them (not the cast for SmartEiffel of course). They just wanted to experiment with somes ideas they've been throwing around.

      That brings up my second point...experimentation. How are you supposed to come up with the "truly great" projects without messing around for a really long time. It is impossible for someone to just sit down and pull the ideal programming language for any given problem out of their ass.

    2. Re:Not another one! by lpontiac · · Score: 2
      But honestly, I don't care if we decide "Everyone must code in Forth". Just *some* sort of standard. I'll learn it, and feel happy to "waste" a year mastering it

      It shouldn't take a year to learn a language. Of course, with some monsters (I'm thinking C++ here), that's a problem with the language.

      As for a "standard" language, most people already have settled on C++ and Java for most things, and Perl for scripting.

    3. Re:Not another one! by buggered · · Score: 2, Interesting

      In the past 25 years I have programmed in Assembler (for about 2 dozen different architectures), Fortran, Algol, Pascal, Bliss, Ada, Lisp, C, C++, Java, Perl, Python, SmallTalk, and probably some others that I can't think of at the moment. During that time I have always wanted something better. While Eiffel is not perfect, I can say that it comes the closest to my ideal language of any I have ever used.

      I have found that Eiffel programs are very easy to debug (because of the "Design by Contract" the problem usually pops right out). Sometimes I have even had non-trivial programs work correctly the FIRST time!

      When I have been working on C++ programs, it sometimes takes days or even weeks to find some of the problems. Most of the time in Eiffel I can find the problem in seconds or minutes. Rarely have I had bugs that took longer than an hour or two to find.

      If I had to pick one programming language to use from now on it would be Eiffel.

    4. Re:Not another one! by CFN · · Score: 5, Insightful

      Hey, I really cannot understand your animosity towards the development of new languages. At the very worst, you can are free to bury your head in the sand, ignore their existance, and go on with your life. At the best, this might be the perfect tool for you to do your programming with.

      Now, there are very good reasons why a programmer, even someone who will never in their career look at something other than C, benefits from this work.

      Computer Science is a continually evolving field (thats why universites have CS departments, filled with people doing research in CS). Because some computer scientists study programming languages, programming languages are evolving as well. This means that researchers keep introducing new and different features into new languages.

      Of course, the vast majority of these new languages never become popular (or ever get used for even a single real program), but this collection of ideas influences more "mainstream" language. Things like classes, type-safety, generics, etc., all began as research ideas and then migrated into production systems. (Of course, Eiffel is well beyond the research language phase).

      So even if you never adopt a cutting edge language, eventually, a tool you use will exist, or have been made better, because of that language.

      Point is, instead of bitching you should be appreciative.

    5. Re:Not another one! by Peaker · · Score: 2
      My set would be:

      Python for anything that doesn't require performance.

      C for the rest.

      My own Lisp variant for everything (when I get time to implement it, ofcourse :)

      Now, use any set you like and quit bitching :)

    6. Re:Not another one! by Anonymous Coward · · Score: 1, Insightful

      Damn, people, can the collective computer geeks of the world *please* pick some sort of "standard" language (or at least a very small set of languages, like perhaps C++ for most things, Perl for scripts, and Tcl/Tk for GUIs)?

      People can't even agree on a common spoken language; why should they be able to agree on a computer programming language?

      Different people want different things from a programming language. All of these are valid design principles:

      The language must allow hand-optimization for speed.
      The language must prevent hand-optimization for clarity.

      The language should be as powerful as possible.
      The language should be as minimal as possible.
      The language should be as consistant as possible.
      The language should fit the user's expectations as much as possible.

      The language should be hide underlying complexity.
      The language should make all levels of processing accessible to the programmer.

      The language must allow low-level access to hardware. (eg. to create device drivers)
      The language must not allow low-level access to hardware. (eg. to address security concerns).

      You can see how most of these princples are in conflict. The needs of a real time developer making a mission critical shuttle lauch are vastly different than a webmaster trying to automatically geneerate html pages.

      Programming languages which enforce a certain structure are good if that particular structure is what you need; but bad if that structure is against your needs, or merely too slow for the task at hand.

      Speed is a critical aspect of computing, and always has been. It's another reason we need to keep re-evalutating computing languages.

      Computers today aren't the same as computers ten years ago -- people used to argue against compiled languages, because compilers were "too slow". Compilers haven't gotten much faster -- the hardware has.

      Java is a terrible choice for my Pentium 75 -- it's too slow, and has too much overhead for what I get from it. C is a much better choice in terms of time and memory savings, which are scarce.

      On my TRS-80, the problem was a lot worse -- any compiler which writes a 20K hello world has a problem, because the computer only has 16K.

      On mainframes in the 1950s, programmer time was cheaper than computer time -- wasting computer time to do something humans could do was a waste of money. Now, a scant 50 years later, the purchase cost of a computer is much less than one month of a programmer's salary -- and we want the
      computer to bear as much of the programming burden as possible.

      Tommorows languages, I imagine, will continue the same trend -- we'll make the computer do more and more of the grunt work for us, and the computer will be able to do more of the work that only skilled professionals could manage before. The skilled professionals will move on to making the computer do new and interesting things, and develop yet more powerful and expressive languages for the next generation of programmers.

      Don't fear more languages -- it's called exploration, and development. Choice is good.

      --
      AC

    7. Re:Not another one! by HiThere · · Score: 2

      Personally, I don't see how anyone can take a language with the kind of unsafe type casting requirements that C has and think that it's a suitable general purpose language. A portable assembler, yes. That was what it was designed for, and it does the job quite well. And C++ continued all of C's flaws. Intentionally. They originally wanted all C programs to be valid C++ programs with the same meaning, which meant that they couldn't fix anything.

      With Java I still have complaints about the rampant casting requirements.

      Python would be a good choice if it were faster. Ditto for Ruby. (Don't know Perl.) Etc.

      Eiffel is another "nearly good enough" language. It's faults are that it can't be dynamic (in the manner of Python and Ruby), and it prohibits overloading of operators. Bad move. Tends to mean that you need to come up with several new names for functions that do the same thing just because their arguments are slightly different. So, e.g., there is no generic length operator.

      But, depending on what you are doing, Eiffel may well be the best choice available. Or not. (And, unfortunately, the edges are sharp. If it's not a great choice, it's a terrible choice.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    8. Re:Not another one! by be-fan · · Score: 2

      I find that Windows users have the same problem when moving to Linux. They see so many features and scream "I need structure!" If you're finding the same problem with languages, just do what I tell those Windows people to do. Pretend no other languages exist and just use one. I'd even be happy to help you. You *must* use BrainFuck. No more options. Now, bend over...

      Seriously, though, just because all these languages exist, there's no need to *learn* all of them. Just survey a variety of them and pick the ones that suit you. Personally, I use C++ for systems level stuff and Python for everything else. I'm looking into learning Prolog for AI type stuff. The important thing is to learn one or two in each catagory, and if you ever need the others, you can pick it up quite quickly.

      --
      A deep unwavering belief is a sure sign you're missing something...
    9. Re:Not another one! by Doomdark · · Score: 3, Funny

      Yeah, I don't understand the popularity of screwdrivers... Why can't we all just get along and use hammers for getting screws installed, TVs fixed and kids disciplined! Why waste time and resources on developing and learning how to use multiple tools?

      --
      I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
    10. Re:Not another one! by Daleks · · Score: 2, Funny

      (read parent first)

      Damn, people, can the collective musicians of the world *please* pick some sort of "standard" genre (or at least a very small set of musical styles, like perhaps rap, rock, and r&b)?

      I personally like rock. I consider myself fairly good at it. But honestly, I don't care if we decide "Everyone must listen in rock". Just *some* sort of standard. I'll listen to it, and feel happy to "waste" a year listening to it, just to never have to listen another "fad" genre.

      I see people asking why polka doesn't have more popularity - Why? I can answer that *really* simply. Because we already have too-damn-many musical styles to choose from!

      Yes, a *FEW* choices make sense, because not every style has the same strengths and weaknesses. But really, how many people research all 250+ "major" existing genres to determine the best for each and every song they write? No one. People pick a style that has a lot of general-purpose power and flexibility, and *ONLY* deviate when their first choice literally cannot accomplish the task at hand.

      Put out efforts toward making a few bands truly great, not having a huge number of mediocre bands.

      Sometimes you people scare me, seriously. You have nothing without diversity.

    11. Re:Not another one! by nagora · · Score: 2
      But honestly, I don't care if we decide "Everyone must code in Forth"

      Well, that gets my vote.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
  37. Eiffel also has .NET support by jerdenn · · Score: 3, Informative

    Eifel also has plug in and compiler support for Microsoft's .NET initiative. It's pretty cool, actually, because although .NET does not have support for genericity in V1.0 (though it's planned for v2.0), Eifel.NET has overcome this limitation and allows for multiple inheritance and other cool stuff. Take a look here.


    There's also an MSDN article.

    -jerdenn

    1. Re:Eiffel also has .NET support by HiThere · · Score: 2

      Eiffel# when last I heard had many of the most appealing parts of Eiffel stripped out. Unless it's been radically revised I wouldn't recommend bothering with it.

      There's lots of languages that have been shoehorned into the .NET environment. Most of them suffer seriously for the exercise. Don't judge any of them by their .NET versions, and don't assume that your favorite language is available on .NET just because theres something with a similar name (even if it's by the original language creator). If you really like a language, you might want to examine the specs of the .NET version to see if it still has the features that you prize. But don't just assume that it will.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    2. Re:Eiffel also has .NET support by jerdenn · · Score: 2

      Eiffel# when last I heard had many of the most appealing parts of Eiffel stripped out.

      That's a pretty bold statement, but you've backed none of it up. What are the "most appealing parts of Eiffel" that have been stripped from .NET?


      -jerdenn

    3. Re:Eiffel also has .NET support by Ztransformer · · Score: 1

      Eiffel# (a poorly conceived move, now unsupported) did in fact strip a couple of features out. However, the latest ISE Eiffel (EiffelStudio 5.2) contains the full Eiffel language, on .NET. Same Eiffel source can be used on any platform ES supports (i.e., win classic/.NET, unixes, linuxes, etc.) Free download of it: www.eiffel.com/downloads/ c.a.

      --
      C.Ambarian VP S&M, Eiffel SW
    4. Re:Eiffel also has .NET support by Admiral+Akbar · · Score: 2, Informative

      The current version of Eiffel for .Net supports the full Eiffel language with no limitations whatsoever, free download available here

      --
      -- You see what happens when you have fun with a stranger in the Alps?
    5. Re:Eiffel also has .NET support by HiThere · · Score: 2

      Nice! When I last heard it they had removed, e.g., multiple inheritance. And I had also been under the impression that DBC had been restricted. It's good to hear that they got back in. Eiffel without multiple inheritance isn't Eiffel, and full DBC is one of it's main benefits.

      If Eiffel# is really a full Eiffel (I haven't checked yet), and it's really as easy to get from language to language as promissed (again, I haven't checked yet), then Net may be worth looking at seriously. There's still the problem (for me) that none of the really dynamic languages support net (Python and Ruby are what I'm thinking of here), but if full Eiffel is reasonable, then that is only a matter of time.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  38. Since you asked... by eyal_bd · · Score: 2, Informative

    Yes there is an example in the distribution. Just go to the example directory and compile.

  39. Screw the language, check out this graph.. by lagsalot · · Score: 0, Offtopic


    Nice graphical representation of the slashdot effect.

    1. Re:Screw the language, check out this graph.. by pcol · · Score: 1

      34% of slashdot readers who went to the Eiffel site use Mozilla,
      25% run Linux, and
      7% have Realplayer installed

      according to this.

    2. Re:Screw the language, check out this graph.. by Anonymous Coward · · Score: 0

      HAHAHAH look at all the n00bs running in 256 colors

  40. Eiffel versus Java by hazzzard · · Score: 5, Informative
    I've used Eiffel quite a bit;
    actually, I was a TA in a class that used Eiffel.
    Being an experienced Java programmer also,
    I would say that:
    • Eiffel's syntax is a matter of taste. However, no matter what taste it is very clean and easy to learn, but sometimes trades this beauty for inefficiencies that ruin your daily life. For example, the semicolons between statements are completely optional, so you can write a:=1; b:=2 or a:=1 b:=2. This does not make the language ambiguous, but it means that you can only catch very few syntax errors at a time (usually, parsers can skip erroneous statements and report syntax errors even after them). The compiler we used to work with (ISE's Eiffel Bench) actually reported only one error at a time which was at some random place in the code. Just imagine the experience of writing a bigger piece and then trying to compile it.
    • What I liked about the language is its consistency, especially in the library. The standard library is a textbook grade collection of container classes and there are standards for naming things. For example, to retrieve something you will always use the function 'item' and not like in Java get, getItem getElementAt and so on. This is at least useful if you don't have an IDE that shows all the possible functions while you are typing.
    • Eiffel has full generics. This even includes bounded genericity, so you can do things like a sorted list of some sort where the sort has to be a subclass of Comparable. This rocks, especially when you compare it to the weak generics that Java is going to have.
    • Full multiple inheritance, even with renaming functions. A matter of taste but it can be useful.
    • Some features of Eiffel are debatable, one of which is covariance for parameters: This means that if you override a method in a subclass, you may make its parameters more specific. This means that you can get dynamic type errors even though the system is mostly statically checked. Also, you can throw out a function when you are inheriting, which also may lead to dynamic type errors. In practice, this won't hurt you (and can even be useful), but hardcore type system people can become upset about it.
    • Overall, Eiffel is a great language for philosophers. In practice, Java is more convenient and even though it's not as consistent and pure it has a more useful library (I don't mean the collections but the other things it comes with). Another aspect is that Sun's Java licensing is nicer than ISE's (Bertrand Meyer's Company). Be careful with them, they are cooperating with the evildoers and integrating Eiffel into .NET.
    • Even though some language features are debatable, there is a great book available that I would even recommend to non-Eiffel folks: Bertrand Meyers OOSC.
    1. Re:Eiffel versus Java by curious.corn · · Score: 1, Informative

      -- quote
      Overall, Eiffel is a great language for philosophers. In practice, Java is more convenient and even though it's not as consistent and pure it has a more useful library (I don't mean the collections but the other things it comes with). Another aspect is that Sun's Java licensing is nicer than ISE's (Bertrand Meyer's Company) [ise.com]. Be careful with them, they are cooperating with the evildoers [microsoft.com] and integrating Eiffel into .NET.
      -- quote

      And are the authors of ISE TCAD... a nasty, evil & wild beast for semiconductor device simulation. We couldn't figure out why out little Term Project simulation on a stinkin' InP device kept behaving as if made of GaAs. Some of the older guys think they just slapped in the same model and relabeled it.

      --
      Mi domando chi à il mandante di tutte le cazzate che faccio - Altan
    2. Re:Eiffel versus Java by Anonymous Coward · · Score: 0

      You were very coherant right up to the "Evildoers" statement.

      It's time to stop presenting ourselves as bratty children and start working to improve our appearance. It is completely and utterly unprofessional to have made such a remark even as a joke.

    3. Re:Eiffel versus Java by Anonymous Coward · · Score: 0

      wrong site. ISE's site is http://eiffel.com.

    4. Re:Eiffel versus Java by Anonymous Coward · · Score: 1, Informative

      wrong site. Check http://www.eiffel.com for ISE's web site.

    5. Re:Eiffel versus Java by Daniel+Phillips · · Score: 2

      the semicolons between statements are completely optional, so you can write a:=1; b:=2 or a:=1 b:=2. This does not make the language ambiguous, but it means that you can only catch very few syntax errors at a time (usually, parsers can skip erroneous statements and report syntax errors even after them).

      The usefulness of this is highly overrated. It harkens back to the days when programs were punched on paper card decks and you had to stand in line to submit your compile. You'd better catch as many syntax errors on each run as possible, for sure. But when you have fast compiler turnaround and tight integration to an editor, the equation shifts strongly in favor of one-at-a-time error correction. Simply put, the cursor should land on the first error, which you can typically correct in a few keystrokes, and resubmit. Your eyes never leave the source file.

      This way of working is a *lot* faster than sifting through lists of error messages, where many errors often cascade off an early one. The time you spend analyzing such dependencies is 100% wasted. It's also annoying to have to keep shifting your eyes between the source code and the lists of error messages. Anyone who can keep concentrating on the original problem (i.e., not the syntax errors) while doing this is a freak mutant alien.

      The compiler we used to work with (ISE's Eiffel Bench) actually reported only one error at a time which was at some random place in the code. Just imagine the experience of writing a bigger piece and then trying to compile it.

      Ehh? I have worked on huge programs with one-at-a-time error messages, I don't have to imagine it. It's a far more efficient way to work, regardless of project size. It does depend on tight integration with the editor though, which for some inexplicable reason, is still not treated as a high priority by most developers.

      The ideal system would always give you the first error in tight-editor-integration mode, and continue looking for more in the background while you are busy editing. That's what excess cpu cycles are for, right? On the rare occasion you're interested in more than one at a time, you can look at the full list.

      --
      Have you got your LWN subscription yet?
    6. Re:Eiffel versus Java by ninejaguar · · Score: 1

      Okay BillGatus of Borg, why don't you goosestep out from behind your anonymity and face our enmity.

      Why even bother posting random propaganda when you should be busy driving that tired old rust-bucket, MacroShaft, into oblivion. Please, proceed.

  41. Re:Yes another one! by pHDNgell · · Score: 2

    You pick your set, I'll pick mine. C++ is hopefully getting ready to die. It's just not pleasant to use. I'm also waiting for the day when the world wakes up and realizes the cruel joke Larry Wall played on it with perl. While some of my most crucial application code is written in C, I've spent more time on it, and trust it far less than stuff I've thrown together in Eiffel.

    At home, I've got code I rely on written in Java, Eiffel, C, Objective C, python, bourne shell, smalltalk (although the smalltalk code that I actually use the most I didn't write), tcl, scheme, etc... I've got some perl stuff, too, but I don't maintain it anymore (it asked me not to). This is just the stuff I use day-to-day, and much of it is server code I've written that just runs on its own (Java, C, python, eiffel).

    So, that's my set. Anyone who disagrees, make up your own set, continue to research and find better ways to do things, and help us continue to improve computer science in general. Every time I learn a new programming language, I learn a little more about programming, and apply that knowledge to everything I do.

    --
    -- The world is watching America, and America is watching TV.
  42. Eiffel is not a functional programming language by g4dget · · Score: 2
    Eiffel is about as far from being what is referred to a "functional programming language" as any language can be. Until recently, Eiffel didn't even allow you to manipulate functions or methods as data. Eiffel should feel right at home to any Java or C# programmer: it's a fairly simple statically typed object-oriented programming language with multiple inheritance and genericity.

    I think Eiffel's lack of success has to do with some serious problems and limitations in the early design of the language, which have only been addressed in the last few years in the main commercial Eiffel compiler. And SmartEiffel does not even implement the full, commercial Eiffel system.

  43. Sheep-like by Anonymous Coward · · Score: 0
    That should do it
  44. Yikes! an $80 book by Anonymous Coward · · Score: 0

    I'd like to buy that book, but $80 is kinda steep. Is it really that good?

  45. It still has a big problem... by d2002xx · · Score: 0

    the compiter can't create/support dynamically-linked library, which means that it's almost impossible to create large programs...

  46. Re:Yikes! an $80 book by berenddeboer · · Score: 2, Interesting

    I found it really good. It's about what an ideal OO programming should look like. It asks and answers lots of questions. Well written.

    --
    If I had a sig, I would put it here.
  47. Yo listen up, here's a story.... by cybermace5 · · Score: 2

    "About a little guy that lives in a blue world
    And all day and all night and everything he sees
    Is just blue
    Like him inside and outside
    Blue his house with a blue little window
    And a blue Corvette
    And everything is blue for him
    And himself and everybody around
    Cause he ain't got nobody to listen

    I'm Blue da ba dee da ba daa
    I'm Blue da ba dee da ba daa"

    Well, Microsoft DOES have an Eiffel plugin for .NET! Any guesses what song rights they will buy, when they launch their new standard development language?

    --
    ...
    1. Re:Yo listen up, here's a story.... by sinserve · · Score: 2

      Ooh man, you're bringing back memories :-)

      I heard that song the first time -EVER- I got laid. The DJ was playing it
      for my high-shool prom party.

      Ahhhh, those were the days. I miss year 2000.

    2. Re:Yo listen up, here's a story.... by sydb · · Score: 2

      Ahhhh, those were the days. I miss year 2000.

      So I'm guessing that was the last time you got laid, too?

      --
      Yours Sincerely, Michael.
  48. Price of Eiffel's IDE by majordomo · · Score: 2, Interesting

    According to the main Eiffel website, a major aspect of Eiffel is EiffelStudio, their "more than just an IDE" that really makes everything go. They imply that this product is necessary to reap the major benefits of developing in Eiffel, but unfortunately it is quite pricey (not to mention proprietary): the Windows or Linux version will run you $4799. That price, and hitching your wagon to a proprietary star, are major barriers to wider acceptance.

    If anyone strongly believes that learning Eiffel is worth the trouble even without a good free (as in speech) IDE, please let me know.

    1. Re:Price of Eiffel's IDE by Admiral+Akbar · · Score: 1

      It is definitely worth it, and a good IDE here is free in all various flavors of platform.

      --
      -- You see what happens when you have fun with a stranger in the Alps?
    2. Re:Price of Eiffel's IDE by majordomo · · Score: 2, Informative

      The IDE is free only for non-commercial use...

  49. Boxing by DannyO152 · · Score: 1

    I think you are thinking about Generics; this has to do with providing some type checking when an object is added to a Collection and then not needing a cast when an object is returned by a Collection method. As for boxing, I think primitives are and will be primitives and they have parallel classes without overloaded operations. That's java's story and it's sticking to it.

  50. Stop writing languages; start writing software by Anonymous Coward · · Score: 0
    Look, another new language for slashdotters to fawn over, and poo-poo every other language that comes before (ruby, perl, python, smalltalk, take your pick).

    All you losers philosophising about what the best language is, give it up and start writing decent SOFTWARE in it. I'm sick of finding more languages than useful applications to download. Be like the rest of us developers and put your code where your mouth is.

    1. Re:Stop writing languages; start writing software by Anonymous Coward · · Score: 0

      Eiffel's been around since 1985 you ignorant shit.

  51. Objects Unencapsulated: Java, Eiffel and C++ by buggered · · Score: 1

    There is actually a book that compares Eiffel, C++, and Java: Objects Unencapsulated: Java, Eiffel, and C++ by Ian Joyner.

  52. Re:we gnaw by Anonymous Coward · · Score: 0

    alright,

    we're out there... and quite elusive. Life supposedly gets better. Sometimes I can only fantasize about meeting my replicant. You sort of remind me of myself, which is refreshing. And if it's one thing I totally hate in others is immaturity -- that which comes in many different formats.

    Have a nice evening ;-]

  53. Re: Good for your head vs. good for your wallet by RoboProg · · Score: 1

    I agree with you, but most HR goons do not. *They* want some clown with 5 years experience (no more, no less) in VB version N.0 (whatever version came out last month), or some other exact, small, skill set.

    I'll not hide behind A/C status to say so, though.

    --
    Yow! I'm supposed to have a plan?
  54. Bertrand Meyer, originator of Eiffel by Lucas+Membrane · · Score: 2
    Read OOSC. IDK if it's good or bad, technically, but it's a very entertaining read for a software book. Meyer is a human electron, going through the sage, zealot, and crackpot slits all at once in a fairly convincing style, mixing in witty asides that make you think that the average sermon would be a lot better if he had become a preacher.

    He derives all the properties of Eiffel from first principles, convincing you that everything has to be this way or it would be a big mess. But then, you find out that Eiffel has this problem of CATcalls, ie changing availability of typos or something, and thus Eiffel also has serious skeletons in the closet down where it smells bad. Is he the Goedel of software? You be the judge.

  55. open source gui/database project for SE .. by elj · · Score: 5, Informative
    The ELJ project - http://elj.sourceforge.net/ has been successful in providing much needed multiplatform libraries to SmallEiffel/SmartEiffel developers.

    The wxEiffel GUI library provides a comprehensive interface to the wxWindows GUI. Database interfaces to Firebird, sqlite, berkeley db, mysql, postgres.

    There are even libraries for Regular Expressions and for those who like the perl way of doing things - see Perlish.

    The 0.5 release announcement in comp.os.linux.announce gives more details. The ELJ project is undertaking the necessary work to move from SmallEiffel to SmartEiffel.

    There are many other open source Eiffel projects:

    • GOBO - lex, yacc, xml, data structures, date/time libraries and
    • eposix which aims to provide a a 100% complete Eiffel binding to Standard C and POSIX.

    Eiffel has come a long way over the years. Misconceptions still abound. You can now develop multiplatform applications using open source Eiffel tools and libraries. There are small hurdles to jump as there are with anything. Give it a try and become involved if there is something about Eiffel which you find appealing.

    1. Re:open source gui/database project for SE .. by berenddeboer · · Score: 1

      The eposix link should be:

      http://www.pobox.com/~berend/eposix/

      --
      If I had a sig, I would put it here.
  56. Some generally unknown facts about Eiffel by name_already_in_use · · Score: 5, Informative

    Eiffel has been around for about 17 years, so a lot of people who used it a long time ago and haven't used it since moan about old problems with the language THAT SIMPLY DON'T APPLY MORE. Here is an up to date list of cool things about Eiffel:

    - Compilation is not so slow anymore.

    - It a full .NET language. Eiffel Software have made a Visual Studio plug-in, and EiffelStudio (previously EiffelBench, or EBench) can also be used to make .NET or non-.NET applications.

    - EiffelStudio is the IDE for creating Eiffel applications was COMPLETELY REWRITTEN a couple of years ago, so previous uses of EiffelBench won't recognise it anymore. The new studio is better in every respect and has the best class browsing facilities you will find in any IDE ANYWHERE (I'm not kidding).

    - EiffelStudio was written using Eiffel Software's Vision2 library - a 100% platform independent library meaning it is identical on Windows and *nix platforms. You can use Vision2 to make your own cross-platform interfaces with real ease.

    - The .NET implementation of Eiffel adds some programming mechanisms that are NOT available in Java, C#, C++. Namely these are multiple inheritance of classes, genericity (true generics), design by contract (pre- and post- conditions/assertation to improve software reliabilty and greatly ease the debugging process).

    - Eiffel Software provide a FREE version of EiffelStudio and Envision! (the .NET plug-in) from there web site.

    There's loads more to this language, but aint got time to talk about it, so just check it out yourself.

    --


    Rake Free + Mac Poker: CardCrusade
    1. Re:Some generally unknown facts about Eiffel by Anonymous Coward · · Score: 0

      Damn! That sucks! I don't do .Net!

    2. Re:Some generally unknown facts about Eiffel by Lucas+Membrane · · Score: 2
      OK. It's wonderful. Where's the list of success stories -- big projects that have used Eiffel with these new tools and are big successes? There were a few claimed successes in years past, a pension fund here and there, embedded software for printers. But the list was short and didn't seem to be getting many new entries.

      Better yet, where are the jobs? This language is around since 1985, and I just ran a search on www.dice.com for Eiffel jobs, and I turned up 1 job that might or might not really be an Eiffel job. Considering PL1 turned up 21 and awk 38, Eiffel's not a smash hit.

  57. IN REAL SOVIET RUSSIA by Anonymous Coward · · Score: 0

    SmartEIFFEL releases you!

  58. Re:That 70's Show by Anonymous Coward · · Score: 0

    You're learning COBOL right now?

    Don't forget to brush up on your PL/I, APL, RPG, and ALGOL.

  59. Bug in Eiffel Design by Tom7 · · Score: 2

    > Some features of Eiffel are debatable, one of which is covariance for parameters: This means that if you override a method in

    It's good that you mention it, but I wouldn't say this "feature" is debatable, it's just wrong. The only way they can recover static safety with this bug is to do whole-program analysis! If they really want to take a structured and pure OO approach to programming, I think it's important to have a consistent theory, not to just provide features that "seem" to be intuitively useful. (But have some serious consequences...)

    FWIW, Java makes a similar mistake in treating [] as a covariant type constructor. This means that in general they have to do dynamic class checks on every array access! Eiffel is mostly a better-designed language than Java, in my opinion.

  60. Eiffel sucks compared to Smalltalk. by crovira · · Score: 2

    So does Ada, APL, C++, J++, Java, Perl, PL/I, Set-L, and Simula (used them all & Basic, C, COBOL, JCL [I know, that doesn't realy count] & RPG,) and a whole bunch of language I have only seen the EBNFs for. (Okay Occam was & is in a class by itself. It must get lonely)

    Now Smalltalk ain't perfect. It has a few major blind spots (specially concerning object relationships and instatiation in context,) but it has everythig else beat.

    Try Squeak ( http://www.squeak.org ) and once you , uh, "get it," come back to anything else... You'll go YUCK!

    --
    MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
    1. Re:Eiffel sucks compared to Smalltalk. by BitwizeGHC · · Score: 2

      Try Squeak ( http://www.squeak.org ) and once you , uh, "get it," come back to anything else... You'll go YUCK!


      Squeak is fun, but I always come back to Scheme...
      --
      N4st0r, trixx0r h0bb1tz0rz! Th3y st0l3 0ur pr3c10uzz!
  61. And that's bad because??? by Anonymous Coward · · Score: 0

    You young punk programmers with your cheap RAM have no clue how to write good code. Bigger ain't better, it's just sloppy and the height of laziness. If you were a *real* programmer, you'd be able to do it with a small program. There was a time when accounting modules fit in 16K, now you're hard-pressed to fit "Hello World" in 16M. And this is progress?

    1. Re:And that's bad because??? by d2002xx · · Score: 0

      What if people want to rewrite KDE or mozilla by it?

  62. AC? by SuperKendall · · Score: 2

    No joke, Mr. "AC". Evildoers is about right, and I'm using a real username to say so (where do YOU work, eh?).

    I can't find the link for it but frankly I think Eiffel# has sold out and made some very disturbing concessions that cripple the language. From the looks of things, any # version is going to be a one-off of C# (the only truly native # language), and it's pretty much a one-way path to migrate users of language X to C# itself (especially as they will have to use C# libraries to do much useful work, and calls form most other languages are going to be more awkward). When I read of Bertrand Meyer's support of Eiffel# months ago, my first thought was "that's a shame, I rather liked Eiffel. Too bad it has to die this way".

    Calling a spade a spade does not make one bratty, to borrow your acidic parlance.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:AC? by Ztransformer · · Score: 1

      Agreed on the crippled C#. This has been undone (for better or worse, cause now we've got full eiffel on .NET...) Check it out if interested (either for .NET or Linux): www.eiffel.com/downloads/ cheers

      --
      C.Ambarian VP S&M, Eiffel SW
  63. Re:Who needs all these languages? by zapfie · · Score: 1

    It's less about Eiffel, and more about the attitude of a one-size-fits-all tool, or why use something high level when you can do it lower level. C, Java, Perl, Fortran, C++, VB, Assembly, ObjC, etc all have their place, and can fill different (overlapping needs). But it's silly to claim one language will be the best solution for all possible situations. Sure, you can do pretty much everything in C.. but it might be more time consuming, expensive, harder, or it might be faster, cheaper, easier.. depending on what you're trying to do. There are a lot of right tools for a job.. but there is no one right tool for every job, which is what the AC was claiming.

    --
    slashdot!=valid HTML
  64. Use TinyCC with SmartEiffel! by Per+Wigren · · Score: 5, Interesting

    If you're going to code in SmartEiffel, you should try using TinyCC instead of GCC while developing! TinyCC is an extremly fast and memoryefficient ANSI-C compiler that is 100% compatible with SmartEiffel! TCC generates code which is about as fast as "gcc -O2", but compiles almost 1000 times faster than "gcc -O2"!! I know these figures look unbelievable, but they are authentic! Just try it yourself if you don't believe it!

    oggy gexace # time gcc -O2 -o gexace-gcc gexace.c
    real 10m12.746s
    user 9m33.227s
    sys 0m4.897s
    oggy gexace # time tcc -o gexace-tcc gexace.c
    real 0m1.353s
    user 0m0.472s
    sys 0m0.061s
    oggy gexace # ls -l gexace-*
    -rwxr-xr-x 1 root root 1216938 Nov 29 18:27 gexace-gcc
    -rwxr-xr-x 1 root root 994200 Nov 29 18:27 gexace-tcc


    The gexace.c examplefile is from GOBO, generated by SmartEiffel and is about 2MB...
    When your program is ready to be distributed you can compile it using "gcc -O3 -mcpu=i686 -fomit-frame-pointer -ffast-math" or similar to make it run ~10% faster, but compilation may take hours instead of seconds...

    --
    My other account has a 3-digit UID.
    1. Re:Use TinyCC with SmartEiffel! by Anonymous Coward · · Score: 0

      Thanks for posting this.
      TinyCC is quite amazing - it compiles C code 16 times faster than GCC in my tests.
      This may be the "TurboC" of Linux C compilers.

    2. Re:Use TinyCC with SmartEiffel! by Daniel+Phillips · · Score: 3, Interesting

      try using TinyCC [tinycc.org] instead of GCC.

      Thanks for that. I grabbed the source, which fails to build (on linux) with:

      tccelf.c:382: `RTLD_DEFAULT' undeclared

      Supplying the missing definition gets it to build, then I was able to get it to self-compile just by supplying a -I to the gcc headers and a symlink to the build directory for the libraries (I like it when I can evade sudo make install easily). Yes, it's instantaneous.

      It's a recursive-descent one-pass compiler, i.e., inline code generation, as you might expect. There's little or no register optimization and no discernable global optimization, again as you might expect, so it's a slight exaggeration to say it generates code quality near the level of gcc -O2. The compile speed would way more than make up for this in the vast majority of development situations.

      Without inline assembly or support for gcc's weird array of special attributes, you couldn't compile much of the kernel with this, but maybe with a little tweaking you could compile module code.

      I'd like to see somebody take on the challenge of a tiny two-pass C compiler, with an intermediate parse tree. How much bigger would it be? Not much, and the extra time to build+traverse the tree would likely only add 20-30% to compile time, leaving it still several times faster than gcc (ever more so vs gcc 3.x). This design would open up the field for 'tiny global optimization', which would be fun to see.

      time gcc -O2 -g -Wall -m386 -malign-functions=0 -DCONFIG_TCC_PREFIX=\"/usr/local\" -o tcc_g tcc.c -ldl

      real 0m8.833s
      user 0m8.120s
      sys 0m0.140s

      time bin/tcc_g -I/src/tcc-0.9.14 -DCONFIG_TCC_PREFIX=\"/usr/local\" -o tcc_g tcc.c -ldl

      real 0m0.502s
      user 0m0.430s
      sys 0m0.040s

      --
      Have you got your LWN subscription yet?
    3. Re:Use TinyCC with SmartEiffel! by Daniel+Phillips · · Score: 2

      Oh, to be fair:

      time gcc-2.95 -Wall -m386 -DCONFIG_TCC_PREFIX=\"/usr/local\" -o tcc tcc.c -ldl

      real 0m3.058s
      user 0m2.680s
      sys 0m0.060s

      time gcc-3.2 -Wall -m386 -DCONFIG_TCC_PREFIX=\"/usr/local\" -o tcc tcc.c -ldl

      real 0m5.991s
      user 0m4.620s
      sys 0m0.050s

      i.e., tinycc does the job 6 times faster than gcc 2.95 does, and 12 times faster than 3.2. The tcc-compiled tcc takes 45% more time to compile itself than the gcc-compile version:

      time bin-tcc/tcc -I/src/tcc-0.9.14 -DCONFIG_TCC_PREFIX=\"/usr/local\" -o tcc tcc.c -ldl

      real 0m0.521s
      user 0m0.460s
      sys 0m0.000s

      time bin-gcc/tcc -I/src/tcc-0.9.14 -DCONFIG_TCC_PREFIX=\"/usr/local\" -o tcc tcc.c -ldl

      real 0m0.360s
      user 0m0.280s
      sys 0m0.030s

      Note: there's 4-5% variation in the various timings due to cache effects.

      --
      Have you got your LWN subscription yet?
  65. Fernando Poo question: by smittyoneeach · · Score: 2

    limited generics in a way that C++ can't even try to approach.
    Can't believe a five-digit user number is trolling, so could you expand on this point, por favor?

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    1. Re:Fernando Poo question: by Calroth · · Score: 1

      Say you want to create a generic shape_array which you can only put shape objects in.

      In Eiffel, you declare class SHAPE_ARRAY[G -> SHAPE].

      In C++, you can't restrict the generic parameter. So you have to stoop to checking it at runtime using RTTI...

    2. Re:Fernando Poo question: by smittyoneeach · · Score: 2

      I guess my understading of STL is way off. Assuming a hierarchy of objects, with, say,

      class vehicle {};

      class sedan : public vehicle {};

      class van : public vehicle{};

      I thought you could say

      std::vector<vehicle> carLot;

      and put all of the sedan and van objects you want in the carLot... Admittedly, I've done more with composite classes than inheritance in C++, so I'll lay by my dish now...

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    3. Re:Fernando Poo question: by HiThere · · Score: 2

      There are many nice features. Others have mentioned templates, and I must admit that I'm not real familiar with them, so perhaps they do provide a way to do part of what Eiffel does. But:

      Eiffel allows you to rename the procedure during the inheritance.
      Eiffel allows you to inherit twice from the same class, with renaming used to prevent collisions. This allows two "instances" (not really. We're talking class definition time here, not run time.) of the same class to be used in ways that are quite different.
      Eiffel allows you to undefine methods during inheritance.
      Etc.

      Eiffel's inheritance is nearly as flexible as Python's, and considering that Python classes can be modified at run time, that's quite a trick. (Well, Eiffel doesn't quite accomplish it, but it comes close.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    4. Re:Fernando Poo question: by J.+Random+Software · · Score: 2

      STL's templates work because they're completely generic. What you can't do is write a template whose type parameter must be a class derived from vehicle (so you won't call similarly-named methods from unrelated classes by mistake).

  66. Why not a GCC frontend? by AxelTorvalds · · Score: 3, Insightful

    I don't want to compile something in to C and then into object code. Why not an eiffel front end for GCC?

    1. Re:Why not a GCC frontend? by Anonymous Coward · · Score: 1, Informative

      1. Because RMS forbids it.
      2. GCC is a GPL'd program.

      A front end for GCC would make the front end also a GPL'd program. This has been hashed over a million and one times in the GCC mailing list.

    2. Re:Why not a GCC frontend? by J.+Random+Software · · Score: 2

      It looks like the SmartEiffel compiler proper is already GPL'd. Is redistributing the other files under GPL not allowed?

    3. Re:Why not a GCC frontend? by Anonymous Coward · · Score: 0

      If the licenses are compatible you could technically do it (and they appear to be compatible in this case), but RMS seems to discourage new GCC front ends for some reason that I do not quite understand. I think he believes if GCC's front end layer is made to be easy to use then commercial compilers may try to target GCC's back end. Take a look at the GCC archives for more information on this. It's really quite bizarre.

  67. Sather-K by haruchai · · Score: 2, Informative

    This may be of interest to you.
    http://www.info.uni-karlsruhe.de/~sather/dl. html

    I can't say how much development is being done on this as my German is very basic but it doesn't seem to be a dead project.

    --
    Pain is merely failure leaving the body
  68. It's not about using all the languages! by Fefe · · Score: 3, Insightful

    It's about learning a new point of view, it's about expanding your horizon.

    I don't use Eiffel, but learning it taught me some concepts I didn't know before.

    And that's why we need even more new languages. Life (and work) is about learning. If you stop trying to learn you might as well drop dead.

  69. Re:The ultimate app? by Anonymous Coward · · Score: 0
    that's pretty funny.

    I'm a paid member of AdultFriendFinder too. I didn't like the idea of pying at first (hey, i don't pay for an OS, why should i pay for a piece of ass?!), but if you think about it, you can get a 3 month membership for less than the cost of a decent meal, and the odds of getting your dick wet are much better.

    I've met cock-sluts, bored housewives, wives wanting revenge on heir husbands/boyfriends for cheating, etc, girls looking for a date, and girls with "nice personalities" (Read: on the slim-slow program).

    Well, gotta go, I'm meeting Kathleen tonight. She's engaged but her fiance isn't a real man or something.

  70. Free Linux version of EiffelStudio by Admiral+Akbar · · Score: 3, Informative

    The free version of Eiffel Studio for linux is available here.

    This is an example of an extremely well written Gtk application and provides gtk bindings as well as multi-platform libraries that allow applications to run on, if forced to, Windows with absolutely no change of code yet retaining full platform look and feel. Very cool stuff indeed

    --
    -- You see what happens when you have fun with a stranger in the Alps?
  71. more french slander by solferino · · Score: 3, Insightful
    Yes, but since Eiffel is French, it's called the Towers of Dien Bien Phu and bails out after 3 recursions.


    more french bashing by (i assume) an american poster which is moderated up on a site which has a largely american readership

    why is this constant painting of the french as cowards so supported by americans? is it perhaps because france is one of the few countries that doesn't kow-tow to american imperialism?

    i try to seperate the actions of the american government from the general american ppl, believing that they are as much victims of the corrupt machinations of the said government as the rest of the world, however constant puerile slandering of non-americans such as this causes me difficulty in maintaining my discrimination

    in case you were wondering : i am australian of anglo-saxon cultural background

    1. Re:more french slander by Anonymous Coward · · Score: 0

      Nah it's more a WWII thing

    2. Re:more french slander by rmohr02 · · Score: 1

      Well, it's more like thsi: we had to save their ass. Twice.

    3. Re:more french slander by Anonymous Coward · · Score: 0

      Ah yes. simplistic interpretations of history. and yes, I'm american too.

    4. Re:more french slander by bajo77 · · Score: 0, Troll

      Actually we don't care about ppl "kow-towing to american imperialism". We just think french ppl are stupid, and rightly so.

    5. Re:more french slander by Sivar · · Score: 3, Offtopic

      Not unlike they did for us in our early history.

      The U.S., of which I am a citizen, is the only country in the world which has decided to make itself the world's police force.
      Defending other countries is bound to happen in-between oil rescues and terrorist witch-hunts.

      France, BTW, is one of the most self-sufficient countries in the world. The coordinate system used to display graphics on your monitor was invented by the French philosopher and mathematician Rene Descartes--also the creator of analytical geometry, the precursor math which made Calculus possible.

      Why don't you try to not portray Americans as ethnocentric, poorly educated bigots, because that reputation is passed along to more people than yourself. I am sure that was not your intention, but intention and interpretation are often completely different.

      --
      Computer Science is no more about computers than astronomy is about telescopes. --E. W. Dijkstra
    6. Re:more french slander by maxpublic · · Score: 2, Funny

      Well, the French might not be cowards, but according to a recent study they have less sex than any other Western European country. Certainly doesn't do wonders for their reputation as lovers.

      Guess that's a load of hooey too.

      Max

      --
      My god carries a hammer. Your god died nailed to a tree. Any questions?
    7. Re:more french slander by Anonymous Coward · · Score: 0

      Mod parent up as "Funny", "Informative" and "So True". They are also rude and piss in the streets.

    8. Re:more french slander by Anonymous Coward · · Score: 0

      Because they suck?

    9. Re:more french slander by Anonymous Coward · · Score: 0

      why is this constant painting of the french as cowards so supported by americans?

      Ask Marshall Petain!

    10. Re:more french slander by Anonymous Coward · · Score: 0

      Yep and Americans are heros if they die for there
      bloated country. I wonder how Bin Laden call his deads?

    11. Re:more french slander by jejones · · Score: 2

      We just think french ppl are stupid, and rightly so.

      <sarcasm>Yup...Cauchy, Galois, Laplace, Poincare, didn't none of 'em know diddly.</sarcasm>

    12. Re:more french slander by Anonymous Coward · · Score: 0

      The U.S., of which I am a citizen, is the only country in the world which has decided to make itself the world's police force.
      Defending other countries is bound to happen in-between oil rescues and terrorist witch-hunts.


      Don't want to make this political, but the US is NOT a police-force. You think your country is perfect and all others should be like you. But you're just a country with to much blood on your hands.

      The ONLY policecorps in the world is the United Nations (ever heard of them?) When you're born in Asia or the Middle East, the US is largely responsible for mosst of the shit you have to deal with.

      A policeforce has to follow strict rules made by higher placed politicians (in this case the UN). If they start making their own rules, it no longer is a policeforce, but a big criminal gang. Like Al Quida; a group of people with to much money using force and violence to make other people do what they would not have done out of free will.

      All you people thinking the US is the greatest coutry in the world should read some modern history. The state of the world today, with poverty, pollution, hunger and all these wars, is largely thanks to the US.

      The World thanx you. NOT!!!

    13. Re:more french slander by Anonymous Coward · · Score: 0

      why is this constant painting of the french as cowards so supported by americans? is it perhaps because france is one of the few countries that doesn't kow-tow to american imperialism?

      No. It's because they are cowards.

    14. Re:more french slander by Anonymous Coward · · Score: 0

      Well I would recomand you to check your numbers before posting such offtopic insanity :-) http://www.durex.com/uk/sexsurvey/globalsexsurvey2 002/global_sex2002_freqb.htm

    15. Re:more french slander by Anonymous Coward · · Score: 0

      the right url is :

      http://www.durex.com/uk/sexsurvey/globalsexsurve y2 002/global_sex2002_freqb.htm

    16. Re:more french slander by DrXym · · Score: 3
      Nonsense. The US is only the world's police force when it is in its own interests to be. There have been plenty of conflicts where the US has conveniently looked the other way or marginalised its involvement when the region in question isn't rich in oil or strategically important.


      As for other people not policing, that too is nonsense. Lots of countries including neutral ones such as Ireland send peacekeeping forces under the UN flag, as well as NATO forces. Even the likes of France has troops in Africa doing peacekeeping work at the moment.

    17. Re:more french slander by Anonymous Coward · · Score: 0

      maybe one should take a refresher course of WWII history.

    18. Re:more french slander by Anonymous Coward · · Score: 0
      Well, it's more like thsi: we had to save their ass. Twice.

      Popular American history tells itself that it saved France in WWI. This is totally untrue. America came too late and in too small numbers to effect the outcome. Many including Winston Churchill, believed American declaring war in 1917 ( three years after Britain, France, Australia, Canada, Italy, New Zealand, South Africa....) extended the war as German increased their field deployments not only in France but in other theatres were there were no American forces deployed such as Palestine. Aircraft in Palestine went from 12 to 100 in late 1917 as part of the German forces expansion.

      What won World War I was the Royal Navy and the French Army. The Royal Navies blockade had Germany starving in 1918, when the German sailors rioted it wasnt because America was moving troops to the front, it was because they hadnt been paid and were hungry from lack of rations. In 1918 German industry was heavily effected in terms of lack of primary resources such as petroleum products and high tech alloys. British and French aviation industries were producing 400 hp engines in 1918, Germany could only manage 185 hp engines. Aviation was the high tech of the day and the first effected by shortages of special raw materials.

      One the Western Front the British Army only managed a small section of the front lines in Northern France and through Belgium. The French Army managed a front line from northern France through to the Swiss Border. This shows in the French mobilization numbers which were much larger than any other nation. Germany had several offensives that were aimed at capturing Paris, several of them came close enough that Paris was shelled when the German Army got close enough. In each case the French Army held. In essence the French Army ensured Paris was unobtainable and that the trench warfare on the western front would be a stalemate. With a stalemate and the Royal Navies blockade Germany would slowly starve and have its ability to maintain a war machine removed.

      That is why Germany lost WWI and why America mobilizing 3.5 million troops in the latter part of 1918 had no effect on Germany losing the war. The war was lost in December 1916 as British, Spanish and French engines were over 200 hp and German industry was only at 140hp. That was where the blockade first started taking effect. America didnt declare war till a year later.

      The Royal Navy and the French Army won WWI. WWII is a different matter, but in World War I America made no difference on the eventual outcome as the outcome was certain a year before America declared war.

      omici--

    19. Re:more french slander by Anonymous Coward · · Score: 0
      why is this constant painting of the french as cowards so supported by americans?
      [...]
      i am australian


      Because it's funny, you beer-drinking, barby-shrimp-eating, facial-hair-wearing convict!

      And yes, I'm from the US, I speak only one language, and I own a whole closetfull of guns, at least two of which are loaded.

      OF COURSE nobody is actually going to act on some dumb stereotype they found on slashdot, unless maybe they're a Pollock or something---those guys are idiots.

    20. Re:more french slander by ecloud · · Score: 2
      The coordinate system used to display graphics on your monitor was invented by the French philosopher and mathematician Rene Descartes
      Figures. If it was an English-speaking dude at least it would have been a first-quadrant coordinate system rather than fourth-quadrant.
  72. Why by litewoheat · · Score: 2

    While trying to, in any way to be a prick... Why is Eiffel cool? Where would it be an alternative to Java/C++? Serious replies (if any) please...

  73. I can feel the carpal tunnel pain already... by aquarian · · Score: 2

    Damn that's a lot of typing!

  74. Re:Yes another one! by Anonymous Coward · · Score: 0

    You like C, but not C++? Bwaaa haaha ahhaa ahaaa.

  75. Programming Environment for Eiffel by willamowius · · Score: 5, Informative

    For a nice IDE for Eiffel you should get the Eiffel extension for the SNiFF+ environment

    http://www.willamowius.de/eiffel.html

    There are free versions of SNiFF+ for projects up to 200 (?) classes which should be ok for starters.

  76. This is more of a philosophical issue ... by curri · · Score: 1

    Correct me if I'm wrong ...

    C++ has templates, which implement generics. In C++ templates are limited only by what they use (so if a template function calls the foo method of its parameter, then the parameter has to be of a class that implements foo). This is more like Haskell or ML do when inferring typing (you can not restrict types either).

    Now, how is what you mention in Eiffel different to not using templates and just declaring a normal parameter of class shape ?

    Or even (this should work now in C++, but maybe the syntax is wrong :)
    typedef shape_array array;

    1. Re:This is more of a philosophical issue ... by J.+Random+Software · · Score: 2

      Presumably that generic can only be used with shape or derived classes. That way when you call foo you know you're getting an override of shape's foo rather than some unrelated method with the same signature.

    2. Re:This is more of a philosophical issue ... by plumby · · Score: 2
      OK. I think you're wrong (or I've misunderstood you). The C++ STL (standard template library) works by type, not by method signature, e.g.,

      vector <Shape> coll;

      declares a variable called "coll", that contains a vector which can only contain objects of type "Shape". It does not allow any object that has the same methods as "Shape" to be included, just ones that are actually derived from "Shape".

    3. Re:This is more of a philosophical issue ... by J.+Random+Software · · Score: 2
      That's just instantiating a totally generic template--it'll work with any type that has default and copy ctors and assignment.

      Suppose you wanted a homogenous collection that's aware of the semantics of class shape. bounding_box<rectangle> and bounding_box<ellipse> should be allowed but bounding_box<company> should not, even if they all happen to have location() and size() methods. In C++ you can't specify that instantiating the template for a class that isn't derived from shape is an error, without some ugly circumlocutions.

    4. Re:This is more of a philosophical issue ... by Ayende+Rahien · · Score: 2

      template
      class ShapeArray
      {
      };

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    5. Re:This is more of a philosophical issue ... by Ayende+Rahien · · Score: 2

      template <bounding_box<shape> T>
      class Bar
      {
      };

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    6. Re:This is more of a philosophical issue ... by J.+Random+Software · · Score: 2

      That doesn't do anything to prevent you from instantiating bounding_box<company>.

  77. Re:Yes another one! by pHDNgell · · Score: 2

    You like C, but not C++? Bwaaa haaha ahhaa ahaaa.

    I don't like C, but I occasionally write apps in it. I don't mind objective C. I don't understand why someone must like C++ just to like C, though.

    --
    -- The world is watching America, and America is watching TV.
  78. Re:Yes another one! by scotch · · Score: 2
    Well, if you like objective C, then you obviously like to do things in an object oriented fashion. C++ makes this much easier to do than C, so I don't understand why one is acceptable and the other isn't

    If you write large scale programs in C, you'll eventually find yourself inventing ways to handle things that the C++ language does for you. C++ does them better and makes it easier on the programmer.

    If you're just writing small things in C, you can always do the same thing in C++ (almost a superset, and all), but even there, C++ provides some features that can make some small programs much easier to do.

    --
    XML causes global warming.
  79. What about threading? by RockyJSquirel · · Score: 3, Interesting

    Last time I checked (years ago), the Eiffel's garbage collector didn't handle objects shared between different threads.

    Does anyone know whether this was fixed and/or how what SmartEiffel's garbage collector is like?

    Rocky J. Squirrel

    1. Re:What about threading? by buggered · · Score: 1

      There are various attempts at it (I did one myself), but last I checked you had to use the boehm gc.

  80. small TinyCC dynamic code generation bug fix by Anonymous Coward · · Score: 0

    The TinyCC example program libtcc_test.c which dynamically compiles C code from a string and executes it does not work due to an small bug in TinyCC.
    Here is the patch to correct it:

    --- tcc.c.orig Sat Dec 7 02:09:04 2002
    +++ tcc.c Sat Dec 7 02:09:37 2002
    @@ -8152,6 +8152,7 @@
    buf = tcc_malloc(len + 1);
    if (!buf)
    return -1;
    + strcpy(buf, str);
    buf[len] = CH_EOB;
    bf->buf_ptr = buf;
    bf->buf_end = buf + len;

    I'm too lazy to send it to the TinyCC mailing list.

  81. Speed by 0x0d0a · · Score: 2

    For a "modern", safe language, SmartEiffel produces very fast code. I don't know of any other imperative language other than C and C++ that beats it.

    1. Re:Speed by rplacd · · Score: 2

      Both the free and commercial Dylan compilers produce code that reaches C/C++ speeds.

      Dylan is OO from the ground up, and supports a variety of programming styles, including fp, inperative and, of course, oo.

  82. Precisely by 0x0d0a · · Score: 2

    This is very true.

    If we went by the "hello world metric", Perl would probably be consider the best of all programming languages.

    From what I've heard, the majority of eiffel developers do very large software applications.

  83. Re:Who needs all these languages? by master_p · · Score: 1

    I've seen this type of comment ("why use C, assembly can do it") every time there is a thread about a programming language.

    Consider that the jump from assembly to C boosts productivity a great deal, but the jump from C to EIFEL or something else doesn't boost productivity that much.

    A good analogy is the CPU speed jump from 33 MHz to 66 MHz and the jump from 1000 to 1033 MHz: the jump from 33 MHz to 66 MHz gives an 100% speed boost, whereas the jump from 1000 to 1033 MHz gives a small boost in speed.

    It is the same with programming languages: the jump from assembly to C gives a big boost in productivity, whereas the jump from C to Java/Eiffel/whatever does not give such a big increase.

    When it comes to C, it's all about the libraries. Unfortunately, the standard C libraries are inadequate, because they where written over 30 years ago. There is no standard GUI library, no standard graphics library, no standard sound library, etc...Java, for example, wins over C at the GUI level.

    The only real difference of Eiffel to Java or C/C++ is the programming-by-contract methodology. But this is easy to do in other languages: just check everything you need to check before the actual code of each function. In other words, pre-conditions can be checked manually. If that foo* pointer is NULL, you should have checked it.

    It's nice though that Eiffel forces the programmer to thing about pre-conditions. Just like ADA, where each new type has a specific range of values and the programmer is forced to provide these ranges.

    Personally, I am so efficient with C++ and Qt, I don't need anything else. It covers my needs 100%.

  84. K & S by jefu · · Score: 2
    For real fun, everything can be expressed using only S and K combinators. See unlambda (just one of many references).

    Now there's a language that needs a .net binding. But even so there are others that need integration with .net first. Primary among these (of course) must be INTERCAL especially the revised version with the "COME FROM" statement.

  85. What about Ruby? by Anonymous Coward · · Score: 0

    What about Ruby?

  86. I disagree by jtdubs · · Score: 2

    Actually, you can judge a language from it's "Hello World." The books How to Think like a Computer Scientist comment on this as well, not that I endorse those books.

    A "Hello World" program demonstrates very clearly how "simple" a language is. How much syntax and how much structure you have to use to get even the simplest of things accomplished. It also usually demonstrates the difference between an optionally interpreted language and a purely compiled one, as compiled languages, on average, tend to require use of more syntax to get up and running.

    As an example, Java.

    public class HelloWorld {
    public static void main(String[] args) {
    System.out.println("Hello World!");
    }
    }

    It's hello world program involves both a class definition and a method definition. Neither of these things are relavent to the goal of printing a string, but Java makes you go through the motions anyway. Java forces you to use OO for even the simplest of problems, and this much is evident from looking at it's solution to the simplest of problems, printing a string.

    Perl, Python and other optionally-interpreted languages tend to be far simpler to bootstrap, allowing for things such as:

    print "Hello World!"

    However, this syntax makes you use a function to print the string, evidence of an imperative language rather than a functional one in this case. Although, to be fair, Python is very 'functional' and actually can do without the print statement. In a functional language in which you deal with expressions rather than statements, all values are self-evaluating and allow for "code" like the following in most functional languages:

    "Hello World."

    This string, being a value, evaluates to itself in most functional languages including, Python, Lisp and others, and results in the value being displayed back to you. If you want to be pragmatic about it, as this code won't do anything if compiled in a functional language (most of 'em anyway), you can change it to something like:

    (princ "Hello World") ;; lisp
    or
    print 'Hello World' # python

    This throws back to the notion of function calls, which are evidence of compilation in the case or most functional languages.

    You can learn a lot about a language from looking at it's Hello World. Mainly it simplicity, or lack there-of in the case of languages like Java or, yes, Eiffel.

    Eiffel makes you digest concepts like class creation and features (methods in this case), along with a whole lot of syntax, to accomplish the simple goal of printing a string.

    The main problem with any syntax being forced on you, aside from making it more difficult to parse, is that it limits the languages flexibility in a practical rather than theoretical sense. You could practically never write a macro system as astoundingly powerful as the one found in most Lisp dialects in a language like Java or Eiffel. Too much syntax. Not enough closure.

    While having a lot of required syntax won't prevent a language from being good at real-world tasks, in fact quite the contrary for reasons I won't go into here, it does limit it's simplicity and, in my mind, beauty.

    Justin Dubs

    1. Re:I disagree by Per+Wigren · · Score: 1, Troll

      But the printing-part of the Eiffel example is just
      print("Hello World%N") or io.put_string("Hello World%N").. That is just as simple as C or any other language..

      The class HELLO; creation make; ... is as you said, class-creation "headers" and the like.. In an example such as "hello world", that stuff is 95% of the code, while in a large class it is at most 1% of the actual code, and it actually makes the code more readable in the long run...

      --
      My other account has a 3-digit UID.
  87. What I would like to know is... by henshin · · Score: 2, Insightful

    Why should we use it?
    Im not trying to be a smartass by any means, or discredit the "ease-of-use" etc etc. I program in c (Windows and Linux) because it is widely used, and widely supported. Will this become ..dare I say.. mainstream? There are plenty of languages out there with plenty of advantages and applications but what does this bring to the table? Do any of you think this will be the next c/perl/php/?

    --
    I have acorns.
  88. Eiffel (& SML) by C+A+S+S+I+E+L · · Score: 3, Insightful
    Eiffel is a very underrated language in the free software community for some strange reason..


    One possible reason might be (correct me if I'm wrong) that for a long time, Eiffel was supported by a single vendor with a closed-source, commercial, proprietary compiler. Who is going to commit to a brand new programming language with a single vendor?

    From this point of view, an open-source compiler is ideal. Perl and Python are effectively single-vendor (i.e. single development team) but at no risk.

    Aside: at the time (commercial) Eiffel first appeared, we were working on a Standard ML language and compiler (in fact there were several different development teams building compilers, since the language had a formal semantics and definition). The New Jersey compiler was open-source from the start (around, oh, 1987?), and was self-compiling, generating native code for 680x0, Alpha, Vax and Mips architectures.

    This was around the time that OO programming was getting trendy, and SML, despite being very-high-level, strongly-typed, memory-managed, having a superb modules system etc., wasn't really OO and so fell out of fashion. It's still around, though, and still being developed (see the link above).

  89. Opps by Ayende+Rahien · · Score: 2

    Should be:
    template <shape T>
    class ShapeArray
    {
    };

    --

    --
    Two witches watched two watches.
    Which witch watched which watch?
    1. Re:Opps by J.+Random+Software · · Score: 2

      That declares a template whose parameter is a value of type shape, not the name of a type derived from shape. And it's only allowed if shape is an integral, enum, pointer, or reference type. Class instances can't be template parameters because the linker can't be expected to call operator == to determine which instantiations are equivalent and should be merged.

  90. Responsible for your shit!? by Anonymous Coward · · Score: 0

    WTF!?

    If YOU can't eat, drink beer or eat pork, why is it america's fault?

    If you can't vote [well the Iraqi's did, for all the good it gave them] why is it america's fault?

    How'd you get on the internet? Doesn't your government restrict that stuff -- think China. I guess that's America's fault too?

  91. Documentation? by Cro+Magnon · · Score: 2

    One problem with a niche programming language is finding good documentation for it. Is there a good resource that tell you everthing you want to know about the language? Preferably online & free (beer), since there's almost zero chance of ever using it on a job.

    --
    Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
  92. Self selecting samples. by TheLink · · Score: 2

    Sure the Eiffel coders did better. But that's a self selecting sample right?

    It's likely that the average befunge programmer would do better than the average programmer on many tasks, but that doesn't make befunge a good language ;).

    Yeah Eiffel sounds good. Design by Contract sounds good - independent ways of constraining what a program can do = higher chance of it doing what it's supposed to do and only that.

    --
  93. let these jokes die by nikolas · · Score: 1

    Its always sad and annoying to see jokes that werent even half funny fifty years ago still proliferated by a generation that
    1. should know better, and
    2. does not actually relate to the pun of the joke at all.

    it also is sad to read all these constant efforts to compare cultures here on slashdot. Especially if the rating of cultures is done by europeans who really should be aware of the fact that (imho) there is no way and no use in actually comparing or rating cultures, especially not without even looking at the historical reasons for cultural developments.

    Put these jokes to rest, for chrissake!

  94. Ugg by Anonymous Coward · · Score: 0

    Eiffel is one of those languages you are taught in school to round you out. 99.999% of people will never see or use it again. You'll forget it's syntax a week after final exams. You will most likely never see or use it again. The real world uses C and all of it's derivatives.

    Any programmer that does not know the machine language of their computer is not a real programmer! End of story. All code should be in assembler. All other languages are just a convenient way to express in machine language.
    You don't even need a compiler. Just use a hex editor or DOS debug.

    Call me a troll if you like but it's the god-damn truth if it ain't C or assembler it's shite.
    It doesn't mean Eiffel is shite. I'll explain just wait. I'll let COBOL slide too. COBOL was the mainframe. Kinda like Visual Basic is on Windows. You use them. Not real languages. But you make a living doing it. *Any language you get paid to program in is good for you*. But if ain't C or assembler it's still shite!