
Oliver Jones wrote:
Apps need more testing, more bug-reports from users, more use of bounds checkers and better development practices from the OSS/FS desktop app crowd. They should also stop using C & C++. Mono, Python, Java, Perl, and Ruby should be the order of the day.
I'm really undecided about which is the "best" language for open source graphical apps. C/C++ require lots of debugging and have too many subtle ways to introduce bugs, but interpreted languages just require too many resources. I thought apps in a language like python seemed like a good idea, but I'm not sure anymore. Gnome apps seem bloated enough as it is when written in C/C++, but something like gdesklets (lots of cool desktop applets) which is written in python uses almost a hundred megabytes of ram once started up, before any desklets are even loaded on your desktop! Some of that memory is shared, of course, but less than a third was shared when I had a play with gdesklets. However, interpreted languages make for quicker development, and much easier to tweak/patch/improve, so maybe the tradeoff is worth it, even if it does require faster gruntier computers to run a modern desktop. Java isn't free enough to be included by linux/bsd distributions, although hopefully some free Java Runtime Environments (ie not the ones from Sun or Blackdown) will get "good enough" in the near future. Even so, java doesn't seem very good for graphical apps, and the virtual machine needs too much memory/startup time, although runtime performance seems much better these days than it used to be. Mono as a language seems like an improvement on java, but the implementation is patent-encumbered and has a very unclear legal position. The c-sharp patent licensing doesn't automatically grant enough freedom for a GPL'd implementation, even if Novell claims it's ok. Anyway, I'll stop rambling, since I don't really have a point... but for Free Desktop applications, no language seems to have compelling features over the others that people agree on. Otherwise they'd all stop using the other languages and only use $THE_ONE_TRUE_LANGUAGE*. John * insert your favourite language here.