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."

20 of 397 comments (clear)

  1. Eiffel is overly verbose by Anonymous Coward · · Score: 2, Informative

    That's the problem with languages developped first on paper (Ada being another, extreme). Just use Ocaml.

  2. Re:Python by GnuVince · · Score: 3, Informative

    No, Ericsson uses Erlang, a functional, concurrent programming language.

  3. STL by Anonymous Coward · · Score: 4, Informative

    Most of the big complaints about the security of C++ come because people have little experience with STL and use their own proprietary container classes. In reality STL has given C++ a new life. C++ can be as security safe as C# or java if a comple of simple programming techniques are used: use the STL object classes--they are fast and safe though they require training to use effectively (Scott Meyers' Effective STL is a good start), use garbage collection or register major components (similar to what Mozilla does) to minimize memory leaks, and use exceptions safely (knowing the effect of what construction and destuction of objects will have when the exception is thrown). There really isn't a need to reduce the number of programmers and eyes by switching to Eifell. Just make sure everyone is trained to operate C++ to its full potential.

  4. Re:A new hot topic? by GnuVince · · Score: 3, Informative

    Oh, I forgot to mention, C# does not alienate Windows developers and independant software vendors, they don't need to learn new languages and new libraries to be productive under Linux. This is another point in favor of C# and against Eiffel

  5. Re:A new hot topic? by AKAImBatman · · Score: 3, Informative

    Interestingly enough, the latest versions of Java come with a new Look and Feel for Swing. The GTK+ look and feel hooks into GTK+, and makes your Swing application look and behave just like all your other GTK apps; even if you change your skin! Thus one might argue that Java is a perfectly acceptable GTK+ development language. :-)

  6. Re:Why the fuck by arvindn · · Score: 2, Informative

    RTFA. The discussion is about what to code the core stuff in, not about forcing a language on everyone else. And C is starting to show its age, even for doing the core stuff, in case you've been living under a cave.

  7. Re:Eiffel would be a inferior choice by hak1du · · Score: 3, Informative

    Sather whomps Eiffel on design and openness.

    Yes, but Sather, unfortunately is pretty much dead. So is another great language, Modula-3.

    OCAML whomps all of the above on design and codability.

    Not quite. I love O'CAML, but its syntax is too tricky for mainstream programmers and it lacks some important features (foremost, good support for efficient numerical programming).

    Java is excusable because of GCJ,

    Sun has complete control over what is and what isn't Java (they own the trademark, the specifications, and lots of patents). Gcj isn't Java, and if it were, it would probably violate some of Sun's intellectual property.

    C# would be sheer madness.

    Why? C# is an open, non-proprietary standard and a fairly decently designed language. Mono is an open source, high-quality implementation of C# with a full completement of open source libraries. Mono and its open source libraries are completely unencumbered by Microsoft or Sun patents, and they are based on APIs OSS developers already know well (Gtk+, Gnome, etc.). (Mono also happens to have a separate set of .NET-compatible libraries but if you are an OSS developer, you shouldn't use those.)

    If you are looking for an open language with plenty of open source libraries, an efficient open source implementation, and no legal strings attached, C# is pretty much the only game in town right now.

  8. Re:Pointless by WeiszNet · · Score: 2, Informative
    Your point that _just_ another layer of abstraction doesn't introduce anything worthwhile has been answered by other people. (Dude, why don't you program in assembly, or brainfuck, or whatever? :)

    For what it's worth, please make a distinction between C++ and C, they are two very different beasts. Two of the most common Eiffel compilers ISE Eiffel and SmartEiffel do compile to C code, not to C++ code. You probably refered to one of those when making your claim that Eiffel compilers generate C++ code (which is a false statement). Also please note that conceptually an Eiffel compiler can generate assembly code as well. In fact VIsual Eiffel does it. And ISE Eiffel does compile to Microsofts .Net byte code as well.

  9. Re:I don't think so by hak1du · · Score: 3, Informative

    Once open source software becomes dependant on C#, Microsoft will pull out their submarine patents and start shutting down open source projects. [...] Even if the ECMA demands Microsoft license their patents under ECMA standards,

    ECMA not only demands RAND, they first of all demand disclosure of patents. Therefore, there are no "submarine patents"--the set of patents related to ECMA C# is well known. Furthermore, any patent enforcable on ECMA C# would have had to be filed at most a year after publication of the first draft and would be public by now, so even if Microsoft was lying through their teeth, we know by now the complete set of patents that could possibly be relevant.

    Claims like yours that there are some mystery "submarine" patents related to ECMA C# are pure FUD.

    Microsoft is not stupid. They didn't ask Ximian to use C# for nothing. They have something planned.

    I see: so, according to you, the reason people are working on Mono is because Microsoft "asked" them. And, according to you, everybody is stupid except for Microsoft: stupid people investing their time in Mono, stupid companies investing millions in it, etc.

    Dream on. The Mono developers are exercising an exruciating amount of care to make sure they have their legal bases covered. One only wishes other OSS developers were so careful.

    What you should really worry about is what happens to all those OSS Java projects as Sun either goes out of business or gets more and more into bed with Microsoft. You see, while Microsoft clearly doesn't own ECMA C#, Sun owns the Java platform and large chunks of its implementation, with no free alternatives.

  10. Ada? by Anonymous Coward · · Score: 1, Informative

    What about ADA?
    Wasn't it developped with the express purpose of unifying development languages under one standard? I is widely deployed already, and has native support for all the higher-order functionnality needed from an application-level language

  11. How about ADA? by burbilog · · Score: 2, Informative
    Yes, it's difficult at first, but when you learn the ropes it's the best language around. I wrote some utilities in Ada for my company (nobody cared how these are written, it was purely my initiative) and know what I'm talking about.

    Gtk bindings for Ada DO exist.

  12. Pascal by ffallen · · Score: 2, Informative

    Ok. I know I'm going to get crap for this, however, Pascal is a good language that is easy to learn, readable, and efficient. Most people complain that its a "teaching language" and is not "industrial strength" however, tell that to the embedded programmers who still use it. Some Pascalisms, I agree are fairly annoying, but why not update the language instead of defining an entirely new one. There are at least two open source Pascal compilers (GNU and FreePascal) so why not make some efforts in bringing those two languages up to speed with some of the features that everyone is griping don't exist in this language or that language? Eiffel is arcane, but does have some useful features that others lack. However, I'd much rather have a language which is readable, efficient, well known, and available for many platforms. Lets work with what we have. Too many damn languages are being invented rather than concentrating on what we have and making it *right*.

  13. Re:Python by N1KO · · Score: 2, Informative

    What do you mean? All three use bytecode interpreters. Which makes them slow and they consume lots of memory. C++ is faster, more popular and bindings for other languages easier to have than with C#/Java.

    So if anything were to replace C for the core libs, it would be C++. Honestly, performance on the desktop isn't that great with linux. I'll wait to see if Xorg can make the X server better before I start running everything under Java.

  14. Re:A new hot topic? by Mithrandir · · Score: 2, Informative

    If the program is written by someone else, then you don't really have an option on changing it without getting into some serious hacking (ie writing a wrapper class for their application that changes the default L&F before starting the real app).

    If you want to see what is available on a platform, have a look at the javax.swing.UIManager class and specifically the getInstalledLookAndFeel() method. This will give you a list that you can then drop into a menu, print out to a command line or anything else you care to do. If you're builing an app that is supposed to be cross platform, then specifically setting a L&F is bad design. What you should use is

    String name = UIManager.getSystemLookAndFeelClassName()
    UIManager.setLookAndFeel(name)

    In this way you'll always get something that approximates the local widget set look, regardless of whether you are running on Win32, Linux, Solaris or anything else.

    --
    Life is complete only for brief intervals in between toys or projects -- John Dalton
  15. Re:Legislating nature by OneEyedApe · · Score: 2, Informative

    (eq 'lisp 'scheme)
    NIL

    or to put it in plain English:
    Common LISP is not Scheme

    --
    Life sucks, but death doesn't put out at all....
    --Thomas J. Kopp
  16. Re:A new hot topic? by koali · · Score: 3, Informative

    The GTK+ Swing look is quite ugly; it only tracks a few Gnome themes, I think it does not support antialiasing and looks baaaaad. If you want to use it, anyway, check this.

    If you want to develop Gnome apps in Java, there are Gnome/GTK bindings for Java.

    There is also SWT, but I don't recommend it (it's a lowest common denominator for Win32, Cocoa, GTK and Solaris). Besides, it's selling point is 'cross-platform' compatibility. If you are developing Gnome apps, you shouldn't care much for that (I mean, you are following the HID and using Gnome apis -that's not crossplatform).

  17. Re:Objective-C? by pfafrich · · Score: 2, Informative

    The one thing Iliked about objective C was that it didn't need a manual. The whole things could be described in a few web pages. No 700 page nutshell book just three or four pages. Now thats a neet language.

    --
    There are four sorts of people in the world: fools, lunatics, idiots and morons. - Umberto Eco, Foucaut's pendulum.
  18. Re:Pointless by tigersha · · Score: 2, Informative

    I can ensure you 100% that C does NOT allow you to do a switch on a string and, for that matter, also forces you to use the xx.equals(yy) thing. In fact, in C you use strcmp which is worse.

    Besides, there IS a difference in == and .equals. The one compares the CONTENTS of (possibly) TWO strings while the other checks if the strangs are the same string (and works for any object, it checks the reference).

    --
    The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  19. Re:Objective C by tyrione · · Score: 2, Informative
    Are you for real?

    The entire ATT Wireless Call Suite (Axys Project and its various incarnations past version 4) was developed with NeXTSTEP/Openstep. Until Siemens came in and wanted to rip it apart that Nationwide Suite of MCCA when it became complex was not due to Objective-C's flaws but the Architectural flaws in design by Humans.

    United States Postal Project was all Objective-C, Merrill Lynch has tons of Apps for its Enterprise that use Objective-C.

    When Apple finally makes its Software Consulting push, firstly in the Federal Markets and later the general Fortune 1000 you will feel real smart about the comment, "Nobody uses Objective-C."

    I could build a list of customers but that isn't my place.

  20. Re:Pointless by AKAImBatman · · Score: 1, Informative

    Java has several design decisions that are nods to reality. For example, many have complained that Java has primitives instead of doing everything via objects. This was a nod toward the realities of performance issues in the marketplace. Similarly, Java is designed to be easily compiled to native code at runtime for performance. There are now compilers for Python, but it used to be an interpreted language.

    C++ has those dangerous pointers that invariably cause memory leaks. Also, C++ does not allow for plugin designs to be easily developed. If we were using C++, it is doubtful that Servlets, JSP pages, SPI plugins, and other dynamic code modules would exist.

    Above all, Java had one of the most powerful core libraries ever seen in any language before it. Nearly all previous languages forced the programmer to write common functionality himself, jump through a variety of hoops to link in shared libraries, or simply hid the underlying implementations of data structures and functionality. The later was particularly annoying since language changes were needed for new functionality (*cough*Visual Basic*cough*).

    Hopefully that at least scratches the surface for you. :-)