Slashdot Mirror


Eiffel as a Gnome Development Language ?

Thomas Delaet writes " This article is a short evaluation of Eiffel as a language for developing the core gnome desktop platform. Last month, there has been a heavy debate about a successor for C/C++ as the language of choice for developing the core gnome desktop components in. The debate has mostly focussed around C#/Mono and Java. This article tries to summarize the different requirements for a gnome development language and shows how Eiffel fits in these criteria."

9 of 397 comments (clear)

  1. Python by richie2000 · · Score: 3, Interesting
    Might as well use Python, then Gnome can use the Zope database for its filesystem, Plone to manage the calendar, document workflow and so on, and it's a sure fit with Gentoo. Well, Gentoo begins with a G, anyway. And portage uses Python. Am I right or am i right? Right!

    Eiffel, indeed... What are the reasons for switching and won't it be totally painful to switch language NOW? Maybe the article author has been laid off from Ericsson, I believe they used (use?) Eiffel a lot in-house.

    --
    Money for nothing, pix for free
  2. Another alternative is D by HiThere · · Score: 4, Interesting

    Digital Mars D currently runs on Linux and MSWind. It doesn't, AFAIK, run on the Mac yet, but there's no intrinsic problem.

    I like Eiffel a lot more than C, but I like D better than Eiffel. D is like C++ that got it right. (Well, it was designed decades later, so that's not too surprising.) D links easily with C code. Much more easily than Eiffel does. D doesn't have the wide variety of implementations that Eiffel does. Eiffel suffers from the problem that each compiler comes with it's own set of libraries. (It also suffers from functions not being overloadable, but that's on purpose. Still, I count it as a definite drawback to require different operators to multiply integers, floats, and I*F and F*I -- all require different operators in Eiffel, that that's just the start of the problem.)

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  3. Eiffel would be a inferior choice by aminorex · · Score: 3, Interesting

    Sather whomps Eiffel on design and openness.
    OCAML whomps all of the above on design and codability.

    C# would be sheer madness. Java is excusable
    because of GCJ, but if you're looking to maintain
    code long-term, OCAML will allow you to avoid
    spaghetti objects, where aspects are spread over
    50 different classes.

    --
    -I like my women like I like my tea: green-
  4. Re:performance is ALWAYS open for debate by CRCulver · · Score: 3, Interesting

    -C is not object oriented

    No, but certainly libraries like GTK2 allow the programmer to perceive the library as object-oriented. Sure, things are going on deep down, but the level the developer actually sees is pretty OO.

    -Strict ANSI C is very limited as compared to platform-specific functions and libraries

    Who cares about "strict ANSI C"? The latest ISO C standard came out in 1999.

    -C does not have Java's virtual machine features like garbage collection

    C is perfectly capable of supporting garbage collection.

  5. Objective-C? by skurken · · Score: 4, Interesting

    How about it? It's good enough for Apple and it's easily integrated with existing C and C++ code.

    And personally, it think it's sort of UN*X-ish in it's attitude. The way you can fiddle with messages almost makes you feel like playing with a UN*X-installation as root.

  6. I don't think so by hak1du · · Score: 4, Interesting
    Last I looked, SmartEiffel...
    • lacked dynamic loading of shared libraries
    • lacked separate compilation
    • lacked usable Gnome bindings
    • lacked reflection
    • failed to come even close to implementing the de-facto standard set by Eiffelstudio (no compatible thread implementation, no method pointers, incomplete library implementation)
    • failed to come even within an order of magnitude of equivalent C++ code in terms of performance

    Furthermore, Eiffel is hardly an open language standard in the same sense as C, C++, or C#; the evolution of the Eiffel language has been driven by Meyer's whims, not by any kind of independent community or standards body. The language definition had some serious problems (requirement for global type checking, covariance, lack of method pointers, etc.), some of which remain. Eiffel could have been a winner, a worthy successor to Pascal and Modula-2, back when those were still fashionable, more than a decade ago before Java, but its proponents blew it big time, both technically and business-wise. Let's not beat a dead horse.


    In my opinion, C# is, in every way, a better-designed language than Eiffel, C# has better open source implementations, better open source libraries, better C/C++ interfaces, and more widespread industry acceptance.

  7. Re:A new hot topic? by boelthorn · · Score: 3, Interesting

    I am really pleased to see a major software development community leaving the C-like realm of programming languages. While C is still nice as assembler substitute, I never could convince me that it is useful for general application development. Same goes more or less for C++/Java, though I do not have much exposure to them myself and will try to keep it that way.

    There are really neat languages to successfully code nice programs and all the C-like ones are clearly not belonging into that group. Being a Common Lisp zealot I strongly prefer its multi-paradigm style to anything else for most tasks, but I also see the benefit in using OCaml, Eiffel and other languages with way more abstraction than any C-like language so far manages to convey to the ordinary programmer. Having proper closures, and first-class functions, and a not-limiting OO implementation increases productivity by a order of magnitude.

    Ok, but one must face reality: As software developer eventually you will have to code something in say Java, but Lispers have now a real advantage: LINJ
    For now I can use most of the expressivness of Common Lisp and still can pretend to hack Java. :-)

  8. Realistically, Java by Animats · · Score: 4, Interesting
    OK, you're doing a desktop. Mostly GUI elements, no hard real time requirements, lots of pointers, many developers.

    Java seems appropriate here, if you can get the performance. It's a memory-safe language, and you don't have to obsess on memory management correctness. Garbage collection is acceptable. There's a big pool of Java developers. There's a hard-code open source compiler. Microsoft doesn't control the language or the environment.

    Whether the rather clunky Java libraries add negative value is something you have to think about, hard. The language itself is OK.

  9. It's about time. by Kickasso · · Score: 3, Interesting
    It's about time OSS developers switch to an Object-Oriented language with a sound typesystem, a sensible implementation of multiple inheritance, a non-broken collections library, a reasonable threading model, and, last but not least, with multiple implementations of an open standard driven by an independent body.

    In short, a language which is not Eiffel.