Without the key information of what you're thinking of developing and what the target environments are any advice will be vague and approximate at best because it is always a case of horses for courses.

That said I can say definitively from the free software point of view not Java or anything targeting Gnome's Mono engine. They're both proprietary originated systems and have a range of patents on them which might bite the free software community later on. This is also the FSF advice.

If you're setting about writing GUI applications then the general wisdom at present is you should use a language with automatic memory management - handcrafted memory management does less well on larger projects and makes for additional coding and debugging time.

So combining this with Qt as you've mentioned for RAD you might try Python, KDE's qdevelop with its python plug-ins, Qtdesigner etc and later in development profile the program for performance hot spots and recode them in C/C++. But the best advice for performance has always been to look at your algorithms first, poor ones are what eat the CPU cycles usually.

Now for some opinions on related matters which others might find contentious.

Free software and open source software has a lot of apps which are developed for one widget set or another. The various desktop environments have each a smaller range of apps targeting them. I suspect this is because people fall into the 'popularity trap' RMS mentioned and want their app to run in a wide range of desktop environments including proprietary ones. IMO free desktop environments are in need of a full range of apps specific for them so that we have the hope of a future 'killer app' bringing the cause new users. So choose a DE.

Further I believe free software developers should deliberately ignore users of non-free systems. If users of such system want a specific free software app, let them port a fork of it themselves - the free software community should not spend time on it. The idea that we have enough free software developers is a myth, it was known in the late 80s that the demand for software development exceeded the world economy's ability to pay for it and the situation is worse now[1]. So IMO free software developers should not waste their time, which is in a sense a community resource, on pandering to people who RMS justifiably calls fools.

Combining the above two with RMS's GNU 30th speech point of 'people are picking low hanging fruit.' Don't do the 'me too' thing of writing yet another media player etc. It's mere vanity. I'm not saying you have to write a large super app. But e.g. go look in a computer store at some of those apps that cost $50 or under. Things like a GUI outliner (which there are a selection of for the Mac), or a clone of 'Write Your Own Novel (Professional)' are a much better proposition. They add to the variety of free software. Remember FSF canon allows you to use non-free software in order to code a replacement.

Similarly free software is especially in need of more games.

Lastly, a word on the supposed 'wisdom' that developers should use a bleeding edge distro like Parabola GNU/Linux. I find it very hard not to indulge the British habit of swearing at such nonsense. I have over 30 years in software and am under various NDAs etc so I can't give details but I have seen sums with lots of zeros go down the tubes from this practice. Developers must have a very stable development machine. Use a chroot/LXC container/Parabola under KVM or whatever for the target environment, but keep your actual development desktop O/S stable, the less change the better. So set up you development environment on Trisquel, hand compile any additional libraries you need and set up some virtualised targets. You'll need to for the other GNU FSDG distros once you've released your app anyway.

[1] If you think about this - there not being enough money to pay for the software we need you will realise that the open source community's purported reasons for success are vacuous. The reality it is because the code can be shared / modified etc as guaranteed by the four freedoms they are riding on an economic incentive to make software for a lot less money. They may have a lot of users but they are fooling themselves if they think there's any other reason than money for them being there. The free software community OTOH has grown and is about an ethical commitment, the fact that there will always be free riders doesn't detract from our achievements, we've never pretended to ourselves we have some quality magic or anything like that.

Leny

Reply via email to