Last year, SearchDomino.com asked several experts how LotusScript and Java played together in the real world of Lotus Domino development. The issue has been a stubborn one to ascertain, ever since Java came on the scene in the mid-1990s as a virtual dynamo.
On the eve of Lotusphere 2005, we thought it was worthwhile to revisit this discussion.
For his part, Scott Lemieux, president of Stone Pond Consulting, wrote that the LotusScript versus Java decision is a classic case of "It depends!" Do you need to interact with the Notes UI classes – NotesUIDocument or NotusUIView? Are using COM classes to access other software applications like MS Word or Excel? These are cases, Lemieux writes, where LotusScript excels. Does your application need to communicate with clients other than Notes or a browser, such as a PDA or manufacturing equipment? Are you interfacing with Web services and or XML data? Where the answer is "yes," these are good cases for the use of Java, he says.
Jens Bruntt has been a developer and infrastructure advisor for Notes and Domino projects since 1994. Bruntt writes that the primary advantage Java has over LotusScript is support for network-enabling agents. However, he notes, there are some particular disadvantages to using Java in Domino environments. The greatest disadvantage that Java has (in the Notes and Domino context) is the lack of a proper development environment. In short, says Bruntt, "Debugging is a pain."
Meanwhile, while providing an even-handed analysis,
"For example," says Guirard, "you aren't forced to either handle or declare every possible error condition."
Finally, financial-services developer Brian Mahoney opines that the biggest "Gotcha!" for beginning Domino Java developers is the need to recycle.
"When Java accesses Domino, it is doing so using the C API," he writes. "Unlike LotusScript, which does extensive cleanup and garbage collection for you, you need to indicate what is garbage." Thus, despite Java vaunted garbage collection traits, if the C API is not taken into account, all can be for naught.
Java Domino developers should use the recycle method once finished with a Domino object, he indicated. This is very important to prevent memory leaks, which lead to exploding applications, writes Mahoney.