Follow the Australian Telecommunications scene NEWSLETTER- FREE TRIAL
The Linux distillery
Bringing the world of Linux to you, David cuts through the tech and shows you how it works and how to use it, in terms that apply to any distro. RSS
Technology news and Jobs arrow The Linux distillery arrow Be the next big thing in open source
Be the next big thing in open source E-mail
by David M Williams   
Monday, 10 March 2008
The language
Another very early design consideration is the choice of programming language to use. This can’t be underestimated. It will be hard to change later on.

The platform or platforms you wish to support will influence this. If you know you are definitely only interested in targeting the Linux operating system then you can safely go a C++/GTK route or something similar without fear. Or, if you curiously determined that Windows was the only operating system you cared about then you might opt for Visual Basic.NET or Borland Delphi.

However, for maximum impact, cross platform tools and languages really are the best option. Happily, even with the above you’re not absolutely locked in. Most cross platforms apps have a C/C++ base, albeit with slabs of conditional compilations and separate build scripts or Makefiles – but it can be done.

Similarly, you can get GTK libraries for Windows. Or you might opt for OpenGL as your graphics platform – but not DirectX, because this will lock you in to one environment.

Although .NET is a very Microsoft specific technology, the good work of the Mono project means a good bulk of .NET code can be made to run under Linux – just not anything which targets the v3 or v3.5 frameworks yet. And Borland’s Kylix development environment can help bring Delphi code across too.

Alternatively, Java is always available and for the most part its “write once, run everywhere” mantra can be made to work. Python is also a popular stable.

Whichever language you choose be sure to determine that it can compile under Linux and Windows and, if you choose, MacOS. This means making sure there is a run-time environment available in the case of interpreted or pseudo-compiled languages like Java and Python, or making sure there are libraries available in the case of graphical toolkits like GTK.

One problem you may face is resistance to installing foreign additional components. Python ships with every Linux distro, but is not ordinarily used by Windows without some program requiring it, for instance. You may find stuffy sysadmins resistant to loading Python or Java. Or perhaps you might find Linux purists taking offence to littering their ideologically-pure Linux box with interpreters for Microsoft’s .NET.

Nevertheless, if your project really does do something useful these concerns are almost moot. The ever-popular Multi Router Traffic Grapher (MRTG) does not suffer even though it requires Perl. This is because of our previous point one – the concept fills a need and in this case people will install the pre-requisites.

Another example is the most downloaded project on SourceForge, Azureus, a Java BitTorrent Client. The design choice to use Java means the same code runs on all major platforms. Its utility means nobody minds installing a Java run-time to use it.

What more to consider? Please read on!

CONTINUED







 
< Next story in category   Previous story in the category >
iTWire user statistics Visitors last 30 days
694,279
Subscribers 15,210
#1 independent technology news advertise here
  •   *  
  • Search
  • AdvSeach
  • Login
  • Events
  • FreeStuff

- Advertisement -

Featured Whitepapers

Follow iTWire on Twitter

About iTWire

iTWire is all about technology news, information, jobs and community for the IT and telecommunications industry professional. Subscribe to our free ICT daily newsletter