Happy Birthday, Timmy!!!
First, I would like to wish Timmy, another member of the Power SOEN Rangers, who swings the .NET Saber to defeat binary evils, a very very happy birthday, with lots of great presents and hopefully a LAN party of some sort tonight. He should be, erm... 22 today... right, Timmy?
Lotus Domino Stupidities Reloaded
In this second settlement about Lotus Domino, I'll talk about more frustrations I encountered while developing a Lotus Domino application (actually the same application as during the last post; this is how unproductive Lotus Domino gets).
Maintenance Hell
Lotus Domino is probably one of the hardest development platforms when it comes to maintenance and prolonged development. An important contributing factor is the way it hides chunks of code away from the developer while NOT providing appropriate facility to trace variables and functions.
On most other development platforms, things are source code based, with plain-text ASCII files that are so easy to edit that most developers can stay away from the original IDEs. Even in the case of Visual Basic, where widgets can be dragged and dropped to create the GUI of an application, you can still go back to the source code to edit the widgets directly. With Lotus Domino, you can't do the same. The developer is stuck with the Domino GUI because there is no source code file. To develop Domino applications, you point and click on toolbars and the workspace in order to create widgets. Once you have widgets in the workspace, you click on each widget (e.g. a button, a checkbox, etc) to display the code that governs the widget's behavior and actions. In other words, pieces of code are hidden "within" widgets. Now, "what's wrong with that?", you may ask. Nothing, really. The problem arises with the Domino Designer IDE itself, which provides no way to thoroughly search a Domino application for a variable or a function. This, combined with Domino's way of hiding pieces of source code makes it hell for developers to do maintenance or any development that is of any meaningful size. Picture this: you're taking over an existing project for maintenance, but you still don't understand what specific functions do, yet there are bugs involving those functions, how do you find the function declaration? Even worse, if you try to clean up code and remove declaration and definition of obsolete variables and functions, you'll be wasting hours to find exactly where, if at all, a variable or a form field is referenced throughout the Domino application.
WYSIWYG??? You gotta be kidding.
Another thing about Lotus Domino Designer that irritates me is the unholy combination of HTML code with graphical development. On the one hand, ordinarily, when writing web pages, any experienced web author writes well structured HTML code to make things clear. On the other hand, when writing traditional Lotus Domino applications for use with the Lotus Notes client, developers carefully place widgets, subforms, etc, and format accompanying text neatly. However, when developing Lotus Domino web applications, the developer inevitably needs to add DHTML among the Domino widgets for two reasons:
- somehow, the Lotus Notes server is too dumb to automatically translate some Notes layout to HTML;
- JavaScript is not part of traditional Lotus Domino applications' standard arsenal.
When both HTML and Lotus Notes elements appear on the design workspace, the HTML portion doesn't look structured anymore and the Notes portion doesn't look neat anymore. So the whole point of Lotus Domino Designer's WYSIWYG interface is pretty much defeated.
More?
Anyway that's all for now. There are 4 more weeks to go before my job term is done. You may expect some more bashing in the future about Lotus Domino's interoperability with ODBC databases. I heard from my supervisor that we may be starting a new project next week and trying to stick the ODBC/Lotus Notes chimaera into our own ass... ![]()
- SwordAngel
Recent Comments