Numerical libraries for C# and Java attack one of the least appreciated but most important problems of the enterprise application developer: Data analysis applications are more difficult than they look.
Beyond the equivalent of counting on electronic fingers, computer-based mathematics quickly becomes a quicksand of flawed formulas and unscalable algorithms. Even if calculations are correct, the application can be useless without convenient data entry and informative presentation graphics and reports.
Its no surprise, then, that so much analytic work winds up being done—often inconsistently, almost always inefficiently—in a spreadsheet instead of in a task-focused tool. Developers gain considerable leverage, though, in their efforts to build better enterprise analytic solutions with libraries such as Visual Numerics JMSL 3.0 Numerical Library for Java development and the same companys IMSL C# Numerical Library.
Written entirely in Java and C#, respectively, each package represents a substantial improvement in programmer convenience over alternative approaches such as writing a Java or C# interface collection to a library of routines in FORTRAN or C. Each library includes extensive online documentation and unexpectedly full-featured demonstration code.
I was especially impressed by the advanced analytic capabilities (including neural-net analysis) and charting tools (including the visually intuitive Heat Map chart) in the Java library, which was updated to Version 3.0 last month. I was attracted by the prospect of deploying platform-neutral analytic tools to any Java-capable browser.
The product is priced in proportion to its power, at $3,495 for a floating single-seat license. However, many developers will be more drawn to the Visual Studio integration and .Net Framework access that comes from working in C# and by the value proposition of the IMSL C# package that made its debut this past September, at $1,695.
Whatever their language of choice, developers should remember that doing the math right is not the same thing as doing the right math.
Its easy to demonstrate this with one of the JMSL samples, which shows alternative methods of spline-fitting data: A periodic fit to data on coffee sales versus number of installed coffee dispensers produces ridiculous results (yellow curve), while an alternative method yields a much more reasonable projection. There are many subtler but equally dangerous math traps awaiting developers. No library can keep a developer out of these traps, but it can at least free more time for guarding against them.
More information is at www.vni.com.
Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.