Eiffel as a Gnome Development Language ?
Thomas Delaet writes "
This article is a short evaluation of Eiffel as a language for developing the core gnome desktop platform. Last month, there has been a heavy debate about a successor for C/C++ as the language of choice for developing the core gnome desktop components in. The debate has mostly focussed around C#/Mono and Java. This article tries to summarize the different requirements for a gnome development language and shows how Eiffel fits in these criteria."
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?
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?
Read reviews of shopping cart software
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)
Eiffel, indeed... What are the reasons for switching and won't it be totally painful to switch language NOW? Maybe the article author has been laid off from Ericsson, I believe they used (use?) Eiffel a lot in-house.
Money for nothing, pix for free
How about a language that people actually know?
C'mon, really, how many people know Eiffel as compared to Java or C#? Really?
With Sun having thrown in the towel, Java is not long for this Earth.
Which is fine with me, C# is the superior technology anyway.
And I don't have any idea what this Eiffel crap is - sounds French. Perhaps we should rename it to "Freedom"?
That's the problem with languages developped first on paper (Ada being another, extreme). Just use Ocaml.
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.
What ever language is chosen it should be a mainstream language, or the community will be having this discussion again in two years instead of ten. I could give all the reasons why, you could give all the reasons why not, but at the end of the day it's human nature that plays the biggest role... plain and simple.
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.
------- "From bored to fanboy in 3.8 asian girls" ----------
And what was the point of that? Do you also go around vandalising bus shelters and then bragging about it.
Digital Mars D currently runs on Linux and MSWind. It doesn't, AFAIK, run on the Mac yet, but there's no intrinsic problem.
I like Eiffel a lot more than C, but I like D better than Eiffel. D is like C++ that got it right. (Well, it was designed decades later, so that's not too surprising.) D links easily with C code. Much more easily than Eiffel does. D doesn't have the wide variety of implementations that Eiffel does. Eiffel suffers from the problem that each compiler comes with it's own set of libraries. (It also suffers from functions not being overloadable, but that's on purpose. Still, I count it as a definite drawback to require different operators to multiply integers, floats, and I*F and F*I -- all require different operators in Eiffel, that that's just the start of the problem.)
I think we've pushed this "anyone can grow up to be president" thing too far.
I dont have anything against Eiffel (infact I've heard it has some interesting features), but this is folly. Come back when you've convinced enough people to use Eiffel that there are some, indeed any large GNOME projects written in it.
were you expecting to see a sig here? perhaps you'd rather see the inside of an ambulance!
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.
Don't they just:
1) Code the core stuff in C.
2) Let people that like other languages code wrappers to a well designed API
3) Allow the people that code their user applications in whatever works best for them.
I mean, holy shit! What's the BFD?
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.
using namespace slashdot;
troll::post();
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.
The REAL jabber has the user id: 13196
What you do today will cost you a day of your life
Sather whomps Eiffel on design and openness.
OCAML whomps all of the above on design and codability.
C# would be sheer madness. Java is excusable
because of GCJ, but if you're looking to maintain
code long-term, OCAML will allow you to avoid
spaghetti objects, where aspects are spread over
50 different classes.
-I like my women like I like my tea: green-
... 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.
Wow, I should not post when knackered.
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.
------- "From bored to fanboy in 3.8 asian girls" ----------
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.
For goodness sake fellow developers can an open-mindedness towards this matter not be kept?. I get chills thinking of what the developer commnunity is becoming when I see such drone like responses. C#/Java?--maybe...but also maybe Eiffel, Smalltalk, objective-c, Ocaml, Rebol, Python, Ruby, Perl, etc. OSS is about choice so I see no reason why the same cannot be applied to development languages. If the project is done in Eiffel then so be it and I'll look forward to the challenge of learning a new programming language.
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.
nice job
Eiffel has way too many current users. It's not academic enough! Bing on Sather (first I'd heard of it) or some of those ML type of languages. Maybe somethig more functional? Miranda anyone? I think there are about two corporations and about fifty universities that use it. That'll scare away the developers if Eiffel won't.
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.
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++.
"Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
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
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 part of that is compile time. But the support for programming by contract cuts debugging time almost to nothing. Thats a tradeoff I'll take any day.
I have a really stupid question to ask. Are the people who control Gnome even considering moving it to a new language? Steve
However there are increasing signs that various contributers, most notably Novell at the moment, are looking to contribute things to GNOME core that are written in higher level languages.
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?
Boffoonery - downloadable Comedy Benefit for Bletchley Park
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 is really hard to pick up (not just because of the syntax, per se but because there is very scarce documentation and very few books).
I'll look at Eiffel. If it's something I can pick up in a day and master in a week, then by all means.
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
Yeah... you don't actually know Java, do you?
Quick quiz: what's the maximum number of bytes before Hotspot won't inline a method? I thought so.
*REAL* programmers aren't so foolish as to lump Java/C# and Visual Basic in the same category ("Great languages for non programmers").
Sorry... but java has made lots of inroads, aroudn 40% of all projects currently are implemented in java and basically most of the server side stuff is done with it.
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?
If only I could come up with a good sig
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.
Actually, the reason people haven't abandone C is that they are NOT lazy. When it comes right down to it, all of the "features" of more "modern" languages are nothing but shortcuts that do more of the work for you. The fact that programmers are not willing to give up performance and effeciency in order to use an easier language is not a sign of laziness.
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.
And I program in it.
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.
You're right. I should have included LOGO and GW-BASIC as well.
I thought that since C got it's start with BCPL that the replacement was going to be P.
The point is well intentioned people can put in factually incorrect information and it may not be corrected. Wikipedia is a nice toy but can't be trusted.
Read reviews of shopping cart software
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 that the code must be compiled during the execution?
I don't mind running a few java apps on my system. They use a lot of ressources but thats ok just for a few apps. There are dozens of processes running on my machine. If they were all running Java it would take all my ressources.
I use JEdit as a text editor. It runs flawlesslly in java. But text editors don't need lots of power. I mean text editors written in C ran perfectly on a 386 with 500k ram. For people who say Java is fast, do you think Jedit would run on 386?
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.
"Let the script kiddies play with Java, Perl and the rest of that crap."
By this comment alone everyone knows that steve_1x0 is a moron and that his posts can be just as pure nonsense. If you need and more proof of his idiocy look at his comment history. Is there any way to mod his posts down permanently to "-9999 steve_1x0 is an idiot."
Eiffel has unforgivable Pascalisms and other nasty crap in its syntax. Fsk ":=". And fsk "END". And fsck all the rest of the silly shit I see in the syntax. Modern programming language designers need to take a good look at Python syntax before designing their machine code compilable languages.
Personally, I'd like a nice staticly typed Python-like language to fill that need.
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?
"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 talking about.
Looks like Groovy has been voted in unanimously by the JCP Executive Committee. Sun, in particular, seems enthusiastic about it by their comment.
If the rest of the process 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 language is designed for Java people to pick up easily), but with some claimed advancements. Gnome can still tap into the C# and Java programming pool, hardcore C/C++ guys may find it a decent compromise and swallow their pride long enough to play with a new toy without admitting that they're using C# or Java. And, should M$ try to "extend" the C# language that they cloned from Java to make it more difficult for Open Source implementers, they would already be using a more stable (referring to language, not performance) Open Source language to depend on.
= 9J =
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.
Then explain where he's wrong. Go on, try it.
'Standards' in computing only impress those who are impressed by things like 'standards'.
Nonsense. Bad code can be written in any language. Well-written Java code is fast stuff. The two primary speed problems in Java are: (1) multi-dimensional array lookup and (2) the need for casting from Object arrays. Outside of that, my experience is that Java code is quite fast.
And C++ is much harder than Java. Its syntax is gigantic and tacked-on,
Ahhhhh.... suddently everything becomes clear.
Don't you realize this is a vanishingly tiny percentage of total runtime?
For people who say Java is fast, do you think Jedit would run on 386?
Java the language != Swing. Go back to school.
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 is not a realistic option.
I love Gnome, but I will forever banish it from my system if they adopt Mono/C#. I do not want to worry about how firm the footing is under Mono. It would be horrible to loose Gnome due to such a circumstance. The danger isn't in choosing to adopt it. The danger is in choosing it and it becoming more successful than it's Windows counterpart. Microsoft would be content for it to play a distant second fiddle. If however, it actually surpasses it, we will have "SCO vs. the world" part 2. If it is a core piece of Gnome, bye bye Gnome.
personally I think "The [G/K/Q]ommunity" should find a way to Embrace, Extend, Extinguish both Java and C#...with their own standard.
In the interim preprocess both the highest level code (and/or bytecodes) into [G/K/Q]NU native format.
Run the resulting bytecodes on the "[G/K/Q]LR/[G/K/Q]LI".
Now is the time to out-FUD, out-EEE both Microsoft and Sun. IBM and Novell should step up to the plate and make it happen.
What we really saw last week was not Sun Micro joining MS, instead they are cowering in fear of IBM, and made a really shitty choice of running to satan for cover. This is going to cause the open side many, many problems down the road. But hey, as long as ballmer and mcnealy are golfing together, maybe RMS could be their caddy?
You're right, you need to know how your compiler interacts with the machine. You're wrong in your level of concern, though. The languages in question don't offer the foot-shooting capabilities of C/C++. You can't leak memory in a GC'ed language, so that removes that concern. Passing objects vs passing pointers isn't an issue in languages that only pass symbols which have references to the objects themselves. Etc, etc. Yes, there are other concerns in place to watch for bottlenecks and ways to improve speed, but these factors will not prevent the new programmers' code from running, just from running quickly, which can be solved in an iterative fashion.
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 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 (;
You may very well be correct about the rest of your criticisms.
> 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 faster than C/C++ (in my experience).
Now the best way would be to crete our FREE high level language (as Microoft created C# instead of using Java). We can have jc* high level language which is the best solution. Unfortunately there is not enough time, resources, etc. to decide on the language specs, implementation and testing.
If Eiffel is free (which it seems), and a nice language as C# or Java, and is available now! why not consider it. You can always embrace and extend it too.
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 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 (;
(At the time of writing, m00nun1ts signature was:
"I made a change to Wikipedia that sounds right but I know is wrong. It's been there since January 2004 unchanged.")
Yeah, and I pissed in your fucking OJ this morning. Not literally, but all societies are based on trust and cooperation. Go and fix it again, you vandal.
Wikipedia will always have some amount of entropy. That's hardly news.
Shoot read the GNU/FSF pages. Software developed in a proprietary language is of less value to free software than software developed in a language grounded in real standards, the kind ANSI and ISO spec out.
Are the people who control Gnome even considering moving it to a new language?
.NET, and that the people claiming it are full of it. Naturally, once a story gets rolling, people happily continue to propagate horseshit.
.NET as an implementation technology. The headline from the Register is misleading, for a number of reasons:
.NET interest:
.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.
.NET, it is very possible that people were asking `Miguel wants to depend on Passport' or something just as bad as that.
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 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
May we never see th
People aren't always lazy. To create rich, responsive, fast native desktop applications, C and C++ are better choices than Java or Python. That is why a great deal of development continues in these languages. Note that I didn't say they were better languages ("better" is always a subjective viewpoint anyway), merely that they can create faster, more responsive programs on less-powerful hardware.
The need for the new in this case is also probably linked to the facts that .NET" (not so laudable).
1) Ximian/Novell wants to increase Mono's marketshare(a laudable goal), quite probably by increasing it's mindshare in the gnome community(still laudable) through being "the most compatible desktop environment to Microsoft's
2) A new language might help allay some of the (hypothetical) problems(I don't develop for Gnome so I don't know what they would be) that a mix of language choice/design introduced earlier
3) A new language, with a seperate remote procedure call convention might drive them to change their corba-based current setup(Java's RMI and Mono's version of XMLRPC come to mind). This may or may not be related to hypothetical 2) Corba is generally considered useful, but heavy, but platform and language-agnostic. Moving to
a different language might change the equation in this case(not saying it's necessarily for the worse, but I'm trying to understand the logic behind this)
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
>>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),
Hmmmm. A quick search on monster.com for Java yielded "Jobs 1 to 50 of more than 5000"
C++ Yielded "Jobs 1 to 50 of 4162"
So Java is not being used just in acadamia. Get you facts straight.
But if You absolutely have to stray from the good ol' trusted model take a loot at other options like O'Caml: http://www.ocaml.org/
Cheers
What about ADA?
Wasn't it developped with the express purpose of unifying development languages under one standard? I is widely deployed already, and has native support for all the higher-order functionnality needed from an application-level language
Why would they want to switch to another language, which some developers might not like at all, rewriting every core gnome app? Sounds like they're overdoing something (not sure what exactly). Why does it need to be one language for everything anyway? They could have applications written in nearly every language, because the bindings exist. Or limit it to some, like, C, C++, C#, java, python. Anyone care to explain?
For all the people who say that C should be used because it is well known by everybody so there is a low point of entry -- have you seen GLib??? It's another language!
In short, a language which is not Eiffel.
Gtk bindings for Ada DO exist.
Ok. I know I'm going to get crap for this, however, Pascal is a good language that is easy to learn, readable, and efficient. Most people complain that its a "teaching language" and is not "industrial strength" however, tell that to the embedded programmers who still use it. Some Pascalisms, I agree are fairly annoying, but why not update the language instead of defining an entirely new one. There are at least two open source Pascal compilers (GNU and FreePascal) so why not make some efforts in bringing those two languages up to speed with some of the features that everyone is griping don't exist in this language or that language? Eiffel is arcane, but does have some useful features that others lack. However, I'd much rather have a language which is readable, efficient, well known, and available for many platforms. Lets work with what we have. Too many damn languages are being invented rather than concentrating on what we have and making it *right*.
C libraries that "allow the programmer to perceive the library as object-oriented" are great for people who like to reinvent the wheel.
C is perfectly capable of supporting garbage collection.
Sure, as a kludge! They *claim* that there is very little risk of memory leaks or accidental crashes due to this technique, but it doesn't exactly give me the warm fuzzies. Wait until hackers start exploiting this code to do resource exhaustion.
I.e. I hope that the NSA won't be recommending C garbage collection for use on nuclear missiles any time soon.
-a
thanks for the link to revolution. Been wanting to get my feet wet, never coded a lick beyond basic html, and that don't count. Everything else I have looked at made me go cross eyed.
I'll probably get ridiculed for this suggestion, but I think that Ada 95 would be an excellent choice. It has a reputation for rock solid code. Check out my Ada page. If you don't know much about Ada, you will be surprised.
I watch Brit Hume on Fox News
I hoped so too.
Actually, there is little reason to listen to the confused rantings of the GNOMies anyway. Theirs may be a popular platform, but from the POV, it was long ago a lost cause.
C++ syntax is almost identical to Java syntax. At least when you don't use some of the more powerfull, weird stuff of C++. (You are not forced to use that stuff) The main difference is garbage collection.
"Java the language != Swing. Go back to school." Oh so if I only use the features that are easely done in C++ it's fast. Whats the point then?
Sorry don't believe you. Last year I used the IBM websphere IDE and just loading the damn thing without any project took 700 MB of ram. A C++ implementation would never have resulted in that much memory no matter how badly coded it was. (unless you were deliberately trying to take up memory of course). Hell I just verified the memory my Jedit was taking up right now: 40MB! Thats with only 12 relatively small text documents opened. Thats for a text editor! A text editor is the ideal example of an app that shouldn't take much resources.
When I have a lot of java applications running on my computer it becomes less responsive. I never have that problem with native code apps. When my system is low on ressources, the java apps are the first ones that stop working.
I have a 2.6GHz computer with a gig of ram and Java can easily take all of that up.
You sir are wearing blindfolds.
Eiffel is so far down the list of languages set to become the "next" tool of choice that it is frankly laughable to suggest. You can count the number of experienced Eiffel programmers in the state of California on your fingers and toes. Come on guys, get real.
Your argument may make sense for newish tools, but Eiffel has been floundering in the market for over a decade.
I've seen this debate brewing for years, and as a developer on other platforms I find it plain silly. For years people around Gnome have said "Oh C, it's great, it is neutral and you can write your own bindings etc." It is quite clear that this is BS because you actually have to write that software with a language, toolkit and architecture that is structurally sound for what you are doing.
KDE solved this years ago by recognising that object-oriented development needed to be done, but at a reasonably low-level so that the base of the desktop environment was compiled natively and ran efficiently. Even at the time this meant C++, but C++ toolkits were never very good at all, even on Windows. That was the rational behind using Qt. This debate ended pretty much on the first day that KDE was conceived!
I laugh really, as the people who have whinged and whined have been proven to be, well; whingers and whiners.
Oh please. I've used qutie a few development evironments that are memory hogs just as bad as websphere is ( I love websphere, by the way ) software bloat is not a java problem. you can easily make a bloated program in C++ or C.
by the way, when I load a empty project in websphere it takes around 100 meg.
PHP is the solution of choice for relaying mysql errors to web users.
ya I was using a beta, maybe that had something to do with it. But still...
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.
Yeah, most definetely. I still program things in C when it makes absolutely no sense to (I don't program operating systems, device drivers, performance critical code, ...), but I'm pretty comfortable with it.
I'm also doing a lot of Java lately, because I've grown used to it at work, and it's even more comfortable (for a recursive argument, the C-like syntax makes for a natural progression :). I even use it for text-processing et al., even though there exist more appropiate alternatives.
When you build something and hits a problem, there are 2 ways of dealing with it.
1. Going back to step 0 and redo from there.
2. Make things work and move on.
GNOME's progress is SLOOOOW because its leaders are trying to redo the same thing over and over and over and over and over, like choosing another language would magically solve all of their problems.
While another desktop, which I'll not name, chooses 1 language, sticks with it, and then concentrates on the applications themselves.
I'm sure this will not be the last time GNOME reconsider its programming language choice. Gimme a break - you cannot anticipate future problems so it is impossible to choose a perfect language.
I really hope this is the last time "programming language" is the main focus of future GNOME directions. Really. They are all Turing complete, thus equivalent. Just choose one and STICK WITH IT.
If, 3 years from now, we come back to the same question, then it's the time GNOME dies.
Just to confirm this irony: I know as a matter of fact that all new internal software development in the major swiss banks uses java exclusively, except for some parts of mainframe software.
UBS is also moving towards java on the mainframe (using websphere) for a part of their mainframe development.
We are talking thousands of developers here in very large corporations. Surely these few corporations are not the only ones, many more must be betting entirely on Java for their enterprise software development.
Since many of the older projects used C or C++, the fact that java already catched up almost with C and C++ on sourceforge means that of the projects starting now, by far the largest part must be java projects.
Most of the computer languages that were invented in academia (Lisp/Scheme, ML, APL, Haskell) stayed there and never took off (at least in their original form) as commercial mainstream languages.
Eiffel was invented by Bertrand Meyer mainly for academia to teach the principles of OO illustrated in his book OOSC (Object Oriented Software Construction), and it wasn't driven by commercial needs. Therefore I doubt it will ever take off as a mainstream commercial language.
fits the requirements just file. TDPL. There's even a gnu implementation of it now.
Well not quite. No one is saying anything about rewriting GNOME in some other language. The issue is whether or not they add a new language to the list of languages that official Gnome applications and libraries can be written in. If they chose c#, it would mean that you could go write an application in c# and still have it be considered an actual part of gnome and not just a GNOME compatible application.
In the end it doesnt really mean much for the average user or developer. Someone who wanted to write something using C# and GTK# would do it whether it was officially recognized or not.
A freshly started Gedit (written in C or C++, presumably) with no files open takes 11 megs of memory in my system.
It is an unfortunate fact that programs with graphical user interfaces take lots of memory as a rule.
When I have a lot of java applications running on my computer it becomes less responsive. I never have that problem with native code apps. When my system is low on ressources, the java apps are the first ones that stop working.The JVM is a native application. Therefore, if Java applications are causing problems, it can be traced to either 1) Bad code in the Java application or 2) Bad code in the JVM. Neither of these tell anything about Java the language, just about the current implementation.
Which could be better - Sun's JVM 1.5 still crashes/behaves oddly with pthreads. Sigh...
Forget magic. Any technology distinguishable from divine power is insufficiently advanced.
Once Again, More Slashdot Drivel!!!!!!!
Why is this moron modded up? What this moron is saying the more languages you pick up, the more skillful you are; on contrary, if you learn one language and can do it better than everyone else, you're some whore that is replaceable. Then the moron goes on to say all you need is two weeks to learn from a book to get the job done well.
Does something sound familiar? MCSE anyone?
If you can't communicate well with your out-sourced office using only your native language, you're "a one trick pony" - a pony who can save the company money for a short term. Even if you take 2 weeks to read a book learning the out-sourced's native language, you're still "a one trick pony" who think you can learn something indepth from a book in two weeks.
There's one reason GNOME should use Java:
Sun's Java Desktop runs GNOME exclusively. They will soon be one of the largest shippers of GNOME desktops thanks to WalMart. They already control Java.
Java and GNOME, a perfect match.
Can you cite a source?
long live KDE
Go ahead and do it! As a KDE fan, I think this would be the greatest thing Gnome could do. Switch to Eiffel, round up all of the five Gnome developers who know Eiffel, abandon the others, and rewrite the desktop from scratch in the new language. No way in the world would KDE be able to compete with that!
Don't blame me, I didn't vote for either of them!
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.
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.
Don't thank God, thank a doctor!
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 suppose they are, technically, different languages.)
Yes, I've used boost and STL and such, and yes, it's a completely different style of programming from C. That still doesn't make it a new language. It's simply been enhanced to allow some new "paradigms". (And they're programming paradigms, not "C++ paradigms".) But I saw the same sorts of things happen back in the stone age, when macros were introduced to assembly language. Didn't mean I wasn't programming in assembler.
For me, an important reason to use C is GCC. (Also the good documentation of the glibc.) I don't want to spend to much of the development time debugging the compiler or interpreter. (But it's good to know that i could have the source.)
This sig is a true statement, but I cannot prove it.
While your point about using modern C++ constructs is correct, it should be noted that both Java and .NET have security manager that can give additional security and limit overall damage, even if developer writes insecure code.
It doesn't support internationalisation.
Who cares anyway. The current direction of Gnome is nothing more than trying to be like Windows. So we have Gnome that looks nice but is doomed due the people like Havoc and other "usability" morons.
I mean... remove the tab completion just to simulate Windows' "tab is used to move to the next UI element"? Get real. What's next? Remove the tab completion in Gnome-terminal?
We have KDE, which still has the depth of options and freedom that *nix is all about, but lacks all the nice looks of Gnome. The themes are bad, the icons are really bad, the panel is a pain and the icons on the toolbar are too close to each other.
And we have a lot of old window managers that look like they came from Eastern Europe anno 1980.
The Gnome people should focus on making browsers support videos flawlessly, support Flash flawlessly (my browser hangs like never before whenever I'm trying to open either a video or an Flash thingie), they should focus on making administraion of fonts easy, they should focus on making a functional clipboard for all applications. They should see the big picture, not trying to remove each and every choice the user can make.
The KDE people should work a bit on their usability, but my guess is they're scared after seeing what happened when the selfproclaimed GUI experts took on Gnome.
Personally I'm tempted to go back to using Windows. If Gnome is never going to be anything but an attempt to copy Windows, I might as well use the original. And I'll keep praying that some day a brave hacker will fork the entire Gnome desktop and start embracing the nice features that make *nix unique - like tab completion.
Havoc, you ought to be ashamed of yourself. It's not nice to alienate all the good, old Gnome users.
. . . the future is brainfuck!
Nathan's blog
Care to back up your statements? I happen to think the Eiffel great type system and its awesome implementation of multiple inheritance are strong selling points, not weaknesses.
I don't foresee GNOME switching over to Eiffel any time soon, but I would love to see someone write an Eiffel GNOME API.
I started messing around with Eiffel some time ago and I love it. I can't get enough of it. C++ is really a piss poor language in comparison. Now that I've gotten used to the cleanliness and simplicity of Eiffel, every time I see C++ source code I get a sick feeling in my stomach. Really, it's amazing to look back at this crap you had put up with for years and realize just how bad it is.
About the best analogy I can think of is this: It's like having a three-bay garage full of Snap-On tools, two and four post lifts, overhead motorized trolleys with electric winches, air conditioning, etc after you've spent years changing transmissions and doing major work outside on the ground with only the most rudimentary, cheap Chinese tools.
Now I know I'm gonna get flamed for these views, but I don't care. Out of all the people who disagree with me I'm sure only a few have actually taken time to learn and use Eiffel.
Yes, Eiffel lacks some features that it needs. One major example is dynamic library loading, which is totally non-existent in Eiffel at the moment. You can of course interface your Eiffel code to external C routines that load and use whatever C libraries you want, but you currently can't build and load Eiffel dynamic libraries. I am confident this need will be addressed in a forthcoming Eiffel standard.
Yes, Eiffel is a free and open standard. It is developed by the NICE group. One poster made the good point that the core libraries are different between the various implementations of Eiffel. This is true. However, the only Eiffel implementations really worth mentioning are a) SmartEiffel, the free GNU implementation, and b) ISE EiffelStudio, which is a really freakin awesome development environment, but is not free and costs mega $$$$.
As a language, Eiffel is clean, simple, and POWERFUL. The inheritance facility (both single and multiple) is top shelf stuff, far more clean and powerful than C++ or Java. Same goes for the type system, the syntax, etc.
Eiffel also supports and encourages a type of programming known as "design by contract"- basically, each class and feature (method) has a specifically stated contract it must fulfill. Suffice to say this method when properly used *will* result in a program that is not only far less buggy, but whose bugs are easier to catch and take care of.
IMO, one of the biggest problems with C++ programmers switching to Eiffel is that they instinctively write programs with C++ design and Eiffel syntax. When steel was invented, engineers didn't design steel replicas of wooden bridges, they came up with all new designs to take advantage of the better properties of steel. Same thing with Eiffel. It's easy to learn the syntax, but it takes a while to totally get used to Eiffel in a way that lets you take full advantage of its unique features to produce the best quality software possible. Trust me, when you get to this stage, you will not go back to C++.
I highly recommend the book "Object Oriented Software Construction 2nd Edition" by Bertrand Meyer. It is *the* definitive book on object-oriented programming. It extensively uses Eiffel as its notation, but the concepts introduced can be applied to C++ or Java or any other OO language to help create better software. Be warned, it's very verbose in a lot of areas, and some of the stuff is really dry and will put you to sleep. I recommend skipping past certain stuff like abstract data type theory, mathematical proofs of software correctness, and similarly intriguing subjects.
Don't confuse using monads with understanding monads. Every imperative programmer is using monads (at least as much as they are "using" functions), because semantically every imperative program is monadic. Most Haskell tutorials teach Monadic I/O before they explain Monads, and I suspect that one could write many useful programs in Haskell without. The point of Monads is that they are an embedding of imperativeness in a purely functional language and therefore you have access to the imperative innards (to add things like exception handling).
I have used Eiffel for over 10 years, and keep using it because it is far superior to Java or C# - it properly supports OO semantics, and is the only language with contracts support. Java was a 10-year old language design when it came out, and in my view, it's really quiet hopeless now semantically speaking. It may be ok for programming, but not for building reliable, fast, model-based components. C# is only slightly better; and worse, programming in either of these makes it harder to integrate with tools built in the other language.
My motivations to use Eiffel are due to the hard requirements of reliability and maintainability, originally in control systems, more recently in health. (And I programmed in C and C++ for years before Eiffel).
Eiffel is easy to learn, has nice tools and libraries, and can be integrated with C# and Java, as well as other languages. And there is a nearly 1:1 relationship from the model to the code. Java seems to me to be a single-language lock-in; C# seems to be a single platform lock-in (but may change). Maybe a few of the commentators here might have a look at Eiffel before commenting?
- thomas beale
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. Hence all the ignorant remarks that language A is better than language B because it has a bigger library (a library is not part of a language), or because A is dynamically typed (static typing subsumes dynamic typing), or because A is interpreted or not (interpretation is a property of an implementation, not a specification).
Such people do not deserve a say in what syntax---much less language---they use, because they aren't informed enough to make a good choice.
Now, I am an informed programmer, and I do think I deserve a say. But I will tell you that, though I am not a big fan of OCaml's syntax, C-like syntax or LISP-like syntax, I will gladly use any of them if I need to, because I know that the importance of semantics dominates that of syntax, and because I know that learning a new syntax is the easiest part of learning a new language.
Arguing about syntax is like picking a political candidate because he looks attractive: irrelevant. Do you want an ignoramus like that to decide who governs you? Do they even deserve voting rights? There really is no point: you might just as well just thrown some random noise into the poll records, or automatically pick a candidate for these people based on whether they prefer Britney Spears over Avril Lavigne. Different method, same result.
BH
Fools! They laughed at me at the Sorbonne...!
Check out Brooks's "The Mythical Man Month". I don't have it in front of me, but he mentions that the number of languages known (not just syntax) is a good indicator of ability. It is much better than years of experience.
- doug
Whether Eiffel actually has the virtues often claimed for it, and whether these virtues outweigh its vices compared to other languages, is another question for another day :-) It would be a nice counterpoint to its virtues. Thanks!
What? I am puzzled, and I will ask you (I don't think it's OT, too) to make today the day for enumerating its vices
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
"Success" of JAVA? From what I hear and see, there would be more JAVA engineers out of work for many years now than engineers of any other major development language, and, at some risk of unintentionally offending some, I'll submit what many of us said long ago, which imho has certainly proven true: the reasons were plain from the inception of JAVA, because JAVA's limitations and overhead were plain from its very inception. JAVA projects are notoriously more costly; notoriously more prone to flaws; and notoriously less efficient than alternative approaches. Talk to candid, truthful JAVA engineers, and you'll get the same story: Instead of realizing the promise of portability, they found they had to write down to the least common denominator -- the functionality of the least of involved systems. This itself "suggests" a very limited scope of functionality, achieved at great expense of learning those limitations "the hard way" -- and being "stuck" with them. Is JAVA as fast, cost effective, or reliable as the best development alternatives? Absolutely not. Nor can it ever be, because even before JAVA existed, development tools reached far beyond the potentials of JAVA. IF JAVA applications ever reached even the functionality threshold of conventional applications, it would be because local JAVA engines evolve to be as much as a second, redundant operating system. Is its concept even as clean and as clear as the best object oriented alternatives? No; and this answer particularly, if we are to respect the concept of building our wares out of the "right" building blocks, is a most important one, as it separates the right tools from the wrong ones. In engineering anything to be epitomized, nothing is done without a reason, and in fact, everything is done because ALL the questions were asked, and ALL the BEST answers WERE adhered to, without deviation. There is no "secret" to good engineering: it's a formula for closed doors to software failure (and thus insecurity); it's a formula for unlimited functionality; it's a formula for a balance of speed and resource conservation with no forfeiture whatsoever of reliability. In each of these areas, the very concept of JAVA suffers serious obstructions to excellence, to real portability, and thus to the cost and quality of end product. No time (or possibly place) for [more of] an article here, but you can count me among the many who think JAVA is a crazy way to do ANYTHING. Similarly, I believe there are subversive reasons behind the conception of DOT NUTS; I don't believe DOT NUTS either will serve its purported purposes -- and certainly no better than the best compiled executables of the present (except perhaps for areas of refinement of the object oriented architecture underneath it all -- which only suffers because the preceding architecture was in considerable areas, badly conceived). Interestingly however, the similarities between JAVA and DOT NUTS implementations are substantial. Even more interesting is the fact that our ahem, exalted, domineering, "fairly competing" company chose the architect of the best object oriented tools of this day -- and what many of us consider the first true object oriented development environment -- to try to engineer this concept into something maybe it cannot be. But they picked the best for a reason: the best was built on the right formula; and our giant monopoly really CANNOT "compete" unless such perfection is an integral foundation of their venture into a JAVA-like implementation, which strikes me most to serve the interest of involving particularly web development, with a system which at this very moment we can do entirely without, and best do without, if we are to maintain the standard of security carried by Linux. To make a long story short, I say executable web applications -- applications to which client-side executable objects are integral (versus data transmission supported by server-side functionality such as forms, web server applications, etc.) are INHERENTLY insecure, because merely opening the door to execution on the client
I've spent entirely too much time on c.l.e and don't want to repeat all that argumentation again. Google has the archives, study them if you like.
From the SmartEiffel documentation:
Mature, fully-integrated Unicode support is in my top ten 'must have' features for a development system/language. I would think it should be in the Gnome project's, too.
Of course, C doesn't have built-in Unicode, but I'd guess that Gnome uses some library for it, as KDE uses Qt. In KDE, QString is used for 99.99% of strings and is a Unicode string. C-style strings (QCString) are only used for compatibility.
One of the things keeping me from doing more with Ruby is the fact that its String class doesn't do Unicode. I managed some hack, storing UTF-8 and converting with libiconv, but then I have to think about portability, etc. etc.
C++ syntax is almost identical to Java syntax. At least when you don't use some of the more powerfull, weird stuff of C++. (You are not forced to use that stuff) The main difference is garbage collection.
That "powerful, weird stuff" is what C++ is all about! If you don't use the features that are the main (and only) difference from C, why bother at all?
Hell I just verified the memory my Jedit was taking up right now: 40MB! Thats with only 12 relatively small text documents opened. Thats for a text editor! A text editor is the ideal example of an app that shouldn't take much resources.
A "text editor" with a featureset of jedit is by no means a small application that shouldn't take much resources.
jEdit != Notepad, as you well should know if you've actually used it as your primary editor.
I meant like templates and multiplie inheritance.
Just a hint: you may find yourself with bigger audience if you learn to outline your text.
That's completely, totally, unreadable. I didn't think anyone could mangle English to almost resemble perl...
Ocaml Ocaml Ocaml, did I say Ocaml? Why specify types when you just don't care, let the Ocaml compiler figure it out and smack you if you made a type error.
button#on_click
(fun () -> text_area#add "button clicked.\n")
Higher order are just great for connecting up all those disparite gui elements.
Throw away all those old crusty languages like Eiffel, Java, C#, and C++. They just don't cut it. And while you're at it throw away all those old void pointer languages like Smalltalk, Python, Ruby. I mean who wants to find out about a type error at run time, really.