Developing with open source tools

Enterprises looking for an alternative to proprietary development tools now have a range of open source software that can reduce the overhead and time to market.

David Kempe, director of Sydney-based open source consultancy Solutions First, said the Linux-Apache-MySQL-PHP or Perl or Python, (LAMP) combination is the "standout" environment for developing custom in-house applications.

"The LAMP platform is easily accessible to new developers, and even people without basic coding skills appear to be able to convert business logic to code very quickly," Kempe said.

Kempe said the admirable qualities of such open source tools are a lower barrier to entry, which means more developers.

"More developers means more support, a more active community, and more progress," he said.

Kempe also sees the openness of the development tools as a way of protecting development investments from whatever fate or mergers might befall vendor of proprietary software.

"We're starting to see customers consider open source for developing back-end systems because if a provider goes belly up, it has a real impact on business," he said. "Open source development tools are so much easier to rip apart and put back together again."

Kempe said the difference in cost of maintaining in-house code for open source or proprietary development tools is neither "here nor there", but open source allows organizations to "jump on the shoulders of others".

"All that shared code means a lot of maintenance can be reduced," he said, with specific reference to the Comprehensive Perl Archive Network (CPAN), a collection of Perl code for commonly-used tasks like performing backups.

The "P" in LAMP can stand for either of the PHP, Perl, or Python development tools which are creating useful business applications like documentation and content management systems, calendars and groupware, resource tracking, and CRM.

"Not a lot of CRM systems are being built from scratch, [but] companies are using SugarCRM and customizing it for unique relationship management software," Kempe said.

"People using LAMP to develop B2B applications have an integration advantage over proprietary systems like ACT which are not on the Web." Another advantage of a LAMP-based application is that it is distributed and accessible to sales people as well as developers over the Web, Kempe said.

In the case of content systems, Kempe said custom business logic and workflow are being built-in to "let you make the app your own", such that CMS is "not just a Web application".

With bookkeeping applications nearly all proprietary, which is "the accountants' fault", according to Kempe, there is still room for open source development in the back-office space. For example, Solutions First developed a sales and invoicing system on the Linux, Apache, PostgreSQL, Perl framework for a customer which uses ODBC to connect to a proprietary accounting system.

Other merits of open source tools include a "less arrogant" community, and better support for older technologies.

Regarding the availability of skills, Kempe said a new breed of developers have found open source so customers can "easily switch" developers as there is increasing competition.

Hamish Ivey-Law, a Sydney University computer science tutor and software engineer, said the open source software world caters for all manner of development styles - from traditional text editors to integrated development environments.

"KDevelop [IDE] is one of the more popular at the moment, as is the highly extensible Eclipse platform produced by IBM as part of its WebSphere project," Ivey-Law said.

"There are plenty of additional tools available that range from UML modellers, like the Dia diagram editor, to debuggers, to performance and error analysis."

Ivey-Law spent two years working on GPlates, an open source application that allows geophysics students and academics to simulate interactively and experiment with the motion of tectonic plates on the Earth's surface.

GPlates is written in C++ and the GNU C++ compiler was used to compile it.

"GPlates is implemented using the open source implementation of the OpenGL graphics API and the GUI was built using the wxWidgets GUI API," he said. "We used the eXpat XML parser for reading our own XML file format, and the entire build process was automated with GNU Autotools. The source repository was stored using CVS [Concurrent Versions System], and development occurred exclusively on Linux machines [Red Hat and Debian]."

Although Ivey-Law sees many "success stories" in the business world of projects developed with open source software, he said the main issue is acquiring programmers and administrators that are competent using these tools, "which should become less and less of an issue as Linux's market share slowly rises and the benefits become more obvious".

"In terms of making the leap to open source development tools, an enterprise would be best advised to have some employees trained so they can make an informed decision as to whether the open source tools would be sufficiently beneficial to warrant re-training their staff," he said.

"The main difficulty for a business in making this decision is that both sides of the fence abound in misleading and evangelical ranting. The applicability of open source software really has to be assessed on a case-by-case basis."

That said, Ivey-Law believes most open source software, and development tools in particular, are developed by programmers who love programming for its own sake.

"This state of affairs leads naturally to end products that match programmer requirements more closely than the end products of 'extensive market analysis' that generally prompt their commercial counterparts," he said.

"The core development tools in the open source world are of an extremely high quality. The main disadvantage of moving into the open source world is that one must be relatively familiar with what these core tools are; there is a great deal of substandard, open source code to sift through before you find the gems, but the search is worth it."

Join the newsletter!

Error: Please check your email address.

More about ACTApacheCMSCVSDebianIBM AustraliaMySQLRed Hat

Show Comments

Market Place