|
Programming the mathematical algorithms in our components is more complex than you might imagine. There are a number of issues to consider:
- Choice of algorithm - which is the optimal algorithm to use in terms of speed, accuracy, memory requirements and functionality?
- Implementation - programming the algorithm in an effective manner is important. The needs of flexibility, maintainability, speed and efficiency need to be considered.
- Benchmark testing - does the implementation work correctly on actual test data? This is vitally important.
- Flexibility - suppose you code your application in one language and then it later needs to be changed. This will mean that you also need to recode your source code. This is unlikely to ever be a problem with our components, since they are designed to work in a wide variety of Windows programming environments - VB6, VC++6, VB.NET, VC#, VC++.NET, Delphi, Borland C++ Builder, Excel, Access.
- Maintenance - while it is possible to write software, if you leave it and come back to it in several years time, will you be able to instantly use it again or will it take days or even weeks of your time to get to understand it again in order to be able to modify the source code?
- Reliability - how many people will try out your software other than yourself? Are you sure that you have used it sufficiently to be aware of any limitations? With our software, many people use the components, so any bugs are quickly brought to our attention and promptly fixed. As our software has become more mature, the stability increases and so you can be assured of its reliability.
- Documentation - are you also planning to write comprehensive commercial-grade documentation or Help files to fully document all the functions, methods, properties and events in our source code.
- Time - how much time will it take you to write the code? Unless your time is worth very little, you will be surprised at how much more efficient you are at your job by purchasing a component that does what you need immediately, rather than spending many hours, days or even weeks coding.
- Cost - how much are you going to spend on this aspect of your project? If you value your time conservatively, can you write the algorithm(s) you require for the same cost? Let's be real - doing even the basic math homework to get started on any of these components will almost certainly cost you more than the fully licensed component itself. More to the point, it would be quite easy to spend 50x - 1000x the amount on doing it yourself as it would in purchasing it and even then, not end up with as good a package or be assured of the maintainability of the software.
Summary
It is one thing to be able to knock together some code that does a specific job for that moment of time, but to be sure of the reliability and value of the source code in an application is quite another. So while it may be feasible for you to program similar mathematical algorithms, and it is your choice whether you wish to spend the time and effort in programming them.
To put it another way, many of us may have once serviced our own car, but not anymore, we find we have got much better things to do with our time. So this means now we are happy to pass that job on to someone else who can do it quickly and efficiently. Similarly in software - it is easy to get sidetracked - technically there are many things that we might be able to do, but the question is do we have the time or the desire to do something ancillary to our main goals. If your real interest is in achieving a specific goal, then chances are you are much better of following that and purchasing software components to do the things that will only waste your time otherwise.
Our aim is to make life easier for people who are developing applications and don't want to waste their time on the mathematical details.
|