Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Programming GNOME GUI IT Technology

Eiffel as a Gnome Development Language ? 397

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."
This discussion has been archived. No new comments can be posted.

Eiffel as a Gnome Development Language ?

Comments Filter:
  • The Eiffel language may be a good choice for GNOME apps, but wouldn't running a Windows app written in Eiffel 6.5 result in the Blue Da Ba Dee Screen of Death [azlyrics.com]?

  • Pointless (Score:5, Insightful)

    by m00nun1t ( 588082 ) on Sunday April 11, 2004 @11:29AM (#8830368) Homepage
    I haven't been watching the debate, but surely a top concern is developer pool? C# and Java are both widely used languages, Eiffel is rarely (although not never) seen outside academia. Surely a large OSS project can't afford to be alienating such a large % of the developer community? There is little incentive to learn Eiffel either - even if you don't know C#/Java, learning them will probably increasing your chances of getting more $ at your day gig, but Eiffel?
    • Re:Pointless (Score:4, Insightful)

      by AKAImBatman ( 238306 ) <akaimbatman@gmaYEATSil.com minus poet> on Sunday April 11, 2004 @11:33AM (#8830392) Homepage Journal
      I think that many parties have been using the recent news from Sun as an excuse to attempt to drive wedges in the developer community. Many academics hate Java for it being a successful, but very real world language. They would much rather see a more "elegant" language become popular, all while ignoring the realities of development that Java addresses.
      • Re:Pointless (Score:4, Insightful)

        by Anonymous Coward on Sunday April 11, 2004 @03:46PM (#8832029)
        > Many academics hate Java for it being a successful, but very real world language.

        I am an academic. I dislike Java. But I don't dislike Java *because* I'm an academic. I dislike it because it's an irritating language to code in; because the libraries are bloated; because it uses an order of magnitude more memory than it should; because Java applications all look horrible, and typically are even worse to use than they look; because Sun want to lock you into their weird dream. etc etc.

        Putting my academic hat on for a moment and looking at what was known about OO languages, Java would have been a merely OK language in the mid 80's if it had existed then. In the 90's frankly it was past its sell by date, and in the year 2004 it's a joke.

        A static type system that's a joke (at least there's going to be a weak-ish generics system in JDK 1.5, but there are other horrors too fundamental to change). A horrible mess between builtin and user types. No modules (classes and static methods do not a module make). Brain damaged name spaces (ever tried "import a.b.c" and then use "c.d"? No, why not do "import a.b.c.*" instead and polute everything!). etc etc. None of these help problems aid development.

        If I a non-realist academic, so be it. Your coding reality is the 1970's. My coding reality is the 90's (there being no good imperative language for the year 2004 yet). Last time I checked my coding environment addressed a lot of realities, although I admit it balks at big collars and kipper ties. So be it.
    • by Anonymous Coward on Sunday April 11, 2004 @11:34AM (#8830396)
      Actually, Eiffel is rarely seen IN academia - compsci academia, anyway. Eiffel is marketed strongly at "computing for business" types, you know, the ones who buy into the OO, software engineering hype, and write 30000 line monstrosities where a 12 line shell script would do, then go off and "refactor" for another six months and USD500000 budget to produce...the same thing, sliced slightly differently.

      Compscis use stuff like ML and Haskell, while slagging off other compscis who use Common Lisp or Scheme for not having static typing (while the lispers slate the MLers for missing the point because all the interesting lisp programs don't _know_ what types are appropriate ahead of time in their view), and they all slag off the goons using Java to get funding from corporate types.
    • Re:Pointless (Score:3, Interesting)

      by arvindn ( 542080 )
      "Pointless" exactly sums up my reaction as well. I mean, pretty much every modern open source language fits all these criteria. Obviously, a major factor in the choice of language is how familiar it is to existing developers. Apart from C/C++, the most commonly used gnome language is python. So if at all the choice is something other than C#/Java, it would have to be python.
    • OTOH (Score:5, Insightful)

      by jabber01 ( 225154 ) on Sunday April 11, 2004 @11:47AM (#8830462)
      Project requirements often dictate the choice of language.

      A developer who knows only one language is not a developer, but a one trick pony; a single-purpose tool that is easily replaced with a cheaper, off-shore alternative, for example.

      Learning the syntax of a new language should not be a significant challenge to an experienced, talented developer. And, it is experienced, talented developers who should be sought for this project. People who know (language X) and can not adapt to new requirements are not likely to contribute anything innovative, new, or original.

      All that said, I don't know Eiffel, nor the particular requirements of the Gnome desktop. If a more popular language fits the bill, great, that's the language that should be used. However, if Eiffel offers particular advantaged, through inherent features not forthcoming in something like C++ or Java, then guess what? A decent developer will eat a book or two over the course of a couple of weeks, and hit the ground running.
      • Re:OTOH (Score:3, Insightful)

        by Covener ( 32114 )
        Learning the syntax of a new language should not be a significant challenge to an experienced, talented developer

        That would be great if we were porting 20 line ruby scripts to eiffel, but there's more to developing a language than syntax
    • a fun tidbit about Eiffel, because one of the teachers at my school loves it: when you compile Eiffel code, it compiles into C++ and then into assembly, so there's nothing Eiffel has over C++ other than another layer of abstraction and a longer compile time.
      • Re:Pointless (Score:5, Insightful)

        by BasilBrush ( 643681 ) on Sunday April 11, 2004 @12:30PM (#8830695)
        If you RFRA you'd see it compiles to C, not C++.

        And anyway, C++ originally produced C code. C originally compiled to assembler. And assembler obviously produces machine code. So none of these languages have anything over the languages that preceded them, and indeed hand produced machine code "other than another layer of abstraction and a longer compile time", right?

      • Re:Pointless (Score:2, Interesting)

        a fun tidbit about Eiffel, because one of the teachers at my school loves it: when you compile Eiffel code, it compiles into C++ and then into assembly, so there's nothing Eiffel has over C++ other than another layer of abstraction and a longer compile time.

        You might as well argue that there is no reason to use anything other than raw machine code, because after all, that's what everything is ultimately compiled into, so there's nothing that C++ has over machine code "other than another layer of abstrac

      • Of course - haven't you heard of a little thing called turing completeness?
        Any language can be mapped on to any other language.

      • Re:Pointless (Score:2, Informative)

        by WeiszNet ( 88819 )
        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 [eiffel.com] and SmartEiffel [loria.fr] 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 (whic

    • Re:Pointless (Score:2, Insightful)

      by KingOfBLASH ( 620432 )

      I haven't been watching the debate, but surely a top concern is developer pool?

      I program for a living, and I really don't think a new language will be a problem. I have had to learn lots of new languages for projects at work (That's how I learned LISP, Java, Perl, Python, and PHP). Generally speaking, it's not that hard to pick up on a new language. I'll spend a couple of hours learning the basics of the syntax, then I'll start writing some code, and over a week or two I'll get competent with a langu

    • > C# and Java are both widely used languages

      My Answer: Why don't we have our FREE high level language/platform instead of depending C#/Java (meaning Sun/Microsoft)?

      The problem is that both of these languages are non-free. It is apparent that a high level language with garbage collection and other fetures that increases efficiency is needed. Java is created by Sun and C# is created by Microsoft. I think both of them are nice, have lots of class libraries and capable of running your code as fast or faste
      • No, you have missed the point.

        Java doesn't cost you a dime. There are multiple implementations... one from Sun, another from IBM, Blackdown, HP, etc.

        What you mean is that Java, unlike Linux distros, has a single maintainer and hasn't allowed the language to be fragmented.

        Do you realize why most companies won't write apps for Linux? No profit. They have to port to Redhat, Debian, Suse... yes, the differences are minor to a guru, but each is different. Each has a different installation/upgrade mecha

  • A new hot topic? (Score:5, Insightful)

    by GnuVince ( 623231 ) on Sunday April 11, 2004 @11:31AM (#8830377)
    Is "what is GNOME's next language going to be" becoming a hot topic? You have people saying they should stick with C for all purposes, others saying that every user application should be in C++ or C# or Java or Eiffel. Next thing you'll know, people will be suggesting Haskell.

    I do believe a new language should be used for user applications, but I don't see Eiffel as a contender for a simple reason: syntax. People say they don't care about syntax, but they do. How do you explain the success of Java and C# if not for their C-like syntax? This is why I believe Mono/C# has the biggest chance of winning (also consider the fact that GNOME's big boys (de Icaza, Friedman) are Mono core developpers)

    • Re:A new hot topic? (Score:4, Informative)

      by GnuVince ( 623231 ) on Sunday April 11, 2004 @11:37AM (#8830409)
      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
    • Re:A new hot topic? (Score:4, Informative)

      by AKAImBatman ( 238306 ) <akaimbatman@gmaYEATSil.com minus poet> on Sunday April 11, 2004 @11:38AM (#8830416) Homepage Journal
      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. :-)

    • Re:A new hot topic? (Score:3, Interesting)

      by boelthorn ( 711135 )

      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 th

  • Python (Score:4, Interesting)

    by richie2000 ( 159732 ) <rickard.olsson@gmail.com> on Sunday April 11, 2004 @11:32AM (#8830380) Homepage Journal
    Might as well use Python [slashdot.org], 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.

    • Re:Python (Score:4, Informative)

      by GnuVince ( 623231 ) on Sunday April 11, 2004 @11:35AM (#8830399)
      No, Ericsson uses Erlang, a functional, concurrent programming language.
      • Re:Python (Score:3, Funny)

        by richie2000 ( 159732 )
        Ah, yes, of course. I knew it was something beginning with an E, though...

        I sit corrected and wish to exchange the Interesting and any possible Insightful moderations I got for my original post for a few Funny and an Overrated.

    • Great idea. Let's write core system libraries in a slow, memory-hungry, interpreted scripting language. After all, nobody cares if their desktop takes 10 minutes to process a mouse click, right?
  • by Anonymous Coward on Sunday April 11, 2004 @11:32AM (#8830384)
    How about a language that people actually know?

    C'mon, really, how many people know Eiffel as compared to Java or C#? Really?
    • by Daniel Dvorkin ( 106857 ) * on Sunday April 11, 2004 @11:58AM (#8830512) Homepage Journal
      How about a language that people actually know?

      C'mon, really, how many people know Eiffel as compared to Java or C#? Really?


      Well, of course, taking that attitude to its extreme, no new language would ever catch on, and we'd all be coding in ... I don't know, maybe the original FORTRAN or ALGOL 60, maybe machine code for whatever the most popular processor would be (and it wouldn't necessarily be x86, since everyone would have wanted to stick with "an architecture that people actually know.") New languages that offer an obvious and dramatic improvement over anything else that's available for the task at hand* ought to be adopted for widespread and long-term use.

      That being said, of course there is a cost involved in adopting an obscure language, and it has to be measured against whatever benefits the language offers. This is particularly true for large projects. I may choose to develop one-off software of which I expect to maintain personal control for its entire life cycle in Erlang or Ruby or Dylan, but if I'm running a big project with lots of contributors, I owe it to developers and end users to weigh the costs and benefits carefully.

      * As FORTRAN, and COBOL, and yes, damn it, C, all did. C++, maybe. We'll have to wait another decade or so to be sure about Perl, and another two to be sure about Java and PHP and Python, and longer than that for C#. I take the long view.
  • by Anonymous Coward
    That's the problem with languages developped first on paper (Ada being another, extreme). Just use Ocaml.
  • STL (Score:4, Informative)

    by Anonymous Coward on Sunday April 11, 2004 @11:35AM (#8830405)
    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.
    • Thanks for mentioning the STL. I had a friend say a few things about it as well.

      When I finally get back to my C/C++ roots I will check it out.

      One thing that does concern me is that I always here this comment that the GNU compiler is "optimized" for C.

      What does that mean and why don't they support C++ ?

      Steve
  • The fact that the Eiffel compiler can compile to C or java bytecode is quite interesting. Consider their disparity of features:

    -C is not object oriented -Strict ANSI C is very limited as compared to platform-specific functions and libraries -C does not have Java's virtual machine features like garbage collection -C is not strongly typed like Java, nor does it perform all the boundary checks that the Java compiler does

    I'm not saying that C is a bad language to program with...it's always about the right tool for the right job. I'm just questioning how the compiler can compile/convert? to both C code (is this compiling to C-source, or converting to binaries?) and to Java bytecode (where you don't need things like deconstructors and memory management built into your code) or Java-compatible class files?

    Regardless of this, performance issues are almost always a matter of compiler efficiency. If one were to compare the Intel C++ compiler, Borland's, the Mac compiler, gcc, etc, you will have huge performance disparities depending on what platform you compile to, what compiler you use, etc. In my own limited programming experience, the only differences that can be absolutely noted between languages are when the performance differencies are atleast an order of magnitude apart...Like the benchmarks show sometimes, Java can vary wildly between fast and slow, and the own differences between different C++ compilers an be unimpressive.

    • Re: (Score:3, Interesting)

      Comment removed based on user account deletion
    • Compilers that compile to C use C as something of a portable assembler. Usually, the source constructs map only loosly to C constructs --- functions to functions, class references to void*, etc. Memory management is handled via a conservative GC, which can deal with C code.
    • I wonder if you've ever heard of a little thing called the Church Turing Thesis? It's one of the founding principles of computer science. It basically says that any language which meets a small number of conditions can express any algorithm. Since both Java and C are Turing-Complete languages (ones which meet these conditions) any algorithm that can be expressed in one can be expressed in the other.
  • by HiThere ( 15173 ) * <charleshixsn@ear ... .net minus punct> on Sunday April 11, 2004 @11:40AM (#8830432)
    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.)
  • How about we dont? Seriously, does anyone really think that standardising the core of the desktop on a niche language that few people know is going to attract developers? The author seems to have missed a crucial factor in reasons for choosing languages: developer base. Python, C# and Java both already have large developer bases. This is one of the main reasons why they are interesting as languages for GNOME.

    I dont have anything against Eiffel (infact I've heard it has some interesting features), but this

  • by skrysakj ( 32108 ) on Sunday April 11, 2004 @11:43AM (#8830444) Homepage Journal
    The person has made very valid points, especially concering politics and "free"dom. But many of the points they made can apply to other languages, such as Ada (easy to read, compiles to C, small syntax set, free compilers, etc..) yet there just aren't enough people using it to make it a good language to move towards.
  • Eiffel? Why bother? There is a much better language out there that's already being used heavily on the GNOME platform, along with other platforms like KDE.

    What language, you ask?

    English!

    English is an easy-to-learn and powerful language. A large number of developers already know this language, and there are many tools available to translate it to/from other languages.

    English is a robust and mature language, as well. It's been in use for hundreds of years and its capabilities are well-known and understood by many. Try and match that with some ten-year-old language created by hairy UNIX administrators!

    Compilers and documentation for English are easy to get a copy of, and many are completely free or very affordable. Almost every college out there offers courses in English.

    There are many powerful IDEs available for English - OpenOffice, Microsoft Word, the list goes on.

    Unlike languages like Java and French, there is no central committee that says what English can and cannot 'do'. You're free to explore the potential of the language and come up with new instructions and invent new ways to use existing instructions.

    I honestly cannot believe that English has been overlooked in this debate. It's a perfect fit for GNOME.
    • ...there is no central committee that says what English can and cannot 'do'.

      The Modern Language Association [mla.org] comes pretty close.
      • The Modern Language Association comes pretty close.

        Surely the Modern Language Association of America is not really a central committee for the use of English

        adj.

        1. Of, relating to, or characteristic of England or its people or culture.

        American English perhaps, but that is only a small subset of the true language.

    • by cide1 ( 126814 )
      You're free to explore the potential of the language and come up with new instructions and invent new ways to use existing instructions.

      Strategery?
  • by aminorex ( 141494 ) on Sunday April 11, 2004 @11:49AM (#8830467) Homepage Journal
    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.

    • O'Caml would be a mistake. The prefered paradigm is the functional one, and many hackers do not like it (don't ask me why, I love it.) The best choice is C#: it looks like languages people know (C and C++), it's developping rapidly in the Linux world (the Mono guys are developping really, really fast) and you don't scare away Windows developpers.
    • by hak1du ( 761835 ) on Sunday April 11, 2004 @12:24PM (#8830665) Journal
      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.
      • 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.

        I think you missed some more good points in there. Otherwise C, C++ and even FORTRAN fit that bill ;-)

      • I love O'CAML, but its syntax is too tricky for mainstream programmers

        Really, the world is better off without the programs these people might write. A person who cannot grasp a context-free grammar is a person who cannot write a useful, working, non-trivial application.

        Furthermore, the people who complain endlessly about syntax are in large part also the people who have not clue one about what really distinguishes one programming language from another, or, indeed, even what a programming language is. H

    • Are any of the Sather variants alive? Last I had looked the newgroup was spam only, and it looks like Berkely and Karlsrhue have stopped any development and support. I'm not sure if anyone in the GNU world has picked it up or not. I agree that it was slick but it looks dead. Eiffel is a nice idea for this stuff, we just don't have a good compiler and I think that Meyer did enough damage early on that it will forever be a tainted language in many minds. I respect them both but I just can't see how sathe
  • ... Of the App. Make a good API, with clean cross-language compatabity, and let the app dev. choice a language that suites the application that [s]he is writing.
  • Look at the most popular current languages:

    for "real" programming, we have C and C++. Java really hasn't made much of an inroads (most of its penetration is with compsci students), C# has barely made any impact at all, and that seems to be limited by those developers who are tied to the Windows platform and need to generate next-gen windows apps. Perl's been around for a long time and, although arguably the ugliest damn language in common usage today, is invaluable for website programming.

    Considering the advanced features of languages like Java, C#, and hell, even Python, why, do you think, that their update and adoption hasn't been that rapid? You'd figure that if C and C++, with all their quirks, are so difficult to develop with, and time consuming, etc, that developers would jump on these new languages.

    Here's what I believe is the biggest reason they don't: they're lazy. It doesn't matter if a language is hard to work with and has difficult syntax. If the developer knows it inside and out, that developer will prefer to use the older, less sophisticated language, regardless of any benefits the new one offers.
    • by cxvx ( 525894 ) on Sunday April 11, 2004 @12:20PM (#8830646) Homepage
      for "real" programming, we have C and C++. Java really hasn't made much of an inroads (most of its penetration is with compsci students), C# has barely made any impact at all, and that seems to be limited by those developers who are tied to the Windows platform and need to generate next-gen windows apps. Perl's been around for a long time and, although arguably the ugliest damn language in common usage today, is invaluable for website programming.

      Exactly, that's why there are only 11731 Java projects registered at Sourceforge, which is nothing compared to the 13174 C and 13225 C++ projects. That only makes it the 3rd most popular language for opensource projects. It's just laughable.

      And no serious business applications could be written in Java, as we can see by the lack of things like application- and webservers for Java. It also barely has webservices support. If only that J2EE thingy could catch on, Java might have a chance. How could anyone write serious applications with it outside of academia?

    • by hak1du ( 761835 ) on Sunday April 11, 2004 @12:29PM (#8830693) Journal
      Look at the most popular current languages: for "real" programming, we have C and C++

      Do you have any data to back that up? I would guess that the largest number of programmers write in something like Basic (mostly VisualBasic), most cycles are spent on interpreted languages, and most LOC are probably still in COBOL.

      You'd figure that if C and C++, with all their quirks, are so difficult to develop with, and time consuming, etc, that developers would jump on these new languages.

      C and C++ aren't necessarily difficult to develop with, they are, however, difficult to develop with correctly. So, lots of C/C++ code gets written, but almost all of it crashes with regularity and has security problems.
    • I agree. C++ is not that much harder than Java. And it creates code that is much more efficient. I have seen implementation of complex math algorithms than ran in hours in java, and in like 15 seconds in c++.

      I rarely code in c++.I use Perl because its faster develloping an d Java sometimes because of the foudation classes. But my application suck, they are bulky, slow, and only mean to be run by me for a school projects.

      Those who think Java can be as fast as C++ don't make any sense. Don't you realize
    • "for "real" programming, we have C and C++. Java really hasn't made much of an inroads (most of its penetration is with compsci students), C# has barely made any impact at all, and that seems to be limited by those developers who are tied to the Windows platform and need to generate next-gen windows apps. Perl's been around for a long time and, although arguably the ugliest damn language in common usage today, is invaluable for website programming. "

      This blather goes to show how little you know what your t
  • Less Talk, More Do (Score:4, Insightful)

    by UnderScan ( 470605 ) <jjp6893@netscap e . n et> on Sunday April 11, 2004 @11:50AM (#8830473)
    GTK/GNOME is accessible to many users and developers (AS IS) via C/C++/python/perl/ and I am sure there are others I am leaving out.
    Why not Eiffel? How about why Eiffel at all? I have never seen Eiffel outside of my CS 101 & CS 102 courses. Seriously, go out and ask other developers what they know or what they have heard of. Chances are people have not heard of Eiffel. Doesn't the GNOME developers want to reach as many developers as possible? The FLOSS idea is that a user may become interested enough to then take a peek at the code. This peek may pique their interests and may eventually become a developer themselves. Doesn't GNOME want as many regular users to become power users to maybe become developers. So what if Eiffel can be compiled to C? Why have another layer of abstraction thus obscuring the picture.


    More Do, Less Talk.
    If the GNOME developers want more users, want more power users, want more small time developers, then these people have to get interested in the project/platform and must be guided and learn the ropes, or in this case the API. They need to get underneath the hood and understand how it works. IMHO, education, tutorials and documentation would be a great place to start.

  • Objective-C? (Score:4, Interesting)

    by skurken ( 58262 ) on Sunday April 11, 2004 @11:54AM (#8830491)
    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.
  • I don't think so (Score:5, Interesting)

    by hak1du ( 761835 ) on Sunday April 11, 2004 @12:03PM (#8830550) Journal
    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.

  • Objective C (Score:3, Interesting)

    by Xpilot ( 117961 ) on Sunday April 11, 2004 @12:05PM (#8830558) Homepage
    I would very much like to see the Objective C bindings for Gnome updated, for it's a very interesting language to develop in. It is simple, elegent, and does not suffer from the featuritis of C++.

  • Legislating nature (Score:3, Insightful)

    by beforewisdom ( 729725 ) on Sunday April 11, 2004 @12:05PM (#8830567)
    A lot of people have already made the EXCELLENT point how it would be smarter to choose a language already known by many people.

    I agree.

    Legislating an offical language will not make people learn that language.

    Look at GNU. They made Scheme the "official scripting language" for GNU/free(dom) software.

    How many people do you see falling over themselves to learn LISP?

    Learning a language......and keeping it learned...takes a significant investment in time.

    Many of us have day jobs, famlies, lives etc.

    Why not do GNU/Gnome and the developers they want to attract a favor?

    Make the official language something would be developers can reap a double return on their educational/time investments?

    Make it a language they can take back with them to their jobs.

    Steve
    • (eq 'lisp 'scheme)
      NIL

      or to put it in plain English:
      Common LISP is not Scheme
    • Why not do GNU/Gnome and the developers they want to attract a favor? ... Make it a language they can take back with them to their jobs.

      Between the .com orgy and subsequent bust and lessons (not) learned, and the overwhelming successes of Free Software and the Java/C++/PL/1 human wave "software engineering," there won't be any (programming) jobs to go back to unless you're in India or the Philippines. Quite frankly I'd be glad for that. Ship all the monkey work overseas (we are supposed to be living in

  • by jefu ( 53450 )
    If a change is really a good thing, why not Sather? It is roughly based on Eiffel and has many of the same good features (and rather a few more as well). available.

    It is one of the finest languages I've ever used and I'd love to see it more widely available and used. I'd bet that my development time in Sather is an order of magnitude less than in Java, C, C++. And while I'm very fond of Python I'd bet that development time in Sather is still less than half of what it is in Python. Sadly, the biggest pa

  • by beforewisdom ( 729725 ) on Sunday April 11, 2004 @12:12PM (#8830600)
    I have a really stupid question to ask. Are the people who control Gnome even considering moving it to a new language? Steve
    • by 0x0d0a ( 568518 ) on Sunday April 11, 2004 @01:52PM (#8831317) Journal
      Are the people who control Gnome even considering moving it to a new language?

      No, but it makes good fodder around Slashdot, mostly among anti-MS advocates who want something to get riled up about and among a couple of vocal KDE trolls, so several rather misleading stories have slipped their way in. Miguel has been saying for something like two years now [gnome.org] that GNOME is not going to be moved to .NET, and that the people claiming it are full of it. Naturally, once a story gets rolling, people happily continue to propagate horseshit.

      Here are a few choice quotes from Miguel, the guy doing Mono who also happens to work on GNOME:

      The short story is: rewriting code does not pay off, and I agree with the thesis of the article. Rewriting GNOME in C# with the CLR would be a very bad idea, if not the worst possible idea ever.

      GNOME is not adopting Mono or .NET as an implementation technology. The headline from the Register is misleading, for a number of reasons:

      * The headline does not reflect any statements I made on the interview (if you read the interview you will notice this).

      * The only future plans that have been approved by the GNOME team (which has 11 voting members on its board) are found here:
      http://developer.gnome.org/dotplan/

      * I am not the GNOME foundation or control GNOME like Linus controls his kernel, I am just its founder and a contributor.

      * GNOME is not built by an individual, its built by a team of roughly 500 contributors in many areas.

      * Decisions in the GNOME world are done by active contributors and module maintainers. I have given
      my maintainership status on every module I maintained to other members of the GNOME team as I got more involved with Ximian and later on with Mono.

      So effectively I have no "maintainer" control.


      and

      GNOME had always tried to have a good support for multiple programming languages, because we realize that no matter how much we loved C as a programming language, there was a large crowd of people out there that would like to use the GNOME libraries from their favorite programming language, which might not necessarily be C.

      This strategy has paid off very well. There are healthy and striving Python, Perl, Guile and Ada communities out there that use the Gtk+ and Gnome bindings to build applications. From rapid prototyping to robust applications: we wanted to empower developers.


      The actual scope of .NET interest:

      After much researching and debating, we decided that a couple of developers at Ximian will join me in working on a free implementation of these specifications. [.NET/Mono]

      This means that there are a few developers who *also* happen to work on GNOME that work on Mono. Guess what? There are people that work on KDE that work on Java -- that certainly does not mean that "KDE is moving to Java". A couple of Ximian developers working on .NET and GNOME support for .NET is akin to a random KDE-related company (like The Kompany) working on a particular application. Miguel's *only goal* is to have an environment for Ximian to develop future applications for. That means that Ximian may produce an application or two written in C#. It is even possible that such an application could become a core GNOME application.

      Miguel has stated in the past that he is dubious about doing rewriting even GNOME-based applications maintained by Ximian -- primarily Evolution. I just can't understand why people have so much problem getting this into their skulls.

      I am not sure what people told Richard Stallman about my plans. Given the confusion surrounding .NET, it is very possible that people were asking `Miguel wants to depend on Passport' or something just as bad as that.

      My only i
  • I don't care what the next core and/or applications development language becomes the official for Gnome so long as it's easy to learn, effective for its purpose, is elegant and will make Gnome programming truly powerful (capable of doing almost anything apps should be able to do).

    Most object-oriented languages are easy to pick up. Java, in particular, is easy to learn because most IDEs help in the syntax (auto-completion) and has great code-to-documentation facilities (Javadoc). In contrast, Glib-GObject i
    • Oh .. I should probably add "has a fast implementation". Java may be an easy language to pick up, but dang! Most apps I develop on it feel like its wading in molasses. If they're going to run core subsystems in that language, there's a potential to increase the latency for every application that uses them.
  • C++ is probably out as a choice to migrate gnome into.

    A desktop written in C++? What would be the point, KDE is already doing it.

    Steve
  • Proof of Concept? (Score:4, Insightful)

    by Gactaculon ( 709191 ) on Sunday April 11, 2004 @12:25PM (#8830669)
    Considering how much inertia is behind C in the developer community as a whole, just talking about all these modern language alternatives is going to get absolutely nowhere unless some of these language proponents actually get together and code "proof of concept" desktop systems and Gnome tools to show that their alternative actually _works_.

    If there were a desktop environment along the scale of XFCE or even Blackbox that was actually coded in Eiffel or C# and could be shown to actually be easier to develop for and less error-prone than a C equivalent, then there might be some converts... but someone needs to tackle the implementation problems first before trying to move such a massive program into a totally new environment.

  • by mrcparker ( 469158 ) on Sunday April 11, 2004 @12:27PM (#8830681)
    That would be a start. Looking at developer.gnome.org I see a whole lot of unfinished API docs and tutorials from years ago. Bonobo - the component system nobody really seems to use - is hardly documented at all.

    Also, finish up Anjuta and make it pluggable so that it is easy to add language support. Make it easy to develop in other languages, and the dominant alternative language will rise to the top.
  • by Eadwacer ( 722852 ) on Sunday April 11, 2004 @12:33PM (#8830716)
    I thought that since C got it's start with BCPL that the replacement was going to be P.
  • C/C++? (Score:5, Insightful)

    by matusa ( 132837 ) <[moc.liamg] [ta] [lesihc]> on Sunday April 11, 2004 @12:43PM (#8830795) Homepage
    One thing that I am sure has enraged many is the lumping of C and C++ together. I programmed primarily in C for about 5 years, and a couple months back learned C++ and now use that as my primary language.

    I used to write code in gtk+, and it was quite painful. Function calls look ugly, you are casting things non stop, and constantly finding gross ways to wrap data into a void * which you pass with signals.

    I've been writing apps with gtkmm lately and it is practically a sexual experience in comparison. I can write much cleaner apps, and do so much more quickly.

    I don't mean to appear elitist, but anyone saying C/C++, and furthermore that they are both finished, sounds like someone who hasn't really used C++. And no I don't mean writing an app with methods instead of global functions, new/delete instead of malloc()/free(), and replacing char * with std::string (in C++ you use char * all the time! std::string is another entity altogether); no no no I mean using C++ paradigms (I'm _not_ talking about OO--C++ has a plethora of interesting methodologies which result in extremely fast and safe code (we're not just throwing exceptions and building abstract class heirarchies every time we want to move a bit!)).

    What is important about C++'s heritage of C is _not_ the shared syntax--it's the fact that you can still figure out your overhead basically exactly (as well as you can in C, at least). But the rest is drastically altered. Go to boost.org to see what I'm talking about.

    Note that this is not an anti-C post--that would be ridiculous as not only do I love C but furthermore there are great gtk+ apps (gimp for example--gnome is a bloated mess and doesn't really count IMHO!).

    Remember: the rallying cry of OSS is 'show me the code'. If you think you have a nicer way to code, make it and then publicize. I'll stick to gtkmm for now, and recommend others take a look at it.
    • Do you know any other languages besides C/C++? I have over 15 years of C, and over 5 of C++, and I strongly disagree with you. They are not different languages. But then, I also have at least a passing acquaintance with Lisp/Scheme, Forth, Python, Tcl, Eiffel, Smalltalk, Haskell, Fortran, Pascal, Ada, PL/1, Prolog and SNOBOL. Compared to most of these, C and C++ (and Objective-C) are identical!

      (Java and Perl, which I didn't list above, I would count as being in the same family as C/C++, although I su
  • Are you kidding? (Score:4, Insightful)

    by Isldeur ( 125133 ) on Sunday April 11, 2004 @12:57PM (#8830892)
    This article is a short evaluation of Eiffel as a language for developing the core gnome desktop platform.

    I think Gnome has other things it needs to focus on than swapping around foundations again.

    Afterall, is Gnome attempting to be useful or just a developers' theoretical playground?

  • What of the merits in porting Groovy [slashdot.org] to Mono/Gnome? Would there be an advantage to having this as the language to develop Gnome in?

    Looks like Groovy [jcp.org] has been voted in unanimously [jcp.org] by the JCP Executive Committee. Sun, in particular, seems enthusiastic about it by their comment.

    If the rest of the process [jcp.org] goes right, it appears to be on its way to eventual adoption.

    There might be an advantage in having a tie-in language between Mono and Java platforms that is so similar to C# and Java syntax (the langua

  • by iamacat ( 583406 ) on Sunday April 11, 2004 @01:20PM (#8831075)
    Don't try to make it into the next language/operating system/computing platform. You talked to RMS and other Emacs people way too much. Why should people learn a new language just to write a new file picker to replace your unspeakable abdomination (that may be gone now - didn't follow the news from my OSX cave)?

    Gnome should be written using generally available and well-known languages - like C++ and maybe Java if any of the free VMs are usable. If you want to replace C++, start a separate project and convince people to use it on its own merits. You might have to do lots more work than just writting code - publish textbooks, go to standards comeetes, run a website with developer forums - but Perl and Python also suggest that a small potato can succeed with the right stuff.

    Then if your language project takes off on your own right, you might consider switching the core development of GNOME. But don't ask people to buy your car just because they want to listen to it's radio player.
  • Realistically, Java (Score:5, Interesting)

    by Animats ( 122034 ) on Sunday April 11, 2004 @01:37PM (#8831193) Homepage
    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.

  • by WeiszNet ( 88819 ) on Sunday April 11, 2004 @01:41PM (#8831234) Homepage
    One thing the article does not mention is that there is even an Eiffel Wrapper Generator [http]. A tool which autmates much of the task when writing Eiffel bindings for C libraries.

    If Eiffel were indeed to be used for a project such as Gnome, such a tool could greatly reduce the amount of work needed to access all of the existing Gnome libraries, which are AFAIK all in written in C.

    EWG [http] even comes with GTK 2.x bindings contained as an example.

    PS: The above is a shameless plug, I am the main developer of EWG [http] (;

  • It's about time. (Score:3, Interesting)

    by Kickasso ( 210195 ) on Sunday April 11, 2004 @02:34PM (#8831590)
    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.

  • How about ADA? (Score:3, Informative)

    by burbilog ( 92795 ) on Sunday April 11, 2004 @02:45PM (#8831654) Homepage
    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.

  • by marcovje ( 205102 ) on Sunday April 11, 2004 @05:47PM (#8832797)

    I don't know Eiffel that well, and can't judge the fitness of the language itself, but:

    - Compiles to language X != As fast as X. Runtime helpers, higher level constructs etc. Eifel might be fast, but compiling to a language considered fast doesn't prove that.
    - The language is relatively unknown. This was another advantage of C/C++ and things like Java and Delphi: everybody knows it.

    I'm not going to learn a language for Gnome, one for KDE etc etc.
  • perl6 (Score:3, Interesting)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Sunday April 11, 2004 @05:55PM (#8832881) Journal
    Ok, perl is not exactly everyone's favorite language. But it does have plenty of libraries, and perl6 looks as though it will clean up some problems with perl5.

    It definitely does for speed. Testing ponie (a perl5 implementation on parrot, the perl6 generic bytecode engine), I saw at least a 20% improvement on every single test I tried with ponie vs. the official perl5 interpreter.

8 Catfish = 1 Octo-puss

Working...