Head Resist

Web design, Programming, Development and SEO

Does Open Source Software Have Monopolistic Tendencies?

Friday, January 6th, 2012

The open source movement was formally launched in 1998 when Netscape licensed and released their code as open source under the name of Mozilla. Since then, open source software projects, where users are also in part, the creators of the software content through collaboration, have been gaining in momentum. Critics argue that open source software has by nature, monopolistic tendencies once they turn into successful businesses. This seems contradictory. How can projects that are community based be described as monopolistic?

Price might play a big role in influencing one’s final choice when looking for a product created by a company with more centralized models of development such as those typically used in commercial companies. Often a budget will only take a buyer so far, no matter the specifications of their business needs. But when software is free, everybody rallies behind the business perceived as offering the best solution to meet their needs, leaving only crumbs for their weaker competitors. After all, in the world of open source where software applications are available at no cost, why not use the best of the crop?

JBoss illustrates this well, having become the undisputed dominant open source application server. JBoss does not necessarily offer a unique product, but there are no close substitutes available for the function its software fills. Over the years many other open source projects have tried to compete with JBoss and have ended up falling though the cracks. JOnAS and Apache Geronimo are all still around but lagging behind in the shadow of the giant that is JBoss.

The success of an open source product depends as much on its popularity as on its community. In fact, one cannot survive without the other. Should a project lose its market lead, volunteers will leave and seek the prestige of contributing to the project dominating the market at the time. After all, who wants to work for the loser? As the releases are more and more scattered and the forums less active, the project loses its momentum. Eventually, potential clients are not interested enough to buy its documentation, ask for custom development, enroll in classes, pay for support or consultation and soon, the project is no longer commercially viable. In this manner, the dominating project will organically erase competition and become a kind of monopoly.

For example, openbravo has taken the lead for ERT (Enterprise Resource Planning). Any small to medium sized business looking for open source CRM (Customer Relationship Management) will think about sugarcrm and larger ones will turn to Compiere. The market for open source ECM (Enterprise Content Manager) is dominated by Alfresco Enterprise. And although the masses might not be able to describe how an open source application compares to a closed source one, many households are using Firefox as their Internet Browser and any edgy programmer will be expected to have installed Linux on their home computer. These are all examples of commercially successful and dominant open source software businesses.

Lets look at the area of billing software for which there is a real market need, yet surprisingly there is not much to be found in the way of open source. One explanation for this scarcity could lay in the fact that billing is simply not very sexy. A group of volunteers will likely be more enthused at the prospect of creating an application server software than that of developing a billing software. Also, billing requires great flexibility. Billing is intimately tied to the business rules of a firm and needs to accommodate them. Potentially, there exists as many business rules as there are services offered by different firms. A corporation offering web hosting will have business rules that differ from one offering newspaper subscriptions, although both need to use billing software to invoice their clients periodically.

One open source project can be spotted rising to the challenge. jbilling is an enterprise billing system written for the Java EE platform. It exhibits early signs of dominance in the market as it is the only billing system listed in the Optaros catalog. Optaros is a consulting and systems integration firm specializing in open source products. Also, statistics in SourceForge.net, an open source software development web site hosting more than 100,000 projects, classifies jbilling as the most active and popular billing project. jbilling exhibits all the signs of a healthy open source project on the rise. With a consistent increase in downloads, active forums, frequent releases, keen volunteers, etc. jbilling illustrates how a community can push a product to the top to cater to the market’s needs. More reasons for its growth can be found in the actual quality of the product it offers. It is flexible yet robust and can be customized to address an array of business rules, crossing over to many different industries, providing billing software services to companies big and small.

Interestingly, requests for an open source billing system built for telecommunication companies appear on a regular basis in its forums. In fact, telcos have been crying for years for such a product and it is only natural that eventually the call be answered. Should jbilling continue on its path to success, it can be foreseen that it will, soon enough, extend their software to satisfy this growing demand. And when this happens, it will solidly have established itself at the top, becoming the standard in the open source billing software industry.

As previously noted, monopolies generally have a bad reputation and for just cause. In the area of software, a monopoly leads to everybody being forced to use Microsoft as an example, with its expensive products well known for their lack of innovation and also, their bugs. The Brazilian government illustrated well the benefits of using open source software when, in 2005, it elected to abandon Microsoft in favor of the Linux operating system, citing economics as the number one reason. As Jose Luiz de Cerqueira Cesar, head of IT at Banco do Brasil reported to the BBC during an interview: “If computer users within a geographical region pool their expertise, they can develop software that is perfectly suited to their needs.” So when a monopoly forms in such an organic way, out of the contributions of dedicated volunteers and users, constantly being adjusted to satisfy the exact needs expressed by an ever changing market, when the software itself is available for anybody to use and modify for free and the ultimate result is a software that is well built, well tested and basically bug free, who’s to complain?

Choosing a Web Application Programming Language

Wednesday, September 1st, 2010

