Applying commercial and free graphics libraries – how do they differ from each other?
The main difference between commercial and free products is not the required amount of resources but the time it takes to implement these resources. Commercial products should be based on commercial libraries, as it will save resources later on and provide your product with reliable lifetime support. Commercial products solve their tasks in a professional way and provide high performance quality. Typically, they outdo similar shareware titles in all major factors.
Here is the list of factors to be taken into account when choosing a software library for your development:
- Price of the solution offered;
- License purity of the solution;
- Convenience and usability of library interface;
- Quality of library documentation;
- Quality of technical support offered;
- Availability and price of new versions.
Insufficient analysis of all these factors may result in extra expenditures.
Development of an up-to-date software product involves usage of software libraries created for the given project domain. This allows using previous development and experience of other specialists as well as reducing the amount of time and work needed to release the product.
For example, image file procession tasks involve a large number of routine functions similar for every software product. Trying to create these functions by yourself will result in unjustified waste of project resources. Software market offers products that realize these functions and can easily be integrated into any software by its developers.
The first and foremost thing to pay attention to when analyzing available libraries is their functionality. The library should be capable of realizing all functions required from the project. Insufficient functionality will result in over-expenditure of project resources, as they will be spent on integrating several libraries or developing needed functions by the personnel of the project. Excessive functionality of the library can also be harmful, as it will take more project resources to assimilate the library. Besides, multifunction solutions are usually more expensive.
For example, you don’t have to use the multifunction Lead Tools library (priced over $4000) in your text editor to paste DICOM images into text, as all needed functions can be realized with convenient, reliable (and much less expensive) Image Open Save Dialog. Still, if DICOM images are a part of document circulation software, it won’t be enough to provide file processing functions only, and you’ll have to buy a multifunction library.
Today, most manufacturers provide several different solutions to comply with their customers’ needs. For example, fCoder Group offers multifunction libraries capable of solving all image procession tasks together with a special tool designed to support opening and saving files, that is, Image Open Save Dialog.
Selecting libraries for working with graphics images is very difficult, as there are lots of free and commercial solutions with similar functionality offered on the market. However, if the developer chooses to save on the fee for the powerful and reliable tool, he may face extra financial and time expenditure.
Let’s have a look at the possible expenditure your project may have when using free or commercial solutions. Expenses for realizing image processing functions can be divided into the following groups: purchasing and licensing the library, integrating the library into the product under consideration and using the library in the life cycle of the product.
Purchasing the library
This type of expenses becomes most obvious when you select the library you will use. It is the price of the license to use the library in a commercial product. Evidently, non-commercial products are leaders of this group.
Licensing the software product.
Licenses distributed with commercial libraries allow further usage of library functions free of charge. Free products are distributed according to GPL, LGPL and other unique licenses. To solve the question of licensing for such a product you will need to consult a professional lawyer, which may sometimes cost as much as a commercial library.
Integrating the library into your product
This type of expenses is mostly the time your programmers will spend on assimilating these libraries and integrating them into the system. The worst case scenario will include searching and paying for an experienced specialist capable of integrating these libraries into the product.
Integration expenses depend on the following factors:
Convenience of library interface
This parameter is in direct proportion to the quality of the library design and inversely proportional to the number of functions realized by the library. Being well designed, a powerful and multifunction library has a convenient interface that can be mastered by an average programmer in a short period of time. The sample library with a convenient interface saving time needed to master it is Image Open Save Dialog. Interfaces of free libraries can be too complicated, as these amateur software products are often developed without the design stage.
Quality of library documenting
Professional libraries feature documenting prepared according to modern methods of presenting information, containing explanatory diagrams and schemes, which reduces time spent by the programmers on mastering these libraries. Using free libraries one should take into consideration the fact that the documentation can be unfinished, outdated or illiterate.
Technical support
Efficient and competent answers to your programmers’ questions provided by specialists of the library manufacturer reduce the time it takes to create your product and help use your project resources in an optimal way. Free products usually lack technical support.
As to integration expenses, they are higher with free libraries than with commercial ones.
Expenses on using the library within the life cycle of the product
Once your software product is positioned on the market, you will need to release new versions enhancing its functionality and complying with changing needs of your users. Libraries included into your product should also be changed in proper time. In this case, it is very convenient to use libraries that are constantly reviewed and updated, as their new versions will also offer new functions. That’s why, when selecting libraries, you should pay attention to the following:
Availability of updates and newer versions
If the software library lacks newer versions or updates, even if its functions comply with the initial demands of your product, you’ll have to change the library when you release newer versions of your product, which will result in modifying a large amount of your project code. If the manufacturer keeps on developing the library you use, its newer versions will have new functionality while preserving existing interfaces, so your product will have timely updates at minimal expenses. For example, when updating “image open save dialog” library version from 2 to 8.1, fCoder Group extended the list of supported image formats from 50 to 200 while preserving the existing software interface of the library. Free libraries are rarely updated as their authors do not get direct revenue from them. If the author stops developing the library, you will have to change libraries in newer versions of your product, which will cost much.
The cost of newer versions and technical support
Some manufacturers offer their clients new versions of their libraries on preferential terms. Such offers allow saving financial resources when releasing new versions of your product. The cost of new versions for free libraries may increase if the author decides to make them commercial.
The most important thing about using the library in further life cycle of the product is the stability of the library manufacturer. It goes without saying that the stability of a commercial firm with its own place on the market is higher than stability of any enthusiastic individualist.
