Mono has the real possibility of getting into legal trouble with MS.
Java would be preferable if C++ cannot be accepted. Plus Java is much more mature than Mono (which still will take long to reach full maturity of .NET).
Productivity-wise both C# and Java are still much better than C++.
I personally find this ironic and sad that this is still being discussed in Gnome camp. It really hurts Gnome. KDE people have moved to SVN and continue to code like never before with a solid plan and Gnome sadly looses its time on such topics.
Don’t get me wrong, I am a big Gnome lover, but there are more things Gnome needs to address at this time. Performance and speed for example.
Havoc says that Red Hat can’t ship with Mono, that there are reasons for this, and that he isn’t allowed to say why. I look forward to hearing the reasons. Until then, that kind of behavior is unacceptable from a software company, particularly an open-source one. Be honest!
Mono is just an implementation of an open (?) specification by Microsoft. MS can do nothing to stop mono. Mono use will continue to grow independently of .NET grow. The main problem with Java is it’s not FOSS. If Sun makes Java LGPL then things will be different.
There is Python and Ruby too. Both are great languages for GUI development. What you can’t do with Python you can do it in C. Most (if not all) Gnome libraries and primary applications are coded in C. I really don’t mind an heterogeneous desktop with different applications made with different languages but with the same core libraries. Of course, having a Python interpreter plus a Mono interpreter (perhaps a Perl interpreter too) and a Java interpreter running at the same time will eat up too much memory to be really productive. So it’s not just a matter of developer productivity, the end user shouldn’t suffer because of developers choice. So there will be, for sure, some interesting arguments pro-Mono/pro-Python/pro-C/pro-Java.
If “be honest” going to get them in trouble with SEC, I assure you, they better not talk about it. Havoc does the right thing there and not give the reasons. His first responsibility is towards Red Hat and its shareholders.
I agree with this too. Gnome continues to lose steam as development has slowed down a lot and they fight forever over python/java/mono. It gets boring and so many users have switched to kde or xfce.
The problem is, they’re arguing Open Java vs. Mono. Open Source Java is behind, and can’t really expect to simply catch up to what Sun has been working on for a decade.
C++ isn’t really a viable option for a modern desktop, people want a cleaner (arguable) language and a good garbage collecter, ie: they want faster, easier, development tat still makes use of the nice, fast, lower level C/C++ libraries through a nice API.
What is the point of adopting one of these two dumbed down yet low performance (on the desktop) languages?
The problem with these languages is that while they are simpler than real C++ neither of them are really easy to use, Neither of them are accessible to the casual programmer.
Choosing either of them is a lose lose situation for the user who will end up saddled with slow memory hogging programs.
Let the professional skilled programmers carry on writing in an efficient language like C.
The rest of us could really use something more easy (without ten thousand built in classes to learn) something like a BASIC interpreter. Preferably one that runs fast.
Linux / GTK is difficult to learn to program and so Linux is generally only programmable by an elite group.
It may be that part of the Dell investment involved Red Hat staying away from Mono in case of legal mines. Not super likely, but could be.
Anyway, Java isn’t an option as far as I am concerned. I have one x86 box (running debian and close to dying) and a flock of PPC hardware. To quote a /. post:
“So Java’s not open source; who cares. Out in the real world, no one cares whether Java is open source or not. Anyone can quickly obtain it with a couple of mouse clicks. If it enhances the functionality of OOo then why not use it?”
I think that comment is right, if anyone could “quickly obtain it with a couple of mouse clicks” I doubt we would be having this problem.
Red Hat has good business reasons to lock Linux in as x86 only.
Enough on technology. On the crux of the issue, what I wish GNOME would understand: Red Hat not shipping Mono is currently a can’t rather than a won’t. Making it worse, we are not able to spell out all the facts on why we can’t. In fact, none of the Red Hat engineers (including myself) knows all the facts (and we couldn’t share them in public if we did). We continue to try to get this issue resolved and there are serious efforts in progress, but, well, they have been in progress for quite a while. At some points it felt close to resolution, at the moment it doesn’t really, at least not to me.
So he doesn’t know all the facts? Why? It’s either a patent issue or not. I wonder if Ballmer and the RedHat executive meeting touched on the Mono issue.
And then he goes on to say that Eclipse rocks. Yeah, Eclipse rocks, but is that enough to advocate Java?
Let’s face facts. RedHat puts a lot of work into GCJ and getting Eclipse to run native. And let’s not forget that RedHat loses a bunch of control with Mono pulled into the platform.
Java and Mono should be add-ons to Gnome, not part of the core libraries.
Java and Mono (in the form of .Net and C#) are controlled by two different corporations who are either subversively hostile towards open source (Sun – Java) or openly hostile towards open source (MS – .Net). And both of these corporations are armed with patents and copyright, and will use these to their advantage (ECMA standards or not).
However, it’s okay to include Java and Mono as add ons, in order to attract developers from those camps.
But for core Gnome, the tools used should be complete open standards and/or open source, like C, C++, Python, Perl, Ruby, etc. This can and does deliver a great development platform. Java or Mono are not needed for this.
And I agree with other posters – Gnome needs to move on from the Java vs Mono debate. KDE is improving rapidly with QT/C++ and isn’t looking back. C, C++, GTK+, GTKmm, and gtkPython are the way forward for Gnome.
What is the point of adopting one of these two dumbed down yet low performance (on the desktop) languages?
The problem with these languages is that while they are simpler than real C++ neither of them are really easy to use, Neither of them are accessible to the casual programmer.
So, they are dumbed down, but not easy to use?
Choosing either of them is a lose lose situation for the user who will end up saddled with slow memory hogging programs.
I guess we should go back to writing in assembly. The world doesn’t revolve around your underpowered machine.
Let the professional skilled programmers carry on writing in an efficient language like C.
C is one of the most “dumbed-down” languages out there. One of the reasons that there is always these language debates is because C isn’t powerful enough. Note that the KDE people never have these debates because they chose C++, which is much more complex, but can be abstracted to a nice API with intelligent design.
The rest of us could really use something more easy (without ten thousand built in classes to learn) something like a BASIC interpreter. Preferably one that runs fast.
You can throw that idea into the dumpster. Basic will never make it in.
Linux / GTK is difficult to learn to program and so Linux is generally only programmable by an elite group.
Yeah, the whole point of bringing Mono or Java into the platform – a rich set of class libraries with a relatively easy language to develop for.
Mono can host a lot of languages. So if you need a dumbed down C#, probably some drop-dead easy scripting language, then it can probably be accomodated – if it hasn’t already. Check out Boo.
Sun has already climbed into bed with Microsoft, and now we hear of meetings between Microsoft and Red Hat. Suprise! Red Hat says Java should be used instead of that software that gives the finger to Microsoft and Sun called Mono which is developed by a company called Novell that has given the finger to Microsoft many times in the past. By the way, isn’t Red Hat that company that Sun identified as the enemy that must be destroyed and now it is flogging Sun products? Is there a new axis of evil emerging here?
I normally do my stuff in Java, but I don see any reason to go one direction only.
Both have their problems of having a commercial entity behind it, which could pull the plug (although it is more unlikely with java)
Java would be a good foundation having a solid native compiler (gcj) already behind it.
C# also is a good foundation, but as I said with both languages, the commercial entity can pull the plug leaving a devastated gnome behind.
C++ might be a good way to go, but the language is heavily bloated. The best way to go might be an open scripting language like ruby for smaller stuff and Objective-C which looks as a very reasonable alternative (has better mem managament than C++ and much less bloat) for bigger stuff.
But one thing is sure, Gnome needs an OO foundation app programmers can build upon.
I don’t agree that Linux / GTK are hard to program at all. Compared to what? Both are pretty straight-forward.
I do, however, believe that despite being C++-based (which I’m not really crazy about), KDE is much more convenient to develop for. I think this is why they are receiving so much mindshare right now.
The tell-tale sign of good design is prolific code reuse, and KDE has that in spades over GNOME. On that basis alone, I would concur that if GNOME doesn’t get some better direction it will substantially loose market share.
As for Java versus Mono… Well, I’m not quite so clear that either is the best tool for the job. In fact, if you wanted to maximize developer productivity, I’d say that both environments would do well to look at making Objective-C bindings to their toolkits, and providing one or two unencumbered scripting languages for glue-work (Python and Ruby are good choices; though I write a lot of PERL for my job).
Both Java and Mono are unsuitable, by the sheer virtue of their massive complexity, their reliance on a VM, their lacklustre performance and the size of their class libraries.
The whole point of writing GNOME in C as opposed to C++ was to maintain developer-friendliness and compatibility across systems.
If Java or Mono is the answer, then Havoc and Miguel have besically just invalidated all the work on GNOME thus far – Why the holy $^%& did they not start developing GNOME in Java from day 1 if a garbage-collected language running on a VM is seen as the best solution?
Its not like Java wasn’t around when GNOME started (or when, say GNOME 2 was first conceptualised).
Tacking another massive, slow framework on the side in to try and restore the programmer accessibility that should have been *designed in* in the first place is one of the most retarded things I have yet seen develop in the Linux desktop world.
Theres actually nothing stopping the GNOME framework from having the best, simplest and most powerful API on the planet, except for these lead developers who have obviously completely sold out to the idea that huge corporations (Sun and Microsoft) can do a better job of deciding what that API should be.
Adding Mono or Java will be the balkanising factor that forces GNOME to split, leaving not 2 but 3 major desktop (and eventually 1 – KDE) platforms in the Linux space.
Clearly, both Novell and Redhat need to pull their heads out of their asses on this one, since they are just repeating the mistakes that Sun,SGI,HP and IBM made when they screwed us all over with the CDE/NeXTStep/NeWS fiascos – the end result of which that only the stupidest, worst technology was chosen to be a ‘pseudo-standard’ in the UNIX world, and was finally dropped in favour of new ideas (e.g. GNOME/KDE)
Use Python. It will offer real-world application developers everything they need from a technical viewpoint, and comes without any ridiculous patent problems, questionable heritage or partisan politics.
If it turns out to be a mistake, it can be swapeed out for a better (perhaps designed from scratch to work with the platform e.g. AppleScript) solution, or the same syntax can be preserved by using the forthcoming Parrot VM.
In fact Python bolts onto Java or Mono VMs without problems, so I just dont get the reluctance here. If Redhat wants to ship a GNOME with a Python->Java VM->C API instead of a direct Python->C API, or Novell wants to do a Python->Mono->C API approach, whats stopping them?
Just do it – or watch the users and developers shake their heads in amazement and either code around this crap, or abandon the platform altogether.
I don’t care in which program a application is written. I want applications which are integrated with the DE, have the same look and to use decent memory.
I think 512 Ram is a reality for desktop users (not corporate users) and for mono/java applications is enough.
How about a Gnome framework which is going to be the base of java/python/mono developers ?
is definitely better in java and C# than in ObjectiveC, because java and C# enforce garbage collection while ObjectiveC does not enforce it and merely uses reference counting with explicit frees and garbage collection dumps you can free with one command.
I am a java programmer mainly myself and I can see why Havoc Pennington recommends java, because the free code pool under very liberal licenses is enourmous and has mostly quality code. But I still think if Gnome wants to play safe it definitely needs good ObjectiveC bindinds, and a good glue code into 2-3 scripting languages.
As for the Java vs. C# in Gnome debate, both languages have their merits
with C# the easier mixing of platform code into C# sources and Java with its enormous free software pool (and believe me, it really is enourmous the stuff outside of the SDK is ten times as big and the SDK itself is huge) and good native compilers.
People need to remember that Novell now leads the development and that Microsoft also has a vested interest in Mono succeeding. If .NET only runs on Windows then that is a clear advantage that Java has over .NET and many of the major Java users like the federal government won’t even consider switching away from J2EE to a vendor lockin. Another thing, don’t forget that if Microsoft goes after .NET they will be going after one of the things that many .NET developers consider a good reason to use it. Many cite Mono as a reason why it’ll be a viable alternative to Java, but if Mono gets torn apart then Microsoft is back to square one.
What Microsoft has going for it is the quality of its .NET development environment. Visual Studio.NET is probably the best IDE availible on the market today bar none. If I were developing a major corporate project using Windows Forms or ASP.NET I would want to use Visual Studio.NET for it because it’s the best for that sort of thing. If people switch to GTK# for GUIs then what does it matter to Microsoft? That requires a lot of effort and the presence of Qt hasn’t hurt them in the slightest. If anything, the fact that it runs on Windows has been a feature that is good for them because a Qt program can run alongside tons of other useful programs availible only on Windows or MacOS X.
That’s one other area where Mono can’t address anything right now. GTK is not native for Mac users. If Microsoft were to release a free native Windows Forms runtime for Mac Mono users that would kill the adoption of GTK# by .NET developers on MacOS X. Not only that but Microsoft could use Mono to gain leverage on the Mac market by convincing Mac developers to use Windows Forms so that they “aren’t locked into MacOS X.” Since all major commodity PCs sold today are running Windows, it is safe to say that Mono will only be a boon to Microsoft. Maybe when they lose 30-40% of their marketshare they’ll see it as a threat, but that’s a long time off, if ever.
Well, first ditching java and C# and then recommending python is a little bit shortsighted.
See the idea behind is, and Microsoft basically does the same with .Net as well as IBM does with the SWT and Eclipse, use the high level language for application code only, use it as a glue and let the underlying system which is constructed in a faster language handle the stuff which is absolutely time critical (aka the ui which has to act as responsive as possible)
Using C and then putting lean and small OO bindings on top of it has been a valid approach since the mid eighties when the first commercial smalltalk systems did this.
So see the usage of Java and/or C# more like a glue between native implementations, and nothing is rendered invalid. I agree however, going the OO route would have been wise in the first place to keep the API lean and easy, but on the other hand, it is ten times easier to get a binding from C to any OO language, than from C++ where you have to fight constantly with ABI changes, features almost no other OO system has etc…
KDE only could pull the bindings off, because KDE only uses a sane subset of C++ and also has a language independend lean and fast component interface in place (another huge problem Gnome has)
But first ditching java and C# and then recommending the 10 times slower python is not really a valid proposal for a solution. Python has its strengs, but less as a base for OS and Desktop APIs than java or C# have.
Python can be used as a glue for smaller apps and there it is a valid glue language.
But its NOT a base – its a scripting language, or a RAD framework – binding into the core, performance optimised C libraries.
The base APIs are glib, gtk and gnome, not Swing and Windows.Forms.
Python is more than capable of instantiating and accessing OO collections of glib,gtk and gnome objects at speeds that probably beat Java and Mono – I’d be interested to see some benchmarks for this usage pattern.
If GNOME is going to use Java/Mono as a base component, then they should throw all the C stuff away and start from scratch.
“And I agree with other posters – Gnome needs to move on from the Java vs Mono debate. KDE is improving rapidly with QT/C++ and isn’t looking back. C, C++, GTK+, GTKmm, and gtkPython are the way forward for Gnome.”
I agree with the comment that Java is a language that leaves the end user with a bad deal. I have yet to use an application written in Java that is not slow and heavy. Often they are unstable as well. It’s bad on windows and on OSX it’s horrible. Don’t know much about Gnome but I hope they choose a better language than Java.
First I do not understand the way GNOME could integrate Java (or C#) into the project. To make a gtk# or java wrapper? Isn’t it already done? Integrate JVM inside it and program in Java? So do we need GNOME? We have GCJ + SWT.
Objective-C does not, I repeat not, have better memory management than C++. Stack-allocating objects in C++ (even though not always possible) is so much easier than fiddling with reference counts, Auto Release Pools helps somewhat but it’s still not even close.
Actually python can be used as a glue language, but it is not really that suitable for bigger things (believe me there is a reason why not too many big projects have been implemented in python)
I dont have any benchmarks here, but as long as pythons interpreter is not up to par to other VMs in speed you wont get any speeds as near as Java or C#.
Java is not slow per se, the reason why it is considered to be slow is mainly that early swing guis were dog slow, but the situation is like that, that Swing basically draws everything itself including the fonts, given the fact that Swing already renders on a modern blackdown or Sun as fast or faster than GTK2 is an indication of the speed of modern java. C# on Linux is not there yet speedwise, but it soon will be.
Now here we have python, a nice language highly dynamic which is a speed problem itself, and a rather unoptimized VM underneath it (which currently gets an overhaul) mainly used for scripting learning and small apps with a huge fanbase.
Suitable for lots of stuff including Gnome glueing, but not as a language for the foundation of something like gnome. In the end if you did something like that in python you would end up with a python swing, and believe me that would be dog slow (you dont know how much stuff swing does underneath)
So Python would be an excellent choise for app glueing up to a certain size of an app. But definitely not as a base for an entire desktop system. Neither is java really up to the task for similar and other reasons (one being the mem footprint) nor is C#.
I’ve always liked Gnome and used it for my primary desktop for more than two years. I really don’t like the idea of having Mono (or Java) bundled with Gnome. If one of the two has to be I’d say it must be Java. I’ve had mono installed for some time and run some gnome apps implemented in mono (beagle, f-spot for example) and found them to require quite a lot of resource. Gnome apps in general tend to use lot of memory but those (small) applications implemented in Mono require a whole bunch more resource.
What ever is said about Mono, parts of it will always be patented by Microsoft and just this alone makes me consider looking for some alternatives to Gnome. I’ve tried to keep my desktop clear from commercial or commercial-related stuff and it really seems Gnome developers would like to take this away from me. Please, please consider it.
As I see it there wont be any java bundled with gnome, the way readhat is heading is different, they use GCJ as native compiler, you wont even see any VM on the machine, just a libgcj and other libs and native executables.
Java itself via GCJ can be used as a language which has to go to a build and link cycle just as C++ does and for the end user it does not make any difference (no VM in RAM no java processes)
the apps wont even look different because they directly or indirectly bind into the gnome libraries.
All this does is, make things easier for the application programmer to handle things. There is no swing involved and other nastyness (which most people complain of because Swing has a bad track record of looking out of place on any platform).
Damn.. this discussion is sooo annoying, and really pisses me off..
Why is everyone whining about GNOME not going forward, and what language to use and not to use? When are people going to understand that it really don’t matter?
The gnome desktop is fully usable as it is. So is Windows. So is Mac OS X. It doesn’t really matter that the icons look a bit more sexy, or that we can (oooh..) search for files now.
What matters are good applications. Good applications like inkscape, gimp, openoffice, eclipse, kdevelop, mozilla. It doesn’t matter what desktop it’s running on, and if it’s written in Java or C#. It don’t matter if we suddenly pretend as we think patents are important, when what we’re really thinking is “Oh no microsoft made that, that must be bad!!”.
Java is good, and even better now that it got it’s GUI consistency sorted out. Yeah we need a complete free implementation for that, but I’m quite positive it will be sorted out.
Mono is good, and although having it’s inspirational roots from the evil lairs of Microsoft, it’s a dream to code for!
The bottom line is.. It’s all good! And disk space is too seldom an issue to think about.. So let’s all have a big heartwarming party and focus on what really matters:
Actually more applications come hand in hand with easy apis and implementation languages, there is a reason why there are more and mostly more fleshed out apps for KDE than for gnome (the one year difference does not really matter)
The reason is, it is much easier to program for. Sure C++ is not ideal, but the KDE people managed to limit themselves only to a subset of the functionality and keep the APIs lean.
Trying to build a component which can be put into other apps, in KDE this is a few lines of code, have you ever tried that with Bonobo. Trying to build a container which embeds an HTML Browser and a file viewer, in KDE this is 10 lines of code if at all.
Try to embed SSH into your filedialog, you just get it as soon as you open the File dialog the rest is done automatically.
Not having to wade through myriads of data structures to achieve this helps a lot to get an app up and running nicely. OO helps there massively, that is the reason why some stuff and pretty much everything which is in the UI domain is easier to handle with a good OO layer.
That is also the reason why Gnome needs a good OO layer.
Add to that an easy to learn widely adopted language and you have a winner on your hands, application building wise.
We dont talk here about the foundation of the system we talk about making the lifes of the application programmers much easier, which in the end will result in more and better applications.
Python is more than capable of instantiating and accessing OO collections of glib,gtk and gnome objects at speeds that probably beat Java and Mono – I’d be interested to see some benchmarks for this usage pattern.
I’ve built PyGTK apps and Mono apps. The PyGTK apps definitely run slower, in my experience, even though they’re both accessing the same GTK API. *shrug*
The whole point of writing GNOME in C as opposed to C++ was to maintain developer-friendliness and compatibility across systems.
C is developer friendly if you are a C programmer. I usually use more object oriented languages with more features. C always looks like garbage to me, very off putting.
Also, C++/Qt is ported to many platforms and since it has a commercial company it’s MUCH more painless to recomplile C++/Qt apps for different platforms than with GTK+ in my experience.
Java = Non-free (wasn’t the whole reason the GNOME project was created was to make an alternative to the then non-free QT [KDE]?)
The GNOME team have lost all touch with their user base. Luckily, they’ve become largely irrelevant due to better existing alternatives like XFCE, KDE and e17.
I hope GNOME uses Java AND Mono, then gets sued into oblivion by M$ and Sun! I am absolutely sick of the GNOME project’s condescending attitude towards users. This kind of idiocy is why GNOME has dropped to only ~20% of desktop linux use, while KDE has soared to ~66+% (I read an article about this on /. just a few days ago.). Some people don’t *want* you to force a registry and spatial windows down their throat! The GNOME project has outlived its’ usefullness. Good riddance.
If “be honest” going to get them in trouble with SEC, I assure you, they better not talk about it. Havoc does the right thing there and not give the reasons. His first responsibility is towards Red Hat and its shareholders.
C’me on. Let’s not live in dreamworld. Havoc answer is ridicolous. Simply: ridicolous. You can’t say “I’m not going to do this but I can’t tell you why” because the relevant information for shareholders and company is not WHY but it’s the effect (“I’m not going to do this”).
If they aren’t going to tell why it’s just they have some hidden, secret cake they cannot reveal because they’re afraid that RH fans could not like that.
Problems with SEC? C’me on. They would have no problems at all. Unless, of course, they’re hiding something they COULDN’T do… 😉
Let’s not forget public companies basis is COMMUNICATION of all relevant information to parties. If they don’t do that, it’s because they have some skeleton in their closet. If I were someone who put money into RH, I would start fearing that there’s something Havoc (or others) is not telling that is potentially dangerous to me, something which could make me loose my money.
Now, that would be something which would lead to problems with SEC: hiding information which could make people loose money.
Mono right now shines as a platform for developing desktop applications, and we want to make sure that the developer experience there is great. Once we have conquered that space, we can organically reach into other spaces, but lets first get the first generation of Mono-based GNOME applications rock solid and shipping.
But a pythonesque but strongly typed language like boo might do the trick. All the new interesting languages for the .NET VM like Nemerle and Boo are a very good argument for mono over java.
If you are choosing the new core technology for a desktop you should look into the future.
About java: just take a look at the performance and memory requirements of the java generics. Java generics just plain suck.
What is the point of adopting one of these two dumbed down yet low performance (on the desktop) languages?
The problem with these languages is that while they are simpler than real C++ neither of them are really easy to use, Neither of them are accessible to the casual programmer.
Computers get faster and faster. In desktop applications the most time is usually spent by the user thinking of what to do, and not by the computer actually doing it.
Let the professional skilled programmers carry on writing in an efficient language like C.
The rest of us could really use something more easy (without ten thousand built in classes to learn) something like a BASIC interpreter. Preferably one that runs fast.
Linux / GTK is difficult to learn to program and so Linux is generally only programmable by an elite group.
The problem is that your elite group, will be elite programmers. To make good programs you needs others skills as well as skills in programming. You need knowledge from the problem domain for which the software is to be developed, you may need skills in psychology and group dynamics to know what effect your program will have on the users and the orgaizations that will use the finished program, you need skills in usability to make the programs learnable, memorable, efficient, tolerant to user errors and pleasent to use.
Sofware development is not only about keeping track of pointers in C. This is why we need tools that is easy to use.
Sounds like what they want is something like D, which is a new language that has all the advantages of a modern, powerful OOP language, without all the uglyness of something like C++. Here’s the site for it:
It even has comparisons on featuresets vs Java and C# (and other languages), and imho looks like the best choice amongst all of them. Now, if only some large project or organisation could get behind it and start using it so it can become mainstream…
Also, I forgot to mention that D’s syntax is based on C (just like Java and C# are), and the current implementation seems to come first in The Great Computer Language Shootout:
I’m actually starting to warm up on Java. It’s heartening to see some real efforts going on to make OSS Java a viable option and Eclipse is certainly impressive. But Christian Schaller is totally right, if “they” want to win developer hearts, they’ll have to start throwing some excitement around (like Ximian is great at doing for Mono). Where are the Java Gnome related postings on planet gnome!? Where are the sweet desktop apps written by Red Hat and Co!? Apparently Yarr is getting written in Java, that could very well be a big first step. But tell us about it! Show us how developing with Java Gnome can be fun… Or even better: Teach us about it. Make it easy and friendly to get into. I’m very curious what will happen.
Obviously the conflict between the Java and Mono camps is nothing to be happy about, but everyone could see it coming and it’s good to finally see the issues spelled out. The silence and uncertainty certainly wasn’t motivating at all.
I am sure that Havoc is being honest with us about Redhat not being able to ship with mono. Yet I do not understand why Redhat simply doesn’t refrain from engaging in this discussion- after all it is Redhat which finds itself in this predicament, Redhat alone. The whole community should not be forced to persist in a state of limbo of indecision due to problems which Redhat has.
I am really excited about the improvements in gcj/classpath and look forward to their future development-but Java is irrelevant for the Linux desktop. I can only imagine the scale of the undertaking involved in writing the gcj/classpath Java implementation-yet if it were being done in order to facilitate the development of desktop applications we would have had a fully working implementation of the Java graphics API’s(AWT/SWING) a couple of years ago. Don’t get me wrong-I would love to proven wrong-but I just don’t see any real interest in Java on the desktop and the negligable interest which does exist is even less significant in regards to GNOME, as opposed to the ‘desktop’ in general.
Although I am really looking forward to eclipse and OOo running under gcj/classpath the real question is this: How long will it be before potential developers can actually be encouraged to just write software according the Sun Java spec and expect that the software ‘just works’ with gcj/classpath ? Before Java could even *potentially* become part of the GNOME platform-whether on desktop application side or on the library side- one must have an API to which one can program-and gcj/classpath is simply not there yet-and won’t be for a long, long time. What gcj/classpath can do is support a very specific subset of specific API’s already in use in programs which use the JVM-after the fact.
I really don’t get the whole thing though-the people I know who are hardcore Java developers couldn’t bebothered to worry about mundane things like desktop applications-they write serve code using J2EE and worry about issues which arise when 600,000 clients connect to the server at once via the web. It’s a totally different world – in fact it is so different I find the constant comparison of the Java vs. mono as regards the GNOME desktop to be somewhat specious. Tha Java is not ideal for desktop applications is not a serious critique of Java-Java does other things that Mono and .Net, from which Mono is inspired, cannot do as well.
Python is already slowly but surely making it’s way into the GNOME desktop-just look at Redhat’s fedora and you will see it is already in use there. But PyGTK is still only really suited for a small subset of things-and where it is now being used -primarily gui configuration tools is probably where it actually belongs. PyGTK is painfully slow and is quite resource hungry- I really, really like it and even hd coded a little in it but I wouldn’t dare tackle a large-scale desktopp application in it-it wasn’t designed for that purpose. Mono is designed for desktop applications-that is why it is being developed -as a tool to faciliate the rapid development of powerful desktop applications.
sorry to bother java lovers , but since i learned programing , i never seen java as the best language , it s too slow and i dont thing it will be a good idea to download manually java and install it before seeing some part of gnome-core it will be ashaming , and as far as i know mono is free implementation of .net standard , and risk no treat from microsoft
i will advise developers reither then suggest java just because you use it for years … look for a good reference and vote for the best choice
java is slow , not open source , in the other side mono is C# newer and (well done) and free implementation of .net standard so no risk with mono .
I can only see the outcome as Gnome remaining purely C based, the lowest common denominator. Bindings can easily be maintained for higher level languages.
Anything success for mono / java / python / C++ / Ruby etc related apps can just be on the merits of the application itself, not how or why it was coded.
and it seems others are “getting it” as well. Frameworks.
Lots and easy to use, that’s what you need.
GNOME needs to figure out what it is first — yes, there is confusion about this. It’s name is sack of lies to start.
In anycase, what a desktop environment from a developers point of view needs and KDE sort of gets it, is a RUNTIME ENVIRONMENT. Take a look at C++/Qt/KDE, it’s much more a runtime environment than simply a collection of libraries.
Really, what GNOME should do is buckle down. Start with, we have some ideas, some of these are fairly well crystalised, take the HIG for example. We need to make it more achievable. We need to see what people want, we need to see what others are doing and we need to figure out what we want to do. Moreover, what is exciting? They’re hackers after all and hacking has to be fun, and nothing is more fun that adding, 10 well considered lines here and there, and getting loads of functionality. KDE has a lot of this, this is why it’s fun to program in KDE.
Then they need to work out a runtime, to get to their ends. Basically, figure out an intersection of language features that are KEY! Garbage collection is a big one, concurrency and event handling primitives are also good. The runtime needs to support these and likely a fair few more.
Also, they shouldn’t be afraid of going “non-standard”. Many people whine about C++/Qt/KDE not being “pure”. Who gives a damn? The idea is to create a better environment, this is why we have abstractions. Such purity is a quest for the weak minded individuals.
Once that’s done, build the frameworks and the documentation, the developers will flock to the cool hacking fun.
People will say that there are possible to also use other languages with the java vm’s and point to stuff like Jython as proof. And yes this is true, any maybe its just marketing that the difference here, but for Mono being multilanguage seems to be a core issue while for the Java camp it seems more like research/fun hacks. I have for instance yet to see any official encouragement from Sun towards efforts to make the JVM a multi-language vm.
Balls.
You can take a look at multiple jvm language support in netbeans:
In the mean while we have all this widely used project written with languages different from c# on the CLR.. like.. mh.. well.. I mean.. you know them, right?
I really couldn’t care a less about the direction Gnome goes in, because either way I think it’s wrong and they’re totally missing the point about higher level languages and development in general.
I had a feeling when I read Miguel’s blog on Harmony that he was going to get pretty defensive about his baby – and so it proved. He could see the interest an announcement by Apache would generate, and I’m not sure he and a few others are comfortable about it. We get the inevitable comments and graphs about the number of commits to Classpath and LOC versus those in Mono, which seems pretty silly.
I sympathise with Havoc’s position, simply because he is part of a successful company, making money out of open source software and living in the real world. The Mono people at Novell, whatever they say, are simply not. Since Havoc cannot specify his reasons for leaning towards Java, I’ll attempt to do it for him.
In the open source, Linux server world the reality, and the money, in the application server space is Java. Apache leans heavily on Java. That’s what Red Hat have been getting into recently with using Jonas and investing time in using gcj, Classpath etc. with Eclipse. In terms of development, it is important for them to have an integrated environment that fits in with that strategy top to bottom. As Red Hat are shipping actual, commercial products and they have some legal questions regarding Mono they simply cannot use it. It’s a financial consideration for Red Hat and Havoc, not some game as it seems it can be for Miguel and others.
People complaining that Harmony amounts to nothing currently paint over the fact that Mono amounted to nothing for quite a while (and compared to .Net it still does) and needed a hell of a lot of other peoples’ money over many, many years (and still does). I don’t think the Mono guys have any room to talk quite frankly.
Anyway, Java Gnome development has something going for it that Mono doesn’t have – the basis of a good IDE in Eclipse. That’s where you get most of your productivity gains.
ok…you see Java in the enterprise and lacking in desktop. Maybe there’s more desktop apps on the enterprise market used internally. It’s stable and has support. (i.e. IBM)
Mono…is backed up by Novell. I only know of one popular Mono app Beagle. (which I can see as useful)
I think C# is only useful if MS Longhorn will fully take advantage of the .NET runtime.
Think about it…why use C# in linux if you’re not going to port it to Windows? Don’t say because Java is too slow.
I gotta agree with the guy who said “Why can’t we just get along?” I’d really like to see that.
I think Miguel was unnecessarily/sadly provocative in his post.
He says the core of Mono has at least 600,000 more lines of code than the whole GNU Classpath. But let’s face it: GNU Classpath is about 75% complete, the other 25% being mostly Swing (remember Mono doesn’t have Win.Forms complete either) – how can Mono’s core have 600,000 more lines of code than that? I think there’s some miscalculation going on here. Could be wrong though – but it surely sounded weird to me.
Not to mention the fact that comparing the number of LOC is not of great importance, unless it’s a competition to see who writes more LOC, which is not the case.
Finally, another fact is: the Free Java is already usable, just like Mono. Classpath doesn’t have Swing, but nobody’s coding Mono apps using Win.Forms either. You can use Java-Gnome, or SWT if it pleases you. The funcionalities are already there.
JBuilder 2005 is by FAR the Best IDE on the Planet.
Visual Studio doesn’t even come close.
– Java kicks ADO’s butt, esp. with Prepared Statements, it’s nice to see MetaData used to good purpose, it’s a royal pain to have to code Parameter collections for ADO command objects.
– JDBC supports Oracle’s datatypes: VArray for example.
– No Checked Exceptions in C#/DotNet. Which means there’s no way in hell you can be sure all those xSpecialException conditions you code into a Business Object will ever be caught.
– In theory struct’s sounded like a good idea in .Net. In practice they are a royal pain in the ass, because you’re always expecting to be able to instantieate them just like a Real Class.
I have seen David in many discussions about mono on osnews. he has been trolling about mono for quite sometime.
I like Java, but I don’t see any news about any java-gnome applications that make me want to download it and use it.
Also, we are talking about the DESKTOP, not the SERVER-SIDE or WEB.
Anything the web can come up with is always ugly, clunky, not consistent whereas the desktop is much more robust. I have yet to find a web-based email program that comes close to something on the client-side. You can also tell pages created via Java vs. something else, such as, CGI-Perl. Java is always piss-poor slow.
I think the people who are such GPL zealots that they can’t even stand the proprietary software friendliness of the equally GNU LGPL license can’t see one of the things that makes Windows so popular with developers and continues to make it so. (I’m in fact surprised that RMS even came up with the LGPL license because he is such a zealot that he sees F/OSS is a substitute for RELIGION let alone politics.)
This is precicesly because of the fact that one of the few good things Bill Gates did was to allow royalty free linking to MS-DOS commands and later to the Win16 and Win32 libraries and created an even playing field for both F/OSS and proprietary software in his operating systems. This level playing field for Linux is simply IMPOSSIBLE with QT’s
$1700 minimum price for proprietary development. (Most proprietary software for Windows these days is now developed
by “shareware” developers for whom the price of a QT commercial license is simply out of the question.
Therefore unless TrollTech does something to attract these smaller proprietary developers to their library on Linux (since we are really not concerned with cross platform in this topic but are dealing spacifically with Mono on a Linux desktop named GNOME.) like adding an “Indie” or Shareware developer’s license to the QT free edition in the price range of about $50 (for single seat) to $200 (for multi seat) QT/KDE will simply NOT lead to any kind of future for Linux beyond what it is now.
This brings us back on topic to GNOME and Mono. Here I tend to side with the zealots because I have a good knowlege of the history of Micro$oft and simply DON’T TRUST THEM where
Mono’s relationship with .NET is concerend. It is not their publicly revealed patents that bother me all that much. It is the possibility of secretive SUBMARINE PATENTS ala the Unysys/gif mess of the recent past even in the so called “open” parts of the .NET systems that does. I believe that no matter how you slice it that Mono is a trojan horse patent bomb waiting to explode in Linux with an even greater impact than SCO v IBM when it does.
In fact what Linux really needs is a consistant API widget set in a procedural language like C or Pascal that wrappers to object oriented languages can be easily built around that allows for a level playing field between proprietary and F/OSS developers. Linux already has this. It has had it since the creation of the GIMP graphics authoring and manipulation program and in fact is the current basis of GNOME it is GTK+ under the LGPL. For those who want to do C++ developmkent GTK+ offers not just one wrapper (like MFC being the only C++ wrapper for Win32 that gets much play)
but THREE, these are VDK, GTKmm (the closest to an “official” one) and WxWidgets-GTK. For those who buy into the marketing propaganda that some kind of “managed” (fancy marketing term for interpreted as opposed to native compiled) software platform id the inevitbale future of software development GTK+ is also accomodated in Java SWT and Swing and in Python. (Actually in two ways in Python directly through GTK and through WxWidgets).
In the final anyalisis the best thing for Linux and GNOME to do is stick with what they already have for a consistant API
with a level playing field for all developers (GTK+/LGPL) and leave the M$ proprietary patent traps alone.
Then don’t develop commerical software with QT, duh. Either GPL or buy a license.
Rediculous, I do not even have to do that on Windows. This definately is not an example of user friendly development enviroment — something GNU/Linux really needs.
I do not deny the superiority of KDE, but suppose a developer wanted to create a program for KDE, and did not want to use Qt , because Troll Tech were a competitor.
Here’s my take as a developer, what I would like to see:
C should continue to be used for the core libraries, it’s fast and easy enough to wrap for other languages as needed. Note that neither camp is actually pushing for their platform to be introduced into the core at this time. I would like to see Python introduced immediately as a “blessed” application platform, no pussyfooting there. Mono should then eventually become a second accepted platform to write official GNOME applications in. It is likely that long before that Mono will become a defacto standard component if the community keeps churning out good applications written for it.
Mono as a platform simply gives the developers more choice. Although if accepted as a GNOME component it would likely be limited to a single language, at least the possibility exists to develop in a multitude of languages with first class access to CLR libaries like GTK#. With Mono you can utilize the very same Classpath libraries you would as if you went with an all Java solution. The reverse is not true. Java the language and Java the platform are virtually the same. Java is not exiting now nor will it be five years from now. While C# doesn’t exactly get me wet either, the potential in Mono itself is there to become something greater.
Red Hat does have the power to significantly delay the introduction of Mono. In the end however, years from now, I think we will look back and wonder what this argument was all about in the first place. I think technical superiority will win out in the end.
Alan Cox and Linus Torvolds continued their debate today over the future of the Linux kernel.
These two juggernaughts of kernel development are on opposite sides when it comes to the proper editor for kernel development. On the vi side, is Linus Torvolds, progenitor of the kernel, while Alan Cox, hotshot young developer who plays by his own rules, is carrying the emacs front.
When asked today about his own stance on editors Alan Cox responded, “You can’t develop a kernel without every person using exactly the same editor. It’s like the Gnome debate [regarding Java vs .net], you can’t develop a desktop unless everybody uses the same technology, if people use different technologies, it will invoke the dark forces of the night and swallow all the blue pixels on the screen. Then everybody will have to stare at red text all day long, and nobody really wants that. Besides all that, its just good programming practice for everybody to pick sides in a debate that really doesn’t matter either way, you know how the saying goes: ‘ One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them, In the Land of Mordor where the Shadows lie'”. When asked about what was ment by the quote, Alan Cox responded by submitting a goatse link, and signing off with a very rude message.
Linus Torvold’s position was markedly different, his message being about sustainable kernel development.
“Well, its really simple, I don’t know what Alan is smoking,” begin Mr. Torvolds, “but the best way to ensure that the kernel is always useful, free, and available, is to put all of our eggs into a single basket (technologically speaking) and then float that basket into the tempest and pray for its survival. By eggs, I mean of course all of our hopes, ambitions, and dreams; this way, if the basket sinks, everything will be destroyed, and we will leave no legacy at all.”
With his soliloquy — I wasn’t really listening — complete, Linus said, “You’ll never guess what I stole from Bill Gates!”, Linus promptly pulled out a jetpack, and blasted through the concrete ceiling.
While the two lead developers may have their differences, neither has presented any clear indication of why these two technologies cannot be made to work together. It seems each party in this debate is hellbent on ensuring that one, and only one technology is in use at any time. The lesson learned, I guess, is that when interviewing famous kernel developers, this reporter should actually talk to them, instead of just (poorly) impersonating them, and then putting their names upon it. Check out next weeks column, for an exciting and clever interview with Andre’ the Giant discussing software patents with Jesus.
“Java kicks ADO’s butt, esp. with Prepared Statements, it’s nice to see MetaData used to good purpose, it’s a royal pain to have to code Parameter collections for ADO command objects.”
Why oh why oh why are you embedding SQL statements in your code? Also, with any decently coded DAL, there is no need to populate a params collection in ADO.NET unless you really enjoy that kind of stuff. PreparedStatements beg developers to abuse them and bog down the server w/ bad ad-hoc queries.
“JDBC supports Oracle’s datatypes: VArray for example.”
It’s arguable as to why you need to ever use Oracle’s VArray data type.
“No Checked Exceptions in C#/DotNet. Which means there’s no way in hell you can be sure all those xSpecialException conditions you code into a Business Object will ever be caught.”
The CLR design team debated this for a while, and left them out for good reason: they don’t scale well, introduce coupling between components, etc (google ‘anders checked exceptions’ for his arguments on this).
“In theory struct’s sounded like a good idea in .Net. In practice they are a royal pain in the ass, because you’re always expecting to be able to instantieate them just like a Real Class.”
Ummm, last I checked they are instantiated identically to classes in .Net (and behave exactly the same except they are stored on the stack and can only be passed by value). Used correctly, they can result in crazy fast code.
“Jave is Easier then C#.”
Hogwash. Any language is as easy/dificult as you want it to be. Compared to other languages, they are both quite simple actually.
Miguel has done this before. For some reason he is really attached to Microsoft technologies. Before it was Bonobo, which you all know is based on Microsoft’s DCOM/ActiveX/OLE.
Back then he was spouting a lot of gibberish (to us) about “Unknown interfaces” and “Monikers” and “reference counts”. You would have thought Bonobo was the best thing since sliced bread.
Question: Where is Bonobo now?
My opinion is that Miguel’s enthusiasm is purely based on the fact that this is originally Microsoft technology. I don’t know why, but he’s doing it again.
Only this time he’s spouting gibberish (to us) about “assemblies” and “CLIs and CILs” and “exe and dll” and “stacks”. My prediction is that this will pass and he will move on.
I mean, nobody really thought this was going to get into GNOME with Sun and Red Hat on board did they? From the start this was conceived to brew conflict.
Stallman explained his objections to the use of Java in such open-source projects as OO.o in an article on the “Java Trap.”
“If you develop a Java program on Sun’s Java platform, you are liable to use Sun-only features without even noticing. By the time you find this out, you may have been using them for months, and redoing the work could take more months. You might say, ‘It’s too much work to start over.’ Then your program will have fallen into the Java Trap; it will be unusable in the Free World,” wrote Stallman.
All are mature(or very quickly maturing) languages, and gnome could progess with any of them.
C++ is a tad bit bloated, but if KDE can live with it, its obviously more then usable considering KDE’s rising market share(61% according to someone in these comments)
ObjectiveC is also a viable(if not that widespread) alternative to C++.
Java has support, backing, and the will to continue. It may not be OpenSource free, but Gnome could easily move ahead using it.
Mono is quickly maturing, look at Miguel’s statistics. C# is also highly usable.
Python.. Not sure, but I fail to see how Python would obstruct or limit the project, its a widespread langauge that has decent amounts of support.
I’d say its a debate between C/C++/Mono/Java. They are the only ones with enough backing to be considered a strong choice. It really doesn’t matter which is selected, they are all usable. We don’t need endless complaining from the community about this debate, leave it to Gnome’s lead developers. Heck, you might even just put a poll on gnome.org and let that be the end of it.
I think that the reason D hasn’t taken off is because they’re aren’t opening up their implementation. If digitalmars would GPL it and integrate it into GCC (as another front-end I presume), I think you’d start seeing larger projects using it.
It’s a rock-and-a-hard-place for digitalmars. They want D to be successful, but they also want to capitalize on that success by selling their compiler. Can’t have it both ways I’m afraid.
Also, regarding this Apache Harmony business — I’ve got no idea what that’s about. What’s wrong with Kaffe/GCJ/Classpath?
Stallman explained his objections to the use of Java in such open-source projects as OO.o in an article on the “Java Trap.”
“If you develop a Java program on Sun’s Java platform, you are liable to use Sun-only features without even noticing. By the time you find this out, you may have been using them for months, and redoing the work could take more months. You might say, ‘It’s too much work to start over.’ Then your program will have fallen into the Java Trap; it will be unusable in the Free World,” wrote Stallman.
He doesn’t object to using Java per se, he objects to using Sun’s non-free implementation of it.
Actually, they aren’t pro Java. They are pro open source and will not step in areas that are even slightly questionable legally.
Examples:
* All products Red Hat sells is open source; they do not ship closed source tools. (They do block the use of the Red Hat name, though, and Red Hat artwork, though.)
* RH and Fedora project do not ship with MP3 support. They do ship with OGG Vorbis, though.
* RH and Fedora project do not ship the Sun Java runtime.
* There are questions about how Mono will be handled in the future if Microsoft asserts patent claims. These issues are not present in non-Sun Java tools.
Because of this to Red Hat, Java is OK and Mono is not.
Red Hat has been very consistent about this emphasis of supporting open source and non-patent encumbered software and avoiding closed source and patent encumbered tools.
Because there are viable open source Java runtimes now, RH (through the Fedora Core project) has just started to ship a Java runtime environment and tools. Eclipse works. They aren’t using Sun’s tools, though.
Red Hat does prefer Gnome. It is a more corporate desktop, and is easier to use for novices to moderate users and has good support for locked down environments. It also has not had relicencing problems that KDE has had with QT…though TrollTech has eliminated these issues and they are no longer an issue. (Corrections appreciated if you know the details…no uninformed corrections or speculation please!)
“If I was in any language camp, it’d probably be the “PyGTK is awesome and mature and has existed for a long time and is uncontroversial, lets use it” camp.” — Seth Nickell
Python.. Not sure, but I fail to see how Python would obstruct or limit the project, its a widespread langauge that has decent amounts of support.
The comments I’ve been reading (and my limited experience with Python) suggest that writing smallish apps in Python is great (like GUI system config tools using pyGTK/Tkinter) — you’re already seeing that in the Fedora project.
The problem, it seems, is when projects become large. Since Python is so dynamic (i.e. so much stuff is figured out at runtime), it becomes unweildy to debug large projects. Java, OTOH, being statically typed, lends itself better to stuff like static type checking, which some argue helps you deliver code with fewer bugs.
I thought Sun recently paid a hojillion dollars to license a bunch of patents that Java was found to infringe upon. Is that different than Mono somehow? I think their licensing terms were confidential so it’s not certain that any other implementation would be immune to going through the same thing.
Do you have any credible sources to backup your assertion that large projects written in dynamic languages are harder to debug than those written static languages? Or that applications written in dynamic languages have more bugs than those written in static ones? Or is this just another urban legend?
“How about C++ (like KDE) instead of Java or Mono?”
I like C++ too and one of the many reasons I chose KDE over Gnome without even thinking twice was because it had better support for C++. Many C++ programmers have complained about having to use GTK, a toolkit which wasn’t designed for C++, and GTKmm which is an attempt to make GTK friendly with C++ but unfortunately isn’t sufficient and looses the portability.
Sebastián:
“The main problem with Java is it’s not FOSS”
I have a healthy distrust of companies, corporations and governments so the more control I have over the software I use the happier I am. On the other hand thought I can understand your discontent, I used to program with Java but I found the language useless because most people didn’t already have a JVM installed and many wouldn’t install one that was compatible because the Sun JVM was closed source.
Marc Collin:
“java without jvm could be very interesting”
Most users won’t use software if they have to go to the trouble of downloading and installing prerequisites for it first, especially since with languages that are compiled into self sufficient binaries, any extra requirements can be bundled with the program itself and the user won’t notice. The Sun Microsystems JVM is over 40 Mb if I’m not mistaken, quite large for the use of only a few programs. There is also a speed issue with interpreted languages but the use of native bindings/toolkits make the difference negligible.
Lumbergh:
“I guess we should go back to writing in assembly. The world doesn’t revolve around your underpowered machine.
…
You can throw that idea into the dumpster. Basic will never make it in.”
That struck a nerve with me. I don’t know how you get your money but it sounds like you have lots of it if you can afford the constant upgrades it would take to keep you from being on the other end of comments like yours. Some people, like myself, aren’t made of money and can’t afford to upgrade all the time; in fact I’m a student and I haven’t had one single well paying job yet because I’m too busy with my school work, the most I’ve made on any one job was probably around $20 CAD but at the same time I’m working very hard to get good marks in school. I depend entirely on my parents to get upgrades or new computers, the last time I got a new computer was when I was using a Celeron 466 for five years and that was a fluke, prior to that I was using a 486. Many people are like me and have a good reason for not being able to afford new hardware every two or three years, companies are cold and heartless to force people like myself to upgrade or be abandoned; just as cold and heartless as your comment.
That comment about basic is incorrect in my opinion. Visual Basic on Windows is to me an example of two things, the first being a terrible IDE and the second being a well thought out way for the average user to get an introduction to programming while being able to scrap together small personal programs for future convenience. A lot of people give Visual Basic a bad wrap because of flaws it developed under Microsoft but the idea behind it is still good and I think you fail to realize that. If Joe Average can open a nice pretty GUI, drag some widgets the the right places on a user interface and then glue everything together with the closest functional thing there is to psudocode than don’t you think that will encourage him/her to learn more about their computer and perhaps a better programming language. The only downside I can see to Visual Basic is something that has alreayd happened, companies are hiring Visual Basic script kiddies instead of programmers with more understanding of the computer itself and knowledge of a more powerful programming language.
Anonymous
“I am absolutely sick of the GNOME project’s condescending attitude towards users.
…
Some people don’t *want* you to force a registry and spatial windows down their throat!”
I had a similar experience when I last decided to give Gnome a fair chance with Ubuntu Linux; although some people said you can change many of these settings, its more involved than it would be in KDE or even Windows. Personally I am very displeased with Gnome and confused as to why companies like Red Hat and Sun Microsystems would choose to build on top of Gnome rather than creating a new Desktop environment. Some people still like Gnome so I won’t condemn it yet.
Eric Garland:
“Just wait a few months until Perl 6 is out and start hacking a Perl 6 version. It’ll be faster than Java or Mono and much more open source friendly.”
Perl used to be reputed as a cryptic language but I used it back in version 4 and it wasn’t too bad, plus now its been cleaned up as I understand it. It would be interesting to see what comes out of Perl and to be honest I’m surprised that Red Hat and Novell didn’t consider Perl instead of Mono and Java. Perl was around longer and is a powerful language.
Victor
“I gotta agree with the guy who said “Why can’t we just get along?” I’d really like to see that.”
That’s something that isn’t likely to happen on the Internet unfortunately; for many people fighting on the internet is a form of entertainment, others are closed minded, defencive and/or confrontational. There are people on the internet who don’t waste their time fighting, thankfully; however, since there are more people of the opposite persuasion the only real solution is to remove the ability to comment on articles and I doubt that will be a very popular solution.
Coral Snake
“This is precicesly because of the fact that one of the few good things Bill Gates did was to allow royalty free linking to MS-DOS commands and later to the Win16 and Win32 libraries and created an even playing field for both F/OSS and proprietary software in his operating systems. This level playing field for Linux is simply IMPOSSIBLE with QT’s
$1700 minimum price for proprietary development. (Most proprietary software for Windows these days is now developed
by “shareware” developers for whom the price of a QT commercial license is simply out of the question.”
I like Qt a lot but that is a good point. Qt comes freely unded two licenses; however since I am not familiar with the QPL I can only base what I am going to say on what I know about the GPL. I agree wholeheartedly that Qt is far too expensive for shareware developers. As a hard working student I thought once that I could make some money writing programs on the side since I’m quite familiar with C++; however after looking at my options I regretted learning Qt because while it is an excellent toolkit it also has a very hefty price tag for commercial use. I like Qt but as an independent programmer I doubt someone my age would even make enough to cover that price in two or three years considering my potential market.
I said I wasn’t sure about Python because I don’t know a lot about it, I’ve personally never used it. Thanks for the info.
I think Mono/C++/Java are the only viable choices. Python+ObjectiveC lack the corporate support of the others.
(Redhat likes Java, Novell likes Mono, since when is it hard to find C++ supporters, especially since its gone so well with KDE; the head gnome developers should make the choice, they are all good languages, we don’t need all this community bickering)
Things aren’t like they used to be back when Java came out — and digitalmars isn’t Sun.
Sun came up with a language, implemented it, gave away the compiler, and the free software folks (and others) made free (or not so free) versions of thier own. This is essentially what digitalmars is trying to pull off, right?
Trouble is, things have changed since then. Folks have a wide variety of choices of free compilers/runtimes for various languages (languages which, to varying degrees, can be used in place of D). There’s a lot of competition out there for D.
I don’t know how well-developed this GCC front-end for D is. Last time I looked (a couple years ago maybe?) the project didn’t look too active. My guess is that the digitalmars compiler is pretty mature. If they took that, opened it up, and got it into GCC, I bet *somebody* would run with it. Maybe you’d see a whole new desktop environment sprout up around it. Maybe Gnome would embrace it and slowly transition from C to D. I just know I like working with elegant, well-designed languages for which there are mature Free compilers/libs available.
I would also like to add, Maybe we should go with Redhat because: A) Redhat’s products Defaultly use GNOME. B) Novell uses KDE for their standard desktop!
johnMG:Do you have any credible sources saying the opposite?
I didn’t make any assumptions, you did. However, I have no reason to believe that statically typed languages automatically save you from bugs in large programs, as opposed to dynamically typed languages.
In fact, I have seen more static typing errors, casting errors, (un)boxing errors in languages like Java, than I have in languages like Python. Worrying about types today is synonymous to worrying about memory management yesterday. If the computer can take care of them for you, then let it do it, in my opinion.
Why does everyone seem to think that the patents that Microsoft and Sun own would not apply to languages other than mono/java? I thought patents were all about specific features.. even if we completely avoided mono and Java, couldn’t Ruby or any other language run into their patents just as easily?
Issue is, big bucks is in the App server market. Since java is there for a long time, it make sense for RedHat to promote Java more than desktop focused mono. Redhat is also well aware that Java is also focusing to the desktop again (check Mustang).
Fact is, in mono is still much behind in so called enterprise server arena. (Knowing that mono virtually do not exist there). That is why Redhat is promoting Jonas , an open source J2EE application server, there are not much of a serious choice in other technologies compare to it or JBoss under Linux currently.
At the and, i think people should stop the fight and continue coding. Tough i am a Java programmer, i am sick and tired of language wars.. Mono and java can live together.
How about C++ (like KDE) instead of Java or Mono?
Mono has the real possibility of getting into legal trouble with MS.
Java would be preferable if C++ cannot be accepted. Plus Java is much more mature than Mono (which still will take long to reach full maturity of .NET).
Productivity-wise both C# and Java are still much better than C++.
mono at that time have just beagle that can justify to install
framework into gnome.
but if we reimplement beagle in python,im sure that this problem disappear.
take a look at
http://pylucene.osafoundation.org/
this is a pure python port of lucene
I personally find this ironic and sad that this is still being discussed in Gnome camp. It really hurts Gnome. KDE people have moved to SVN and continue to code like never before with a solid plan and Gnome sadly looses its time on such topics.
Don’t get me wrong, I am a big Gnome lover, but there are more things Gnome needs to address at this time. Performance and speed for example.
Havoc says that Red Hat can’t ship with Mono, that there are reasons for this, and that he isn’t allowed to say why. I look forward to hearing the reasons. Until then, that kind of behavior is unacceptable from a software company, particularly an open-source one. Be honest!
Mono is just an implementation of an open (?) specification by Microsoft. MS can do nothing to stop mono. Mono use will continue to grow independently of .NET grow. The main problem with Java is it’s not FOSS. If Sun makes Java LGPL then things will be different.
There is Python and Ruby too. Both are great languages for GUI development. What you can’t do with Python you can do it in C. Most (if not all) Gnome libraries and primary applications are coded in C. I really don’t mind an heterogeneous desktop with different applications made with different languages but with the same core libraries. Of course, having a Python interpreter plus a Mono interpreter (perhaps a Perl interpreter too) and a Java interpreter running at the same time will eat up too much memory to be really productive. So it’s not just a matter of developer productivity, the end user shouldn’t suffer because of developers choice. So there will be, for sure, some interesting arguments pro-Mono/pro-Python/pro-C/pro-Java.
If “be honest” going to get them in trouble with SEC, I assure you, they better not talk about it. Havoc does the right thing there and not give the reasons. His first responsibility is towards Red Hat and its shareholders.
Exactly. And while the two titans fight, KDE marketshare continues to grow (from 44% to 61% in just a year): http://www.desktoplinux.com/articles/AT2127420238.html
I agree with this too. Gnome continues to lose steam as development has slowed down a lot and they fight forever over python/java/mono. It gets boring and so many users have switched to kde or xfce.
“Java is mature”
The problem is, they’re arguing Open Java vs. Mono. Open Source Java is behind, and can’t really expect to simply catch up to what Sun has been working on for a decade.
C++ isn’t really a viable option for a modern desktop, people want a cleaner (arguable) language and a good garbage collecter, ie: they want faster, easier, development tat still makes use of the nice, fast, lower level C/C++ libraries through a nice API.
What is the point of adopting one of these two dumbed down yet low performance (on the desktop) languages?
The problem with these languages is that while they are simpler than real C++ neither of them are really easy to use, Neither of them are accessible to the casual programmer.
Choosing either of them is a lose lose situation for the user who will end up saddled with slow memory hogging programs.
Let the professional skilled programmers carry on writing in an efficient language like C.
The rest of us could really use something more easy (without ten thousand built in classes to learn) something like a BASIC interpreter. Preferably one that runs fast.
Linux / GTK is difficult to learn to program and so Linux is generally only programmable by an elite group.
It may be that part of the Dell investment involved Red Hat staying away from Mono in case of legal mines. Not super likely, but could be.
Anyway, Java isn’t an option as far as I am concerned. I have one x86 box (running debian and close to dying) and a flock of PPC hardware. To quote a /. post:
“So Java’s not open source; who cares. Out in the real world, no one cares whether Java is open source or not. Anyone can quickly obtain it with a couple of mouse clicks. If it enhances the functionality of OOo then why not use it?”
I think that comment is right, if anyone could “quickly obtain it with a couple of mouse clicks” I doubt we would be having this problem.
Red Hat has good business reasons to lock Linux in as x86 only.
nnooiissee
Havoc says:
Enough on technology. On the crux of the issue, what I wish GNOME would understand: Red Hat not shipping Mono is currently a can’t rather than a won’t. Making it worse, we are not able to spell out all the facts on why we can’t. In fact, none of the Red Hat engineers (including myself) knows all the facts (and we couldn’t share them in public if we did). We continue to try to get this issue resolved and there are serious efforts in progress, but, well, they have been in progress for quite a while. At some points it felt close to resolution, at the moment it doesn’t really, at least not to me.
So he doesn’t know all the facts? Why? It’s either a patent issue or not. I wonder if Ballmer and the RedHat executive meeting touched on the Mono issue.
And then he goes on to say that Eclipse rocks. Yeah, Eclipse rocks, but is that enough to advocate Java?
Let’s face facts. RedHat puts a lot of work into GCJ and getting Eclipse to run native. And let’s not forget that RedHat loses a bunch of control with Mono pulled into the platform.
http://www.advogato.org/person/Uraeus/ is another blog that puts things into perspective.
The fact of the matter is that Java just doesn’t have that much groundswell of enthusiasm no matter how much RedHat tries to push it.
red hat is pro java, everybody know it…
also red hat seem to prefer gnome…
red hat have a lof of developper who work to gnome…
red hat push a lot gcj
with not use java for gnome with gcj… java without jvm could be very interesting
Linux / GTK is difficult to learn to program and so Linux is generally only programmable by an elite group.
I completely agree.
The problem however is that if Gnome wants to survive, it needs an easier framework to work with. New developers don’t want to hack on C.
Look at KDE: every week they have at least 3-4 new contributors (check the cvs mailing list). Can you say the same with Gnome?
Having a good framework in Gnome is the only thing that would assure it a future, and right now it hasn’t.
Java and Mono should be add-ons to Gnome, not part of the core libraries.
Java and Mono (in the form of .Net and C#) are controlled by two different corporations who are either subversively hostile towards open source (Sun – Java) or openly hostile towards open source (MS – .Net). And both of these corporations are armed with patents and copyright, and will use these to their advantage (ECMA standards or not).
However, it’s okay to include Java and Mono as add ons, in order to attract developers from those camps.
But for core Gnome, the tools used should be complete open standards and/or open source, like C, C++, Python, Perl, Ruby, etc. This can and does deliver a great development platform. Java or Mono are not needed for this.
And I agree with other posters – Gnome needs to move on from the Java vs Mono debate. KDE is improving rapidly with QT/C++ and isn’t looking back. C, C++, GTK+, GTKmm, and gtkPython are the way forward for Gnome.
What is the point of adopting one of these two dumbed down yet low performance (on the desktop) languages?
The problem with these languages is that while they are simpler than real C++ neither of them are really easy to use, Neither of them are accessible to the casual programmer.
So, they are dumbed down, but not easy to use?
Choosing either of them is a lose lose situation for the user who will end up saddled with slow memory hogging programs.
I guess we should go back to writing in assembly. The world doesn’t revolve around your underpowered machine.
Let the professional skilled programmers carry on writing in an efficient language like C.
C is one of the most “dumbed-down” languages out there. One of the reasons that there is always these language debates is because C isn’t powerful enough. Note that the KDE people never have these debates because they chose C++, which is much more complex, but can be abstracted to a nice API with intelligent design.
The rest of us could really use something more easy (without ten thousand built in classes to learn) something like a BASIC interpreter. Preferably one that runs fast.
You can throw that idea into the dumpster. Basic will never make it in.
Linux / GTK is difficult to learn to program and so Linux is generally only programmable by an elite group.
Yeah, the whole point of bringing Mono or Java into the platform – a rich set of class libraries with a relatively easy language to develop for.
Mono can host a lot of languages. So if you need a dumbed down C#, probably some drop-dead easy scripting language, then it can probably be accomodated – if it hasn’t already. Check out Boo.
Sun has already climbed into bed with Microsoft, and now we hear of meetings between Microsoft and Red Hat. Suprise! Red Hat says Java should be used instead of that software that gives the finger to Microsoft and Sun called Mono which is developed by a company called Novell that has given the finger to Microsoft many times in the past. By the way, isn’t Red Hat that company that Sun identified as the enemy that must be destroyed and now it is flogging Sun products? Is there a new axis of evil emerging here?
I normally do my stuff in Java, but I don see any reason to go one direction only.
Both have their problems of having a commercial entity behind it, which could pull the plug (although it is more unlikely with java)
Java would be a good foundation having a solid native compiler (gcj) already behind it.
C# also is a good foundation, but as I said with both languages, the commercial entity can pull the plug leaving a devastated gnome behind.
C++ might be a good way to go, but the language is heavily bloated. The best way to go might be an open scripting language like ruby for smaller stuff and Objective-C which looks as a very reasonable alternative (has better mem managament than C++ and much less bloat) for bigger stuff.
But one thing is sure, Gnome needs an OO foundation app programmers can build upon.
I don’t agree that Linux / GTK are hard to program at all. Compared to what? Both are pretty straight-forward.
I do, however, believe that despite being C++-based (which I’m not really crazy about), KDE is much more convenient to develop for. I think this is why they are receiving so much mindshare right now.
The tell-tale sign of good design is prolific code reuse, and KDE has that in spades over GNOME. On that basis alone, I would concur that if GNOME doesn’t get some better direction it will substantially loose market share.
As for Java versus Mono… Well, I’m not quite so clear that either is the best tool for the job. In fact, if you wanted to maximize developer productivity, I’d say that both environments would do well to look at making Objective-C bindings to their toolkits, and providing one or two unencumbered scripting languages for glue-work (Python and Ruby are good choices; though I write a lot of PERL for my job).
Both Java and Mono are unsuitable, by the sheer virtue of their massive complexity, their reliance on a VM, their lacklustre performance and the size of their class libraries.
The whole point of writing GNOME in C as opposed to C++ was to maintain developer-friendliness and compatibility across systems.
If Java or Mono is the answer, then Havoc and Miguel have besically just invalidated all the work on GNOME thus far – Why the holy $^%& did they not start developing GNOME in Java from day 1 if a garbage-collected language running on a VM is seen as the best solution?
Its not like Java wasn’t around when GNOME started (or when, say GNOME 2 was first conceptualised).
Tacking another massive, slow framework on the side in to try and restore the programmer accessibility that should have been *designed in* in the first place is one of the most retarded things I have yet seen develop in the Linux desktop world.
Theres actually nothing stopping the GNOME framework from having the best, simplest and most powerful API on the planet, except for these lead developers who have obviously completely sold out to the idea that huge corporations (Sun and Microsoft) can do a better job of deciding what that API should be.
Adding Mono or Java will be the balkanising factor that forces GNOME to split, leaving not 2 but 3 major desktop (and eventually 1 – KDE) platforms in the Linux space.
Clearly, both Novell and Redhat need to pull their heads out of their asses on this one, since they are just repeating the mistakes that Sun,SGI,HP and IBM made when they screwed us all over with the CDE/NeXTStep/NeWS fiascos – the end result of which that only the stupidest, worst technology was chosen to be a ‘pseudo-standard’ in the UNIX world, and was finally dropped in favour of new ideas (e.g. GNOME/KDE)
Use Python. It will offer real-world application developers everything they need from a technical viewpoint, and comes without any ridiculous patent problems, questionable heritage or partisan politics.
If it turns out to be a mistake, it can be swapeed out for a better (perhaps designed from scratch to work with the platform e.g. AppleScript) solution, or the same syntax can be preserved by using the forthcoming Parrot VM.
In fact Python bolts onto Java or Mono VMs without problems, so I just dont get the reluctance here. If Redhat wants to ship a GNOME with a Python->Java VM->C API instead of a direct Python->C API, or Novell wants to do a Python->Mono->C API approach, whats stopping them?
Just do it – or watch the users and developers shake their heads in amazement and either code around this crap, or abandon the platform altogether.
I don’t care in which program a application is written. I want applications which are integrated with the DE, have the same look and to use decent memory.
I think 512 Ram is a reality for desktop users (not corporate users) and for mono/java applications is enough.
How about a Gnome framework which is going to be the base of java/python/mono developers ?
is definitely better in java and C# than in ObjectiveC, because java and C# enforce garbage collection while ObjectiveC does not enforce it and merely uses reference counting with explicit frees and garbage collection dumps you can free with one command.
I am a java programmer mainly myself and I can see why Havoc Pennington recommends java, because the free code pool under very liberal licenses is enourmous and has mostly quality code. But I still think if Gnome wants to play safe it definitely needs good ObjectiveC bindinds, and a good glue code into 2-3 scripting languages.
As for the Java vs. C# in Gnome debate, both languages have their merits
with C# the easier mixing of platform code into C# sources and Java with its enormous free software pool (and believe me, it really is enourmous the stuff outside of the SDK is ten times as big and the SDK itself is huge) and good native compilers.
People need to remember that Novell now leads the development and that Microsoft also has a vested interest in Mono succeeding. If .NET only runs on Windows then that is a clear advantage that Java has over .NET and many of the major Java users like the federal government won’t even consider switching away from J2EE to a vendor lockin. Another thing, don’t forget that if Microsoft goes after .NET they will be going after one of the things that many .NET developers consider a good reason to use it. Many cite Mono as a reason why it’ll be a viable alternative to Java, but if Mono gets torn apart then Microsoft is back to square one.
What Microsoft has going for it is the quality of its .NET development environment. Visual Studio.NET is probably the best IDE availible on the market today bar none. If I were developing a major corporate project using Windows Forms or ASP.NET I would want to use Visual Studio.NET for it because it’s the best for that sort of thing. If people switch to GTK# for GUIs then what does it matter to Microsoft? That requires a lot of effort and the presence of Qt hasn’t hurt them in the slightest. If anything, the fact that it runs on Windows has been a feature that is good for them because a Qt program can run alongside tons of other useful programs availible only on Windows or MacOS X.
That’s one other area where Mono can’t address anything right now. GTK is not native for Mac users. If Microsoft were to release a free native Windows Forms runtime for Mac Mono users that would kill the adoption of GTK# by .NET developers on MacOS X. Not only that but Microsoft could use Mono to gain leverage on the Mac market by convincing Mac developers to use Windows Forms so that they “aren’t locked into MacOS X.” Since all major commodity PCs sold today are running Windows, it is safe to say that Mono will only be a boon to Microsoft. Maybe when they lose 30-40% of their marketshare they’ll see it as a threat, but that’s a long time off, if ever.
Well, first ditching java and C# and then recommending python is a little bit shortsighted.
See the idea behind is, and Microsoft basically does the same with .Net as well as IBM does with the SWT and Eclipse, use the high level language for application code only, use it as a glue and let the underlying system which is constructed in a faster language handle the stuff which is absolutely time critical (aka the ui which has to act as responsive as possible)
Using C and then putting lean and small OO bindings on top of it has been a valid approach since the mid eighties when the first commercial smalltalk systems did this.
So see the usage of Java and/or C# more like a glue between native implementations, and nothing is rendered invalid. I agree however, going the OO route would have been wise in the first place to keep the API lean and easy, but on the other hand, it is ten times easier to get a binding from C to any OO language, than from C++ where you have to fight constantly with ABI changes, features almost no other OO system has etc…
KDE only could pull the bindings off, because KDE only uses a sane subset of C++ and also has a language independend lean and fast component interface in place (another huge problem Gnome has)
But first ditching java and C# and then recommending the 10 times slower python is not really a valid proposal for a solution. Python has its strengs, but less as a base for OS and Desktop APIs than java or C# have.
Python can be used as a glue for smaller apps and there it is a valid glue language.
But its NOT a base – its a scripting language, or a RAD framework – binding into the core, performance optimised C libraries.
The base APIs are glib, gtk and gnome, not Swing and Windows.Forms.
Python is more than capable of instantiating and accessing OO collections of glib,gtk and gnome objects at speeds that probably beat Java and Mono – I’d be interested to see some benchmarks for this usage pattern.
If GNOME is going to use Java/Mono as a base component, then they should throw all the C stuff away and start from scratch.
<quote>
“And I agree with other posters – Gnome needs to move on from the Java vs Mono debate. KDE is improving rapidly with QT/C++ and isn’t looking back. C, C++, GTK+, GTKmm, and gtkPython are the way forward for Gnome.”
</quote>
I completly agree with that!
I agree with the comment that Java is a language that leaves the end user with a bad deal. I have yet to use an application written in Java that is not slow and heavy. Often they are unstable as well. It’s bad on windows and on OSX it’s horrible. Don’t know much about Gnome but I hope they choose a better language than Java.
Just my opinion.
First I do not understand the way GNOME could integrate Java (or C#) into the project. To make a gtk# or java wrapper? Isn’t it already done? Integrate JVM inside it and program in Java? So do we need GNOME? We have GCJ + SWT.
Objective-C does not, I repeat not, have better memory management than C++. Stack-allocating objects in C++ (even though not always possible) is so much easier than fiddling with reference counts, Auto Release Pools helps somewhat but it’s still not even close.
One word. Python
Actually python can be used as a glue language, but it is not really that suitable for bigger things (believe me there is a reason why not too many big projects have been implemented in python)
I dont have any benchmarks here, but as long as pythons interpreter is not up to par to other VMs in speed you wont get any speeds as near as Java or C#.
Java is not slow per se, the reason why it is considered to be slow is mainly that early swing guis were dog slow, but the situation is like that, that Swing basically draws everything itself including the fonts, given the fact that Swing already renders on a modern blackdown or Sun as fast or faster than GTK2 is an indication of the speed of modern java. C# on Linux is not there yet speedwise, but it soon will be.
Now here we have python, a nice language highly dynamic which is a speed problem itself, and a rather unoptimized VM underneath it (which currently gets an overhaul) mainly used for scripting learning and small apps with a huge fanbase.
Suitable for lots of stuff including Gnome glueing, but not as a language for the foundation of something like gnome. In the end if you did something like that in python you would end up with a python swing, and believe me that would be dog slow (you dont know how much stuff swing does underneath)
So Python would be an excellent choise for app glueing up to a certain size of an app. But definitely not as a base for an entire desktop system. Neither is java really up to the task for similar and other reasons (one being the mem footprint) nor is C#.
I’ve always liked Gnome and used it for my primary desktop for more than two years. I really don’t like the idea of having Mono (or Java) bundled with Gnome. If one of the two has to be I’d say it must be Java. I’ve had mono installed for some time and run some gnome apps implemented in mono (beagle, f-spot for example) and found them to require quite a lot of resource. Gnome apps in general tend to use lot of memory but those (small) applications implemented in Mono require a whole bunch more resource.
What ever is said about Mono, parts of it will always be patented by Microsoft and just this alone makes me consider looking for some alternatives to Gnome. I’ve tried to keep my desktop clear from commercial or commercial-related stuff and it really seems Gnome developers would like to take this away from me. Please, please consider it.
As I see it there wont be any java bundled with gnome, the way readhat is heading is different, they use GCJ as native compiler, you wont even see any VM on the machine, just a libgcj and other libs and native executables.
Java itself via GCJ can be used as a language which has to go to a build and link cycle just as C++ does and for the end user it does not make any difference (no VM in RAM no java processes)
the apps wont even look different because they directly or indirectly bind into the gnome libraries.
All this does is, make things easier for the application programmer to handle things. There is no swing involved and other nastyness (which most people complain of because Swing has a bad track record of looking out of place on any platform).
Damn.. this discussion is sooo annoying, and really pisses me off..
Why is everyone whining about GNOME not going forward, and what language to use and not to use? When are people going to understand that it really don’t matter?
The gnome desktop is fully usable as it is. So is Windows. So is Mac OS X. It doesn’t really matter that the icons look a bit more sexy, or that we can (oooh..) search for files now.
What matters are good applications. Good applications like inkscape, gimp, openoffice, eclipse, kdevelop, mozilla. It doesn’t matter what desktop it’s running on, and if it’s written in Java or C#. It don’t matter if we suddenly pretend as we think patents are important, when what we’re really thinking is “Oh no microsoft made that, that must be bad!!”.
Java is good, and even better now that it got it’s GUI consistency sorted out. Yeah we need a complete free implementation for that, but I’m quite positive it will be sorted out.
Mono is good, and although having it’s inspirational roots from the evil lairs of Microsoft, it’s a dream to code for!
The bottom line is.. It’s all good! And disk space is too seldom an issue to think about.. So let’s all have a big heartwarming party and focus on what really matters:
good, exciting and useful applications!
Actually more applications come hand in hand with easy apis and implementation languages, there is a reason why there are more and mostly more fleshed out apps for KDE than for gnome (the one year difference does not really matter)
The reason is, it is much easier to program for. Sure C++ is not ideal, but the KDE people managed to limit themselves only to a subset of the functionality and keep the APIs lean.
Trying to build a component which can be put into other apps, in KDE this is a few lines of code, have you ever tried that with Bonobo. Trying to build a container which embeds an HTML Browser and a file viewer, in KDE this is 10 lines of code if at all.
Try to embed SSH into your filedialog, you just get it as soon as you open the File dialog the rest is done automatically.
Not having to wade through myriads of data structures to achieve this helps a lot to get an app up and running nicely. OO helps there massively, that is the reason why some stuff and pretty much everything which is in the UI domain is easier to handle with a good OO layer.
That is also the reason why Gnome needs a good OO layer.
Add to that an easy to learn widely adopted language and you have a winner on your hands, application building wise.
We dont talk here about the foundation of the system we talk about making the lifes of the application programmers much easier, which in the end will result in more and better applications.
Python is more than capable of instantiating and accessing OO collections of glib,gtk and gnome objects at speeds that probably beat Java and Mono – I’d be interested to see some benchmarks for this usage pattern.
I’ve built PyGTK apps and Mono apps. The PyGTK apps definitely run slower, in my experience, even though they’re both accessing the same GTK API. *shrug*
The whole point of writing GNOME in C as opposed to C++ was to maintain developer-friendliness and compatibility across systems.
C is developer friendly if you are a C programmer. I usually use more object oriented languages with more features. C always looks like garbage to me, very off putting.
Also, C++/Qt is ported to many platforms and since it has a commercial company it’s MUCH more painless to recomplile C++/Qt apps for different platforms than with GTK+ in my experience.
I’d put my money on Java and GCJ.
Mono = potential legal minefield
Java = Non-free (wasn’t the whole reason the GNOME project was created was to make an alternative to the then non-free QT [KDE]?)
The GNOME team have lost all touch with their user base. Luckily, they’ve become largely irrelevant due to better existing alternatives like XFCE, KDE and e17.
Why not use an advanced language like Smalltalk or OCaml? These are fast and much more productive than Java or C#.
Why not Smalltalk or OCaml…
Probably because they are nieche languages with a small userbase…
Smalltalk is a nice language, but face it its best days are long gone and Parcplace is hugely to blame for this.
I hope GNOME uses Java AND Mono, then gets sued into oblivion by M$ and Sun! I am absolutely sick of the GNOME project’s condescending attitude towards users. This kind of idiocy is why GNOME has dropped to only ~20% of desktop linux use, while KDE has soared to ~66+% (I read an article about this on /. just a few days ago.). Some people don’t *want* you to force a registry and spatial windows down their throat! The GNOME project has outlived its’ usefullness. Good riddance.
If “be honest” going to get them in trouble with SEC, I assure you, they better not talk about it. Havoc does the right thing there and not give the reasons. His first responsibility is towards Red Hat and its shareholders.
C’me on. Let’s not live in dreamworld. Havoc answer is ridicolous. Simply: ridicolous. You can’t say “I’m not going to do this but I can’t tell you why” because the relevant information for shareholders and company is not WHY but it’s the effect (“I’m not going to do this”).
If they aren’t going to tell why it’s just they have some hidden, secret cake they cannot reveal because they’re afraid that RH fans could not like that.
Problems with SEC? C’me on. They would have no problems at all. Unless, of course, they’re hiding something they COULDN’T do… 😉
Let’s not forget public companies basis is COMMUNICATION of all relevant information to parties. If they don’t do that, it’s because they have some skeleton in their closet. If I were someone who put money into RH, I would start fearing that there’s something Havoc (or others) is not telling that is potentially dangerous to me, something which could make me loose my money.
Now, that would be something which would lead to problems with SEC: hiding information which could make people loose money.
From Miguel’s blog
Mono right now shines as a platform for developing desktop applications, and we want to make sure that the developer experience there is great. Once we have conquered that space, we can organically reach into other spaces, but lets first get the first generation of Mono-based GNOME applications rock solid and shipping.
“The bleak future is KDE because no one wants to pay the Trolltech tax in order to develop.”
Then don’t develop commerical software with QT, duh. Either GPL or buy a license.
Just wait a few months until Perl 6 is out and start hacking a Perl 6 version. It’ll be faster than Java or Mono and much more open source friendly.
There are options!
Python has no corporate encumberance.
Pyhton has no submarine patent threats.
Python has a strong presence in GNOME.
Python is behind lots of apps people use today.
Python is not strongly typed (we already have key support for GNOME in a strongly-typed language – C/C++)
But a pythonesque but strongly typed language like boo might do the trick. All the new interesting languages for the .NET VM like Nemerle and Boo are a very good argument for mono over java.
If you are choosing the new core technology for a desktop you should look into the future.
About java: just take a look at the performance and memory requirements of the java generics. Java generics just plain suck.
What is the point of adopting one of these two dumbed down yet low performance (on the desktop) languages?
The problem with these languages is that while they are simpler than real C++ neither of them are really easy to use, Neither of them are accessible to the casual programmer.
Computers get faster and faster. In desktop applications the most time is usually spent by the user thinking of what to do, and not by the computer actually doing it.
Let the professional skilled programmers carry on writing in an efficient language like C.
The rest of us could really use something more easy (without ten thousand built in classes to learn) something like a BASIC interpreter. Preferably one that runs fast.
Linux / GTK is difficult to learn to program and so Linux is generally only programmable by an elite group.
The problem is that your elite group, will be elite programmers. To make good programs you needs others skills as well as skills in programming. You need knowledge from the problem domain for which the software is to be developed, you may need skills in psychology and group dynamics to know what effect your program will have on the users and the orgaizations that will use the finished program, you need skills in usability to make the programs learnable, memorable, efficient, tolerant to user errors and pleasent to use.
Sofware development is not only about keeping track of pointers in C. This is why we need tools that is easy to use.
Linux / GTK is difficult to learn to program and so Linux is generally only programmable by an elite group.
>
>
Yeah. People who can actually read and don’t need pretty icons
to create code.
Sounds like what they want is something like D, which is a new language that has all the advantages of a modern, powerful OOP language, without all the uglyness of something like C++. Here’s the site for it:
http://www.digitalmars.com/d/index.html
It even has comparisons on featuresets vs Java and C# (and other languages), and imho looks like the best choice amongst all of them. Now, if only some large project or organisation could get behind it and start using it so it can become mainstream…
??? This is uninformed. See:
http://shootout.alioth.debian.org/benchmark.php?test=all&lang=pytho…
python compares very favorably with Java
Also, I forgot to mention that D’s syntax is based on C (just like Java and C# are), and the current implementation seems to come first in The Great Computer Language Shootout:
http://shootout.alioth.debian.org/great/
I’m actually starting to warm up on Java. It’s heartening to see some real efforts going on to make OSS Java a viable option and Eclipse is certainly impressive. But Christian Schaller is totally right, if “they” want to win developer hearts, they’ll have to start throwing some excitement around (like Ximian is great at doing for Mono). Where are the Java Gnome related postings on planet gnome!? Where are the sweet desktop apps written by Red Hat and Co!? Apparently Yarr is getting written in Java, that could very well be a big first step. But tell us about it! Show us how developing with Java Gnome can be fun… Or even better: Teach us about it. Make it easy and friendly to get into. I’m very curious what will happen.
Obviously the conflict between the Java and Mono camps is nothing to be happy about, but everyone could see it coming and it’s good to finally see the issues spelled out. The silence and uncertainty certainly wasn’t motivating at all.
I am sure that Havoc is being honest with us about Redhat not being able to ship with mono. Yet I do not understand why Redhat simply doesn’t refrain from engaging in this discussion- after all it is Redhat which finds itself in this predicament, Redhat alone. The whole community should not be forced to persist in a state of limbo of indecision due to problems which Redhat has.
I am really excited about the improvements in gcj/classpath and look forward to their future development-but Java is irrelevant for the Linux desktop. I can only imagine the scale of the undertaking involved in writing the gcj/classpath Java implementation-yet if it were being done in order to facilitate the development of desktop applications we would have had a fully working implementation of the Java graphics API’s(AWT/SWING) a couple of years ago. Don’t get me wrong-I would love to proven wrong-but I just don’t see any real interest in Java on the desktop and the negligable interest which does exist is even less significant in regards to GNOME, as opposed to the ‘desktop’ in general.
Although I am really looking forward to eclipse and OOo running under gcj/classpath the real question is this: How long will it be before potential developers can actually be encouraged to just write software according the Sun Java spec and expect that the software ‘just works’ with gcj/classpath ? Before Java could even *potentially* become part of the GNOME platform-whether on desktop application side or on the library side- one must have an API to which one can program-and gcj/classpath is simply not there yet-and won’t be for a long, long time. What gcj/classpath can do is support a very specific subset of specific API’s already in use in programs which use the JVM-after the fact.
I really don’t get the whole thing though-the people I know who are hardcore Java developers couldn’t bebothered to worry about mundane things like desktop applications-they write serve code using J2EE and worry about issues which arise when 600,000 clients connect to the server at once via the web. It’s a totally different world – in fact it is so different I find the constant comparison of the Java vs. mono as regards the GNOME desktop to be somewhat specious. Tha Java is not ideal for desktop applications is not a serious critique of Java-Java does other things that Mono and .Net, from which Mono is inspired, cannot do as well.
Python is already slowly but surely making it’s way into the GNOME desktop-just look at Redhat’s fedora and you will see it is already in use there. But PyGTK is still only really suited for a small subset of things-and where it is now being used -primarily gui configuration tools is probably where it actually belongs. PyGTK is painfully slow and is quite resource hungry- I really, really like it and even hd coded a little in it but I wouldn’t dare tackle a large-scale desktopp application in it-it wasn’t designed for that purpose. Mono is designed for desktop applications-that is why it is being developed -as a tool to faciliate the rapid development of powerful desktop applications.
sorry to bother java lovers , but since i learned programing , i never seen java as the best language , it s too slow and i dont thing it will be a good idea to download manually java and install it before seeing some part of gnome-core it will be ashaming , and as far as i know mono is free implementation of .net standard , and risk no treat from microsoft
i will advise developers reither then suggest java just because you use it for years … look for a good reference and vote for the best choice
java is slow , not open source , in the other side mono is C# newer and (well done) and free implementation of .net standard so no risk with mono .
and for “no mono for redhat” shame on you !!
I can only see the outcome as Gnome remaining purely C based, the lowest common denominator. Bindings can easily be maintained for higher level languages.
Anything success for mono / java / python / C++ / Ruby etc related apps can just be on the merits of the application itself, not how or why it was coded.
and it seems others are “getting it” as well. Frameworks.
Lots and easy to use, that’s what you need.
GNOME needs to figure out what it is first — yes, there is confusion about this. It’s name is sack of lies to start.
In anycase, what a desktop environment from a developers point of view needs and KDE sort of gets it, is a RUNTIME ENVIRONMENT. Take a look at C++/Qt/KDE, it’s much more a runtime environment than simply a collection of libraries.
Really, what GNOME should do is buckle down. Start with, we have some ideas, some of these are fairly well crystalised, take the HIG for example. We need to make it more achievable. We need to see what people want, we need to see what others are doing and we need to figure out what we want to do. Moreover, what is exciting? They’re hackers after all and hacking has to be fun, and nothing is more fun that adding, 10 well considered lines here and there, and getting loads of functionality. KDE has a lot of this, this is why it’s fun to program in KDE.
Then they need to work out a runtime, to get to their ends. Basically, figure out an intersection of language features that are KEY! Garbage collection is a big one, concurrency and event handling primitives are also good. The runtime needs to support these and likely a fair few more.
Also, they shouldn’t be afraid of going “non-standard”. Many people whine about C++/Qt/KDE not being “pure”. Who gives a damn? The idea is to create a better environment, this is why we have abstractions. Such purity is a quest for the weak minded individuals.
Once that’s done, build the frameworks and the documentation, the developers will flock to the cool hacking fun.
in the last entry on that blog I read:
People will say that there are possible to also use other languages with the java vm’s and point to stuff like Jython as proof. And yes this is true, any maybe its just marketing that the difference here, but for Mono being multilanguage seems to be a core issue while for the Java camp it seems more like research/fun hacks. I have for instance yet to see any official encouragement from Sun towards efforts to make the JVM a multi-language vm.
Balls.
You can take a look at multiple jvm language support in netbeans:
https://coyote.dev.java.net/
At the approved JSR for groovy:
http://www.jcp.org/en/jsr/detail?id=241
Or the one about multiple languages for the frontend in j2ee:
http://www.jcp.org/en/jsr/detail?id=223
Or the one where sun meets with perl/python designers to talk about support on the jvm:
http://www.tbray.org/ongoing/When/200x/2004/12/08/DynamicJava
In the mean while we have all this widely used project written with languages different from c# on the CLR.. like.. mh.. well.. I mean.. you know them, right?
“Pyhton has no submarine patent threats.”
You do not understand patents. Any program you write today in any language could be violating someone’s patent.
Have the developer’s of Python paid the licensing fees to use certain object-oriented features found in Java, C#, and COM/OLE/ActiveX ?
If not, then the Python developers could be sued by Kodak if Python becomes popular. Kodak/Wang has sued Microsoft and Sun over patent infringments.
Just like Blue-Ray and HD-DVD. Gigants fight for their preffered standards. Nothing new, nothing technical.
java can compile to .net bytecode, so why not use both?
hey guys take a look at http://www.gtk.org/bindings.html
the official bindings are
c++
c
python
java
mono does not guarantees stable API/ABI release hence stop
talking about a useless technology.
just why mono have f-spot or beagle doesnt mean anything.
D is nice but the guy that worked on DUI last updated his site last year. DUI is currently broken with the last DMD compiler.
I don’t like mono or anything, but the list does have C# supported so um…….
I really couldn’t care a less about the direction Gnome goes in, because either way I think it’s wrong and they’re totally missing the point about higher level languages and development in general.
I had a feeling when I read Miguel’s blog on Harmony that he was going to get pretty defensive about his baby – and so it proved. He could see the interest an announcement by Apache would generate, and I’m not sure he and a few others are comfortable about it. We get the inevitable comments and graphs about the number of commits to Classpath and LOC versus those in Mono, which seems pretty silly.
I sympathise with Havoc’s position, simply because he is part of a successful company, making money out of open source software and living in the real world. The Mono people at Novell, whatever they say, are simply not. Since Havoc cannot specify his reasons for leaning towards Java, I’ll attempt to do it for him.
In the open source, Linux server world the reality, and the money, in the application server space is Java. Apache leans heavily on Java. That’s what Red Hat have been getting into recently with using Jonas and investing time in using gcj, Classpath etc. with Eclipse. In terms of development, it is important for them to have an integrated environment that fits in with that strategy top to bottom. As Red Hat are shipping actual, commercial products and they have some legal questions regarding Mono they simply cannot use it. It’s a financial consideration for Red Hat and Havoc, not some game as it seems it can be for Miguel and others.
People complaining that Harmony amounts to nothing currently paint over the fact that Mono amounted to nothing for quite a while (and compared to .Net it still does) and needed a hell of a lot of other peoples’ money over many, many years (and still does). I don’t think the Mono guys have any room to talk quite frankly.
Anyway, Java Gnome development has something going for it that Mono doesn’t have – the basis of a good IDE in Eclipse. That’s where you get most of your productivity gains.
ok…you see Java in the enterprise and lacking in desktop. Maybe there’s more desktop apps on the enterprise market used internally. It’s stable and has support. (i.e. IBM)
Mono…is backed up by Novell. I only know of one popular Mono app Beagle. (which I can see as useful)
I think C# is only useful if MS Longhorn will fully take advantage of the .NET runtime.
Think about it…why use C# in linux if you’re not going to port it to Windows? Don’t say because Java is too slow.
I gotta agree with the guy who said “Why can’t we just get along?” I’d really like to see that.
I think Miguel was unnecessarily/sadly provocative in his post.
He says the core of Mono has at least 600,000 more lines of code than the whole GNU Classpath. But let’s face it: GNU Classpath is about 75% complete, the other 25% being mostly Swing (remember Mono doesn’t have Win.Forms complete either) – how can Mono’s core have 600,000 more lines of code than that? I think there’s some miscalculation going on here. Could be wrong though – but it surely sounded weird to me.
Not to mention the fact that comparing the number of LOC is not of great importance, unless it’s a competition to see who writes more LOC, which is not the case.
Finally, another fact is: the Free Java is already usable, just like Mono. Classpath doesn’t have Swing, but nobody’s coding Mono apps using Win.Forms either. You can use Java-Gnome, or SWT if it pleases you. The funcionalities are already there.
This discussion is sadly unproductive…
JBuilder 2005 is by FAR the Best IDE on the Planet.
Visual Studio doesn’t even come close.
– Java kicks ADO’s butt, esp. with Prepared Statements, it’s nice to see MetaData used to good purpose, it’s a royal pain to have to code Parameter collections for ADO command objects.
– JDBC supports Oracle’s datatypes: VArray for example.
– No Checked Exceptions in C#/DotNet. Which means there’s no way in hell you can be sure all those xSpecialException conditions you code into a Business Object will ever be caught.
– In theory struct’s sounded like a good idea in .Net. In practice they are a royal pain in the ass, because you’re always expecting to be able to instantieate them just like a Real Class.
– Jave is Easier then C#.
JBuilder 2005 is by FAR the Best IDE on the Planet.
Amen.
I have seen David in many discussions about mono on osnews. he has been trolling about mono for quite sometime.
I like Java, but I don’t see any news about any java-gnome applications that make me want to download it and use it.
Also, we are talking about the DESKTOP, not the SERVER-SIDE or WEB.
Anything the web can come up with is always ugly, clunky, not consistent whereas the desktop is much more robust. I have yet to find a web-based email program that comes close to something on the client-side. You can also tell pages created via Java vs. something else, such as, CGI-Perl. Java is always piss-poor slow.
I think the people who are such GPL zealots that they can’t even stand the proprietary software friendliness of the equally GNU LGPL license can’t see one of the things that makes Windows so popular with developers and continues to make it so. (I’m in fact surprised that RMS even came up with the LGPL license because he is such a zealot that he sees F/OSS is a substitute for RELIGION let alone politics.)
This is precicesly because of the fact that one of the few good things Bill Gates did was to allow royalty free linking to MS-DOS commands and later to the Win16 and Win32 libraries and created an even playing field for both F/OSS and proprietary software in his operating systems. This level playing field for Linux is simply IMPOSSIBLE with QT’s
$1700 minimum price for proprietary development. (Most proprietary software for Windows these days is now developed
by “shareware” developers for whom the price of a QT commercial license is simply out of the question.
Therefore unless TrollTech does something to attract these smaller proprietary developers to their library on Linux (since we are really not concerned with cross platform in this topic but are dealing spacifically with Mono on a Linux desktop named GNOME.) like adding an “Indie” or Shareware developer’s license to the QT free edition in the price range of about $50 (for single seat) to $200 (for multi seat) QT/KDE will simply NOT lead to any kind of future for Linux beyond what it is now.
This brings us back on topic to GNOME and Mono. Here I tend to side with the zealots because I have a good knowlege of the history of Micro$oft and simply DON’T TRUST THEM where
Mono’s relationship with .NET is concerend. It is not their publicly revealed patents that bother me all that much. It is the possibility of secretive SUBMARINE PATENTS ala the Unysys/gif mess of the recent past even in the so called “open” parts of the .NET systems that does. I believe that no matter how you slice it that Mono is a trojan horse patent bomb waiting to explode in Linux with an even greater impact than SCO v IBM when it does.
In fact what Linux really needs is a consistant API widget set in a procedural language like C or Pascal that wrappers to object oriented languages can be easily built around that allows for a level playing field between proprietary and F/OSS developers. Linux already has this. It has had it since the creation of the GIMP graphics authoring and manipulation program and in fact is the current basis of GNOME it is GTK+ under the LGPL. For those who want to do C++ developmkent GTK+ offers not just one wrapper (like MFC being the only C++ wrapper for Win32 that gets much play)
but THREE, these are VDK, GTKmm (the closest to an “official” one) and WxWidgets-GTK. For those who buy into the marketing propaganda that some kind of “managed” (fancy marketing term for interpreted as opposed to native compiled) software platform id the inevitbale future of software development GTK+ is also accomodated in Java SWT and Swing and in Python. (Actually in two ways in Python directly through GTK and through WxWidgets).
In the final anyalisis the best thing for Linux and GNOME to do is stick with what they already have for a consistant API
with a level playing field for all developers (GTK+/LGPL) and leave the M$ proprietary patent traps alone.
Then don’t develop commerical software with QT, duh. Either GPL or buy a license.
Rediculous, I do not even have to do that on Windows. This definately is not an example of user friendly development enviroment — something GNU/Linux really needs.
I do not deny the superiority of KDE, but suppose a developer wanted to create a program for KDE, and did not want to use Qt , because Troll Tech were a competitor.
Now even Seth Nickel jumps on this dialogue.
http://blogs.gnome.org/nb.cgi/view/seth/2005/05/11/0
As a corollary GTK+ happens to be part of the GNU project, so it is quite neutral — atleast in sense it is not owned by anyone exclusively.
And GTK+ is LGPL, a wise choice for a library that you want people to develop with.
Here’s my take as a developer, what I would like to see:
C should continue to be used for the core libraries, it’s fast and easy enough to wrap for other languages as needed. Note that neither camp is actually pushing for their platform to be introduced into the core at this time. I would like to see Python introduced immediately as a “blessed” application platform, no pussyfooting there. Mono should then eventually become a second accepted platform to write official GNOME applications in. It is likely that long before that Mono will become a defacto standard component if the community keeps churning out good applications written for it.
Mono as a platform simply gives the developers more choice. Although if accepted as a GNOME component it would likely be limited to a single language, at least the possibility exists to develop in a multitude of languages with first class access to CLR libaries like GTK#. With Mono you can utilize the very same Classpath libraries you would as if you went with an all Java solution. The reverse is not true. Java the language and Java the platform are virtually the same. Java is not exiting now nor will it be five years from now. While C# doesn’t exactly get me wet either, the potential in Mono itself is there to become something greater.
Red Hat does have the power to significantly delay the introduction of Mono. In the end however, years from now, I think we will look back and wonder what this argument was all about in the first place. I think technical superiority will win out in the end.
Alan Cox and Linus Torvolds continued their debate today over the future of the Linux kernel.
These two juggernaughts of kernel development are on opposite sides when it comes to the proper editor for kernel development. On the vi side, is Linus Torvolds, progenitor of the kernel, while Alan Cox, hotshot young developer who plays by his own rules, is carrying the emacs front.
When asked today about his own stance on editors Alan Cox responded, “You can’t develop a kernel without every person using exactly the same editor. It’s like the Gnome debate [regarding Java vs .net], you can’t develop a desktop unless everybody uses the same technology, if people use different technologies, it will invoke the dark forces of the night and swallow all the blue pixels on the screen. Then everybody will have to stare at red text all day long, and nobody really wants that. Besides all that, its just good programming practice for everybody to pick sides in a debate that really doesn’t matter either way, you know how the saying goes: ‘ One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them, In the Land of Mordor where the Shadows lie'”. When asked about what was ment by the quote, Alan Cox responded by submitting a goatse link, and signing off with a very rude message.
Linus Torvold’s position was markedly different, his message being about sustainable kernel development.
“Well, its really simple, I don’t know what Alan is smoking,” begin Mr. Torvolds, “but the best way to ensure that the kernel is always useful, free, and available, is to put all of our eggs into a single basket (technologically speaking) and then float that basket into the tempest and pray for its survival. By eggs, I mean of course all of our hopes, ambitions, and dreams; this way, if the basket sinks, everything will be destroyed, and we will leave no legacy at all.”
With his soliloquy — I wasn’t really listening — complete, Linus said, “You’ll never guess what I stole from Bill Gates!”, Linus promptly pulled out a jetpack, and blasted through the concrete ceiling.
While the two lead developers may have their differences, neither has presented any clear indication of why these two technologies cannot be made to work together. It seems each party in this debate is hellbent on ensuring that one, and only one technology is in use at any time. The lesson learned, I guess, is that when interviewing famous kernel developers, this reporter should actually talk to them, instead of just (poorly) impersonating them, and then putting their names upon it. Check out next weeks column, for an exciting and clever interview with Andre’ the Giant discussing software patents with Jesus.
“Java kicks ADO’s butt, esp. with Prepared Statements, it’s nice to see MetaData used to good purpose, it’s a royal pain to have to code Parameter collections for ADO command objects.”
Why oh why oh why are you embedding SQL statements in your code? Also, with any decently coded DAL, there is no need to populate a params collection in ADO.NET unless you really enjoy that kind of stuff. PreparedStatements beg developers to abuse them and bog down the server w/ bad ad-hoc queries.
“JDBC supports Oracle’s datatypes: VArray for example.”
It’s arguable as to why you need to ever use Oracle’s VArray data type.
“No Checked Exceptions in C#/DotNet. Which means there’s no way in hell you can be sure all those xSpecialException conditions you code into a Business Object will ever be caught.”
The CLR design team debated this for a while, and left them out for good reason: they don’t scale well, introduce coupling between components, etc (google ‘anders checked exceptions’ for his arguments on this).
“In theory struct’s sounded like a good idea in .Net. In practice they are a royal pain in the ass, because you’re always expecting to be able to instantieate them just like a Real Class.”
Ummm, last I checked they are instantiated identically to classes in .Net (and behave exactly the same except they are stored on the stack and can only be passed by value). Used correctly, they can result in crazy fast code.
“Jave is Easier then C#.”
Hogwash. Any language is as easy/dificult as you want it to be. Compared to other languages, they are both quite simple actually.
Note to self…gotta stop feeding the trolls.
Miguel has done this before. For some reason he is really attached to Microsoft technologies. Before it was Bonobo, which you all know is based on Microsoft’s DCOM/ActiveX/OLE.
Back then he was spouting a lot of gibberish (to us) about “Unknown interfaces” and “Monikers” and “reference counts”. You would have thought Bonobo was the best thing since sliced bread.
Question: Where is Bonobo now?
My opinion is that Miguel’s enthusiasm is purely based on the fact that this is originally Microsoft technology. I don’t know why, but he’s doing it again.
Only this time he’s spouting gibberish (to us) about “assemblies” and “CLIs and CILs” and “exe and dll” and “stacks”. My prediction is that this will pass and he will move on.
I mean, nobody really thought this was going to get into GNOME with Sun and Red Hat on board did they? From the start this was conceived to brew conflict.
Stallman explained his objections to the use of Java in such open-source projects as OO.o in an article on the “Java Trap.”
“If you develop a Java program on Sun’s Java platform, you are liable to use Sun-only features without even noticing. By the time you find this out, you may have been using them for months, and redoing the work could take more months. You might say, ‘It’s too much work to start over.’ Then your program will have fallen into the Java Trap; it will be unusable in the Free World,” wrote Stallman.
Python, Mono, Java, ObjectiveC, C++.
The zealots aside, does it matter that much?
All are mature(or very quickly maturing) languages, and gnome could progess with any of them.
C++ is a tad bit bloated, but if KDE can live with it, its obviously more then usable considering KDE’s rising market share(61% according to someone in these comments)
ObjectiveC is also a viable(if not that widespread) alternative to C++.
Java has support, backing, and the will to continue. It may not be OpenSource free, but Gnome could easily move ahead using it.
Mono is quickly maturing, look at Miguel’s statistics. C# is also highly usable.
Python.. Not sure, but I fail to see how Python would obstruct or limit the project, its a widespread langauge that has decent amounts of support.
I’d say its a debate between C/C++/Mono/Java. They are the only ones with enough backing to be considered a strong choice. It really doesn’t matter which is selected, they are all usable. We don’t need endless complaining from the community about this debate, leave it to Gnome’s lead developers. Heck, you might even just put a poll on gnome.org and let that be the end of it.
I think that the reason D hasn’t taken off is because they’re aren’t opening up their implementation. If digitalmars would GPL it and integrate it into GCC (as another front-end I presume), I think you’d start seeing larger projects using it.
It’s a rock-and-a-hard-place for digitalmars. They want D to be successful, but they also want to capitalize on that success by selling their compiler. Can’t have it both ways I’m afraid.
Also, regarding this Apache Harmony business — I’ve got no idea what that’s about. What’s wrong with Kaffe/GCJ/Classpath?
Stallman explained his objections to the use of Java in such open-source projects as OO.o in an article on the “Java Trap.”
“If you develop a Java program on Sun’s Java platform, you are liable to use Sun-only features without even noticing. By the time you find this out, you may have been using them for months, and redoing the work could take more months. You might say, ‘It’s too much work to start over.’ Then your program will have fallen into the Java Trap; it will be unusable in the Free World,” wrote Stallman.
He doesn’t object to using Java per se, he objects to using Sun’s non-free implementation of it.
See also GCJ, Kaffe, and Classpath.
“red hat is pro java, everybody know it…”
Actually, they aren’t pro Java. They are pro open source and will not step in areas that are even slightly questionable legally.
Examples:
* All products Red Hat sells is open source; they do not ship closed source tools. (They do block the use of the Red Hat name, though, and Red Hat artwork, though.)
* RH and Fedora project do not ship with MP3 support. They do ship with OGG Vorbis, though.
* RH and Fedora project do not ship the Sun Java runtime.
* There are questions about how Mono will be handled in the future if Microsoft asserts patent claims. These issues are not present in non-Sun Java tools.
Because of this to Red Hat, Java is OK and Mono is not.
Red Hat has been very consistent about this emphasis of supporting open source and non-patent encumbered software and avoiding closed source and patent encumbered tools.
Because there are viable open source Java runtimes now, RH (through the Fedora Core project) has just started to ship a Java runtime environment and tools. Eclipse works. They aren’t using Sun’s tools, though.
Red Hat does prefer Gnome. It is a more corporate desktop, and is easier to use for novices to moderate users and has good support for locked down environments. It also has not had relicencing problems that KDE has had with QT…though TrollTech has eliminated these issues and they are no longer an issue. (Corrections appreciated if you know the details…no uninformed corrections or speculation please!)
I am in Seth’s camp.
“If I was in any language camp, it’d probably be the “PyGTK is awesome and mature and has existed for a long time and is uncontroversial, lets use it” camp.” — Seth Nickell
Python.. Not sure, but I fail to see how Python would obstruct or limit the project, its a widespread langauge that has decent amounts of support.
The comments I’ve been reading (and my limited experience with Python) suggest that writing smallish apps in Python is great (like GUI system config tools using pyGTK/Tkinter) — you’re already seeing that in the Fedora project.
The problem, it seems, is when projects become large. Since Python is so dynamic (i.e. so much stuff is figured out at runtime), it becomes unweildy to debug large projects. Java, OTOH, being statically typed, lends itself better to stuff like static type checking, which some argue helps you deliver code with fewer bugs.
I thought Sun recently paid a hojillion dollars to license a bunch of patents that Java was found to infringe upon. Is that different than Mono somehow? I think their licensing terms were confidential so it’s not certain that any other implementation would be immune to going through the same thing.
http://java.sys-con.com/read/46678.htm
Michael
They do have a patch for a GCC frontend for D.
Do you have any credible sources to backup your assertion that large projects written in dynamic languages are harder to debug than those written static languages? Or that applications written in dynamic languages have more bugs than those written in static ones? Or is this just another urban legend?
subhas:
“How about C++ (like KDE) instead of Java or Mono?”
I like C++ too and one of the many reasons I chose KDE over Gnome without even thinking twice was because it had better support for C++. Many C++ programmers have complained about having to use GTK, a toolkit which wasn’t designed for C++, and GTKmm which is an attempt to make GTK friendly with C++ but unfortunately isn’t sufficient and looses the portability.
Sebastián:
“The main problem with Java is it’s not FOSS”
I have a healthy distrust of companies, corporations and governments so the more control I have over the software I use the happier I am. On the other hand thought I can understand your discontent, I used to program with Java but I found the language useless because most people didn’t already have a JVM installed and many wouldn’t install one that was compatible because the Sun JVM was closed source.
Marc Collin:
“java without jvm could be very interesting”
Most users won’t use software if they have to go to the trouble of downloading and installing prerequisites for it first, especially since with languages that are compiled into self sufficient binaries, any extra requirements can be bundled with the program itself and the user won’t notice. The Sun Microsystems JVM is over 40 Mb if I’m not mistaken, quite large for the use of only a few programs. There is also a speed issue with interpreted languages but the use of native bindings/toolkits make the difference negligible.
Lumbergh:
“I guess we should go back to writing in assembly. The world doesn’t revolve around your underpowered machine.
…
You can throw that idea into the dumpster. Basic will never make it in.”
That struck a nerve with me. I don’t know how you get your money but it sounds like you have lots of it if you can afford the constant upgrades it would take to keep you from being on the other end of comments like yours. Some people, like myself, aren’t made of money and can’t afford to upgrade all the time; in fact I’m a student and I haven’t had one single well paying job yet because I’m too busy with my school work, the most I’ve made on any one job was probably around $20 CAD but at the same time I’m working very hard to get good marks in school. I depend entirely on my parents to get upgrades or new computers, the last time I got a new computer was when I was using a Celeron 466 for five years and that was a fluke, prior to that I was using a 486. Many people are like me and have a good reason for not being able to afford new hardware every two or three years, companies are cold and heartless to force people like myself to upgrade or be abandoned; just as cold and heartless as your comment.
That comment about basic is incorrect in my opinion. Visual Basic on Windows is to me an example of two things, the first being a terrible IDE and the second being a well thought out way for the average user to get an introduction to programming while being able to scrap together small personal programs for future convenience. A lot of people give Visual Basic a bad wrap because of flaws it developed under Microsoft but the idea behind it is still good and I think you fail to realize that. If Joe Average can open a nice pretty GUI, drag some widgets the the right places on a user interface and then glue everything together with the closest functional thing there is to psudocode than don’t you think that will encourage him/her to learn more about their computer and perhaps a better programming language. The only downside I can see to Visual Basic is something that has alreayd happened, companies are hiring Visual Basic script kiddies instead of programmers with more understanding of the computer itself and knowledge of a more powerful programming language.
Anonymous
“I am absolutely sick of the GNOME project’s condescending attitude towards users.
…
Some people don’t *want* you to force a registry and spatial windows down their throat!”
I had a similar experience when I last decided to give Gnome a fair chance with Ubuntu Linux; although some people said you can change many of these settings, its more involved than it would be in KDE or even Windows. Personally I am very displeased with Gnome and confused as to why companies like Red Hat and Sun Microsystems would choose to build on top of Gnome rather than creating a new Desktop environment. Some people still like Gnome so I won’t condemn it yet.
Eric Garland:
“Just wait a few months until Perl 6 is out and start hacking a Perl 6 version. It’ll be faster than Java or Mono and much more open source friendly.”
Perl used to be reputed as a cryptic language but I used it back in version 4 and it wasn’t too bad, plus now its been cleaned up as I understand it. It would be interesting to see what comes out of Perl and to be honest I’m surprised that Red Hat and Novell didn’t consider Perl instead of Mono and Java. Perl was around longer and is a powerful language.
Victor
“I gotta agree with the guy who said “Why can’t we just get along?” I’d really like to see that.”
That’s something that isn’t likely to happen on the Internet unfortunately; for many people fighting on the internet is a form of entertainment, others are closed minded, defencive and/or confrontational. There are people on the internet who don’t waste their time fighting, thankfully; however, since there are more people of the opposite persuasion the only real solution is to remove the ability to comment on articles and I doubt that will be a very popular solution.
Coral Snake
“This is precicesly because of the fact that one of the few good things Bill Gates did was to allow royalty free linking to MS-DOS commands and later to the Win16 and Win32 libraries and created an even playing field for both F/OSS and proprietary software in his operating systems. This level playing field for Linux is simply IMPOSSIBLE with QT’s
$1700 minimum price for proprietary development. (Most proprietary software for Windows these days is now developed
by “shareware” developers for whom the price of a QT commercial license is simply out of the question.”
I like Qt a lot but that is a good point. Qt comes freely unded two licenses; however since I am not familiar with the QPL I can only base what I am going to say on what I know about the GPL. I agree wholeheartedly that Qt is far too expensive for shareware developers. As a hard working student I thought once that I could make some money writing programs on the side since I’m quite familiar with C++; however after looking at my options I regretted learning Qt because while it is an excellent toolkit it also has a very hefty price tag for commercial use. I like Qt but as an independent programmer I doubt someone my age would even make enough to cover that price in two or three years considering my potential market.
I said I wasn’t sure about Python because I don’t know a lot about it, I’ve personally never used it. Thanks for the info.
I think Mono/C++/Java are the only viable choices. Python+ObjectiveC lack the corporate support of the others.
(Redhat likes Java, Novell likes Mono, since when is it hard to find C++ supporters, especially since its gone so well with KDE; the head gnome developers should make the choice, they are all good languages, we don’t need all this community bickering)
> They do have a patch for a GCC frontend for D.
Things aren’t like they used to be back when Java came out — and digitalmars isn’t Sun.
Sun came up with a language, implemented it, gave away the compiler, and the free software folks (and others) made free (or not so free) versions of thier own. This is essentially what digitalmars is trying to pull off, right?
Trouble is, things have changed since then. Folks have a wide variety of choices of free compilers/runtimes for various languages (languages which, to varying degrees, can be used in place of D). There’s a lot of competition out there for D.
I don’t know how well-developed this GCC front-end for D is. Last time I looked (a couple years ago maybe?) the project didn’t look too active. My guess is that the digitalmars compiler is pretty mature. If they took that, opened it up, and got it into GCC, I bet *somebody* would run with it. Maybe you’d see a whole new desktop environment sprout up around it. Maybe Gnome would embrace it and slowly transition from C to D. I just know I like working with elegant, well-designed languages for which there are mature Free compilers/libs available.
That’s just my 2 cents though.
I would also like to add, Maybe we should go with Redhat because: A) Redhat’s products Defaultly use GNOME. B) Novell uses KDE for their standard desktop!
> Do you have any credible sources to backup your assertion
> that large projects written in dynamic languages are harder
> to debug than those written static languages?
Not as such. Mostly hand-waving and shrewd guesswork. Do you have any credible sources saying the opposite?
Where I wrote:
Since Python is so dynamic (i.e. so much stuff is figured out at runtime), it becomes unweildy to debug large projects.
I forgot to qualify that with a “my best guess is” somewhere in there. Sorry.
johnMG: Do you have any credible sources saying the opposite?
I didn’t make any assumptions, you did. However, I have no reason to believe that statically typed languages automatically save you from bugs in large programs, as opposed to dynamically typed languages.
In fact, I have seen more static typing errors, casting errors, (un)boxing errors in languages like Java, than I have in languages like Python. Worrying about types today is synonymous to worrying about memory management yesterday. If the computer can take care of them for you, then let it do it, in my opinion.
I think that in future Gnome must be created in Java.
One reason is that then there will be more secure and faster Gnome.
Why does everyone seem to think that the patents that Microsoft and Sun own would not apply to languages other than mono/java? I thought patents were all about specific features.. even if we completely avoided mono and Java, couldn’t Ruby or any other language run into their patents just as easily?
Can somebody explain the difference between Java and C#? They look almost identical. Why is so much debate warranted on this issue?
When I understand it right, they are about equal from a technical sense, but:
Java is closed-source; the open-source compilers do not support certain Java things yet
C# is from Microsoft and Mono might infringe on Microsoft’s patents
Issue is, big bucks is in the App server market. Since java is there for a long time, it make sense for RedHat to promote Java more than desktop focused mono. Redhat is also well aware that Java is also focusing to the desktop again (check Mustang).
Fact is, in mono is still much behind in so called enterprise server arena. (Knowing that mono virtually do not exist there). That is why Redhat is promoting Jonas , an open source J2EE application server, there are not much of a serious choice in other technologies compare to it or JBoss under Linux currently.
At the and, i think people should stop the fight and continue coding. Tough i am a Java programmer, i am sick and tired of language wars.. Mono and java can live together.
“Java is closed-source; the open-source compilers do not support certain Java things yet”
Care to explain wat doyou mean?
there are open source “compilers” can compile “all java things”. Also You can actually download the Sun Java code (JVM+JDK)and compile if you wish..