Among computer programming languages, there is no single application that does all the different things, in all the different ways, that programmers need. Because of the great number and diversity of programming tasks, choosing a web application programming language has become a critically important step.

Fortunately, there is continuing development in the field, and today the number of capable applications is expanding. Database-driven websites can now be built with such varied scripting languages as PHP, ASP.NET, JSP, Perl and Cold Fusion, which fall into two main groups – proprietary and open-source. In the foregoing examples, all are open-source except the proprietary Cold Fusion and ASP.NET.

PHP pros and cons

As an open-source application, PHP was developed (and continues to be developed) by an active, engaged, international community of users. This is a great example of strength in numbers. Another strength of PHP, of course, is cost. It’s free.

Because it is free, open-source software, PHP can be compiled and “tweaked” for most any operating system. In fact, there are even pre-compiled versions available for the majority of operating systems, both commercial and freeware.

You can also relax a bit more with PHP, as you can count on its being updated and improved more often than other languages. In an open, collaborative and non-hierarchical environment, suggested improvements can be adopted quickly. Again, this is a strength that is derived from its open-source status.

PHP is a mature application, though younger than Perl, for instance. However, it does have a few weaknesses that may be minor annoyances to some, but deal-killers for other programmers. Its lack of event-based error handling means that your workflow may be interrupted by a sudden jump to a special error-handling section. Finally, its lack of case sensitivity for its function names will run afoul of many professionals’ long-established work habits.

ASP.NET = flexibility

ASP.NET is arguably the most flexible of the programming tools, and “plays nice” with both scripted languages (VBScript, Jscript, Perlscript, Python) and compiled ones (VB, C, Cobol, Smalltalk, Lisp). This flexibility is also apparent in the application’s compatibility with such development environments as WebMatrix, VisualStudio.NET and Borland’s Delphi and C++ Builder.

On the downside, ASP.NET is a memory hog and somewhat slower to execute than its competitors. For this kind of application, that can be a serious weakness – on the Internet, it may be called upon to scale to thousands of users per second. Its memory usage can easily become problematic on your server.

JSP (Java Server Pages)

JSP is an open-source scripting language supported by Oracle, so developers can use Oracle JDeveloper to create JSP pages. This can be accomplished without having to learn the Java language first, relieving you of the task of writing Java scriptlets. It is also extensible, allowing Java tag library developers to outfit it with simple tag handlers that use a new, simpler, cleaner tag extension Application Programming Interface (API).

JSP has integrated the JavaServer Pages Standard Tag Library (JSTL) expression language, and it now supports functions. This greatly eases the creation and maintenance of JSP pages.

The most significant disadvantage of JSP is that there is no XML-compliant version of JSP comments, forcing developers to use client-side, HTML/XML-style comments (or embed Java comments). Depending, once again, on your particular needs, this may or may not be sufficient reason to eschew the use of JSP.

A shiny Perl

An open-source language that is both mature and powerful, Perl offers web developers about every tool they need to create dynamic web pages. Like other open-source languages, it benefits tremendously from ongoing development, and the support offered by its international community of users is second to none.

Perl is particularly good for creating single websites quickly, cleanly and elegantly. If it has a major identifiable weakness, it is that it may be unnecessarily complicated. If you are not comfortable switching gears among a variety of syntaxes, it may not be the best tool for you.

The real ColdFusion

Originally built by Allaire and then purchased by Macromedia, ColdFusion is now owned by Adobe. It is very easy to get started building websites with it, and you can deploy powerful web applications and services with less training – and in less time, using fewer lines of code – than with PHP and JSP.

ColdFusion is now at version 8, although many programmers are still using the various iterations of ColdFusion MX, variously known as ColdFusion MX 6, ColdFusion MX 6.1, ColdFusion MX 7, ColdFusion MX 7.0.1, ColdFusion MX 7.0.2, ColdFusion 7, ColdFusion 7.0.1 and ColdFusion 7.0.2. However, ColdFusion MX to ColdFusion 8 is a valid upgrade path. In fact, upgrading to ColdFusion 8 is supported for the two most recent previous major releases of the program.

ColdFusion supports most major databases, from Oracle and Sybase to Microsoft SQL Server and Access. With its own markup language (CFML) and tags to connect to the database, it is relatively easy to create forms and dynamic pages. It also has all the benefits of CGI for today’s broadbased developers. Its weaknesses are few, but expert users will caution that it is probably the most difficult to maintain.

Bottom line

Secure and scalable web applications are important to every business with an Internet presence (which is every business today, isn’t it?) and can directly affect productivity, sales, reputation and profits. If you want to develop a web application and do not have the expertise in-house, any number of reputable web development firms can help you determine the right tools for your task.

Whether your application development happens in-house or with outside assistance, it is important that management understands the basics. You don’t have to become a programmer, of course, but to make good business decisions you do need to know what these powerful tools are all about. As long as you learn enough to help make the appropriate decision, you can leave the actual coding and compiling to the experts.