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."
"Blue is the color of my Windows screen" (Score:5, Funny)
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)
Re:Pointless (Score:4, Insightful)
Re:Pointless (Score:4, Insightful)
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.
Re:Pointless (Score:4, Insightful)
Yeah, as opposed to other real world languages such as C and C++.
Yes, C# allows using syntactic sugar, to do "switch of Strings". Other than that, it's mostly just scripting languages that allow it; mostly because most scripting language have no static typing.
I must admit this is amongst funniest "proofs" of "why java sucks".
Re:Pointless (Score:3, Informative)
Besides, there IS a difference in == and
Re:Pointless (Score:4, Funny)
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)
OTOH (Score:5, Insightful)
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)
That would be great if we were porting 20 line ruby scripts to eiffel, but there's more to developing a language than syntax
Re:OTOH (Score:5, Insightful)
There is a lot more to C/C++ than just pointers and etc. And even further, many of the patterns, ideas, and practices can all be used across different languages.
Odds are, the developer who can program in C++, Ruby, Java, Python, Smalltalk and (insert your fav language here)... will have a stronger knowledge of programming practices and syntax concepts, which will let him/her program in EVERY language more efficiently.
Even further. Once the programmer feels comfortable in programming for a wide range of languages and syntaxes, he/she will generally have a lot shorter learning curve when picking up a new language.
After a point, learning a new language is less about learning that languages syntax and specialized sugar, and more about learning what kind of new programming practices that language has to give you.
Probably the largest advantage to knowing multiple languages... is that you have a better understand to which language is the best tool for the job.
I'm not going to use C++ to develop my web application. I am probably going to use a language with stronger web development support. And while I might use C++ for developing the core components of a game, odds are I am going to use a language like python for scripting those components. Especially with the VERY nice python integration that the BOOST library provides.
On the same note, I'm probably going to lean away from C++ for developing a desktop application. (Especially applications which don't have large hungry loops.. and even then, I might just use C or C++ for just the intensive part)... I'm probably going to use Ruby or Python. (Ruby if I can find good enough bindings for what I need, python if I can't.)
Even further... for small unix scripts, I will probably use BASH + awk/sed/etc (and it will generally be typed into the shell, instead of saved to a file). But for larger scripts... I am going to use python, ruby or perl depending on what kind of library support I need. Obviously, if my script needs to cover a very wide range of territories... I will probably use perl... But if my script is mostly self contained, I much prefer ruby.
Re:Pointless (Score:2)
Re:Pointless (Score:5, Insightful)
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)
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
Re:Pointless (Score:2)
Any language can be mapped on to any other language.
Re:Pointless (Score:2, Informative)
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)
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
You are missing the point (Score:2)
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
Re:You are missing the point (Score:3, Insightful)
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
Re: your sig (Score:2)
A new hot topic? (Score:5, Insightful)
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)
Re:A new hot topic? (Score:2)
Re:A new hot topic? (Score:4, Informative)
Re:A new hot topic? (Score:4, 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 [sun.com].
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).
Re:A new hot topic? (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 th
Re:Why the fuck (Score:3, Informative)
That's what they currently do (Score:5, Insightful)
And there's where the BFD lies. Do you refuse entry to potentially cool technologies because they add another dependency to the platform and/or have a bit more political baggage than C?
Python (Score:4, Interesting)
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)
Re:Python (Score:3, Funny)
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.
Re:Python (Score:2)
Re:Python (Score:2)
Re:Python (Score:4, Insightful)
[1] simple, uniform syntax. Having programmed for $$ in C, Objective-C, Perl and Eiffel, it took me a while to get used to s-expressions, but once I did, I learned new ways of thinking about programs as data that can be manipulated. Now my old friends (ObjC, etc) seem clumsy by comparison.
[2] Common Lisp can be interpreted for fast prototypes, compiled for speed, and mixed -- core code compiled, and scripts that seemlessly interact with the core.
[3] It's dynamic. Design targets evolve quickly, and statically typed languages make one waste time deciding if a value should be a float or int or whatever, and re-writing if they didn't guess the future correctly. Once a type can be fixed, a simple declaration allows the compiler to optimize. Clean and quick.
[4] Common Lisp has macros far beyond the C-family, which makes for code that writes code in a seamless pre-processing stage. Macros are unbelievably powerful, and are possible a result of the syntax of s-expressions.
[5] Common Lisp is a multi-paradigm language, rather than a "one trick pony". It is object-oriented via CLOS, and more powerfully so than C++/Java/Eiffel. It has multimethods that capture more object paradigms. It is functional when you want that. It can be made declarative by writing a mini-language (e.g. Prolog) via the macro system, and procedural and reflective and whatever else you want. All with one simple syntax, though you can even alter that if you want.
[6] Common Lisp is fast -- it writes fast, builds fast, and even compiles to good machine code.
A requirement he missed (Score:4, Insightful)
C'mon, really, how many people know Eiffel as compared to Java or C#? Really?
Re:A requirement he missed (Score:5, Insightful)
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
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.
Eiffel is overly verbose (Score:2, Informative)
STL (Score:4, Informative)
Re:STL (Score:2)
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
performance is ALWAYS open for debate (Score:3, Interesting)
-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)
Re:performance is ALWAYS open for debate (Score:2)
Re:performance is ALWAYS open for debate (Score:2)
Re:performance is ALWAYS open for debate (Score:3, Insightful)
Another alternative is D (Score:5, Interesting)
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.)
Re:Another alternative is D (Score:3, Interesting)
Er... (Score:2)
I dont have anything against Eiffel (infact I've heard it has some interesting features), but this
Interesting points, but... (Score:3, Interesting)
Eiffel? Bah! (Score:5, Funny)
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.
Re:Eiffel? Bah! (Score:2)
The Modern Language Association [mla.org] comes pretty close.
Re:Eiffel? Bah! (Score:2)
Surely the Modern Language Association of America is not really a central committee for the use of English
American English perhaps, but that is only a small subset of the true language.
Re:Eiffel? Bah! (Score:3, Funny)
Strategery?
Eiffel would be a inferior choice (Score:4, Interesting)
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.
Re:Eiffel would be a inferior choice (Score:2)
Re:Eiffel would be a inferior choice (Score:4, Informative)
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
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.
Re:Eiffel would be a inferior choice (Score:2)
I think you missed some more good points in there. Otherwise C, C++ and even FORTRAN fit that bill ;-)
Syntax and realpolitik (Score:3, Insightful)
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
Re:Eiffel would be a inferior choice (Score:2)
The Langauge should be up to the Developer ... (Score:4, Insightful)
Re:The Langauge should be up to the Developer ... (Score:3, Insightful)
Laziness will always dominate software development (Score:3, Insightful)
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.
Re:Laziness will always dominate software developm (Score:5, Insightful)
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?
Re:Laziness will always dominate software developm (Score:5, Insightful)
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.
Re:Laziness will always dominate software developm (Score:2)
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
Re:Laziness will always dominate software developm (Score:2)
This blather goes to show how little you know what your t
Re:Laziness will always dominate software developm (Score:2)
Less Talk, More Do (Score:4, Insightful)
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)
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.
Re:Objective-C? (Score:4, Insightful)
And, perhaps more importantly, it's for those who want to run apps written by people they don't trust to get the memory management perfect. Which, judging from all the memory leaks we see, is a fairly large number of them...
These days we don't expect programmers write directly to the file system; we have far more powerful and robust file system managers to do it for them. We don't let them do everything as the superuser; we have privilege managers to take care of that. So why do we expect them to do their own memory management?
I don't think so (Score:5, Interesting)
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.
Re:I don't think so (Score:2)
I have no idea - and I've worked on some C# stuff in the past - why anyone outside the m$ world would consider C#. I 100% agree with the parent - it's a ticking timebomb waiting to explode. I think the fact that, for example, IBM is not using C# and doing very well is quite telling. Don't expect them to (ever?) use it anytime soon. In fact, who besides Novell is really investing anything in C#?
Exactly, the same people invested in VB. I rest my case.
Re:I don't think so (Score:4, Informative)
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.
Objective C (Score:3, Interesting)
Re:Objective C (Score:3, Informative)
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
Legislating nature (Score:3, Insightful)
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
Re:Legislating nature (Score:3, Informative)
NIL
or to put it in plain English:
Common LISP is not Scheme
Re:Legislating nature (Score:3, Insightful)
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
Sather (Score:2)
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
A really stupid question (Score:3, Insightful)
No, in fact people claiming a move are full of BS (Score:5, Insightful)
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
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
* 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
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
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
My only i
As a would-be Gnome developer... (Score:2)
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
Re:As a would-be Gnome developer... (Score:2)
C++ is probably out as a choice (Score:2, Insightful)
A desktop written in C++? What would be the point, KDE is already doing it.
Steve
Proof of Concept? (Score:4, Insightful)
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.
How About Good C Documentation? (Score:3, Insightful)
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.
Replacement for C (Score:3, Funny)
C/C++? (Score:5, Insightful)
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? (Score:3, Insightful)
(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)
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?
Groovy port to Gnome? (Score:2)
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
Calm down, it's just a UI library/window manager (Score:3, Insightful)
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)
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.
Eiffel Wrappger Generator (Score:3, Insightful)
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)
In short, a language which is not Eiffel.
How about ADA? (Score:3, Informative)
Gtk bindings for Ada DO exist.
Compiles to C != As fast as C (Score:3, Interesting)
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)
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.
Re:Better learn C#, boys (Score:2, Funny)
Re:Better learn C#, boys (Score:2, Funny)
Whereas France is only sometimes a region in Germany.
Re:Do the right thing please! (Score:3, Interesting)
That's quite a knee-jerk reaction. The C# language and core runtime stuff is standardized - Microsoft can't do anything about Mono using them. The parts that are questionable are the extended base libraries - things like Windows.Forms and so on. But Gnome doesn't need to use those anyway - the core language and bindings for the Gnome libraries is enough, and