News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 2/1/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
Visual Studio 2010 Release Candidate Available Today
A Visual Studio 2010 release candidate is available on MSDN.
02/09/2010 09:45 AM EST

Is Microsoft eyeing Office subscription pricing?
Microsoft may be preparing to offer a new Office pricing option called "union," which charges the same for cloud as on-premises.
02/01/2010 09:38 AM EST

Facebook rewrites PHP runtime
Facebook is about to open source its own PHP runtime, written from scratch for speed.
01/30/2010 08:53 PM EST

 

Events calendar tab
2/9/2010 to 2/13/2010
San Francisco
IDG World Expo

2/10/2010 to 2/12/2010
San Francisco
BZ Media

2/17/2010 to 2/25/2010
Atlanta
Python Software Foundation

2/19/2010 to 2/20/2010
Los Angeles
SCALE

2/21/2010 to 2/24/2010
Las Vegas
IBM


 
Most Read Latest News Blog Resources

JasperReports Disappoints




December 15, 2005 — 
So, you’ve just bought a used car. You put the key in the ignition, and nothing happens. You turn to the salesman, who looks you in the eye and says, “Oh! you wanted an engine with that car! That’ll cost you extra.” This same story applies to a lot of free software. You can download it for free, but when it comes to learning how to use it, or getting all of the features that you really require, it will cost you extra.

I’ve been spending the past few days working with JasperReports (jasperreports.sourceforge.net). This package is a popular report generator that started out as an open-source project and has now transmogrified into a company called JasperSoft.

The problem is that JasperReports itself is an amateurish piece of work with an unwieldy install process and lousy documentation. You must download the library from SourceForge, but like a lot of open-source software, you must also manually find and load other libraries to satisfy internal dependencies, then you also have to install ant, and run various ant scripts to compile the thing. The online documentation is the typical disorganized collection of “sample apps” with an inadequate overview thrown in as an afterthought. In the you-want-an-engine-with-that-car department, the author of the library will sell you a US$50 book (“The JasperReports Ultimate Guide”) that comprises the real documentation. Or so it would seem.

Unfortunately, much of the “Ultimate Guide” itself is made up of sequences of words that begin with a capital letter and end with a period, but which don’t form a sentence in the English language. For example: “The initial report templates have to be compiled into a more digestible form before being used for filling with data.” And “To use a report virtualizer is very simple. It is only about supplying an instance of the net.sf.jasperreports.engine. JRVirtualizer interface as the value for the built-in parameter called REPORT_VIRTUALIZER when filling the report.” The documentation is filled with programmers’ conceits, like using an XML DTD to describe syntax—a format that virtually nobody understands, though it does prove that the author is more of an uber geek than you. To make things more confusing, the documentation literally has no examples in it.

Shelling out $50 for a book this bad adds insult to injury.

All of the above is, unfortunately, standard practice with many open-source projects, but you can’t really complain—you get what you pay for. JasperSoft, though, is trying to become a real company without fixing any of these problems. How can I trust an organization that makes its core project this inconvenient to install, and that thinks documentation this bad is acceptable?

Moving on to the library itself, JasperReports is essentially an XML-to-report translator. You specify the report format in XML, and the library merges data into the report for you, formats it and provides you with ways to either print the report or export it in various formats (like HTML or PDF). This way of doing things is honestly useful in some settings.

For example, if your client-side program needs to print canned reports, JasperReports can save you a bunch of work, particularly if you use one of the various visual tools to lay out the report (iReport Designer from JasperSoft itself or JasperAssistant, www.jasperassistant.com, for example). Much of that miserable documentation describes the contents of the XML report-description file that the visual tool creates for you, so you can skip the docs if you use a visual tool.

Other scenarios are less compelling. Specifying a report in Jasper XML only to have Jasper export it as CSV (comma separated values) or HTML seems like a lot of busy work. Converting a result set to CSV is a trivial amount of work, and it’s easier to specify the report in XHTML with a little JSTL thrown in than it is to use Jasper’s XML format. (I’d love to see a report printer that used XHTML/JSTL as its report-description language. That way, I could specify a report for the Web and get a nicely printed version as well.)

It turns out that the application that I’m writing at present needs only CSV, HTML and PDF output. I’m debating now whether to use Jasper to create the PDF, but the library that Jasper itself uses for creating PDFs (iText from www.lowagie.com/iText) looks pretty good, so I may use it directly. I’ve given iText only a cursory inspection, so I’ll report back on it in a future column.

In all, JasperReports, in spite of its popularity, is something of a disappointment, and the fact that JasperSoft hasn’t fixed the obvious deployment and documentation problems is inexcusable. Hopefully, they’ll get serious in the future, but if not, there are other alternatives.

Allen Holub is an architect, consultant and instructor in C/C++, Java and OO Design. Reach him at www.holub.com.


Share this link: http://www.sdtimes.com/link/29024
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading