Saturday, August 15, 2015

No Country for Old Databases

I can't get over how bad the user interface for IBM Domino Designer and Notes are. Having only used the tool for a year and a half, I can't imagine how people have been developing in this tool for so long. IBM claims that you can do pure Java development in Domino, but it was clearly just an afterthought. You can't run a debugger on your XPages beans without going through hoops, you can't properly test XPages in the Notes client if they contain iframes to classic notes forms. Many things are missing or patchwork when it comes right down to it. A throwback to the "Old West" of coding cowboy greatness.
The Cowboy Coder aspect of the Designer and Notes client integration is cool and all, but in lieu of IDE experiences like IntelliJ, IBM's shoddy Designer with their half-baked implementation of Eclipse is laughable. With almost zero integration of source control, you need yet another hack to work with modern tools like Git and Mercurial. The hack used to get those tools to play nice with the Designer IDE is DXL.
IBM's implementation of DXL is the bane of my existence. In all, we have ended up with massive data corruption, overwrites, and simple inability to control our software when attempting to use Mercurial. This is because the export of DXL attaches metadata to the file, things like last-accessed date etc. Needless to say, you receive multiple merge conflicts with this. IBM's DXL also removes pass-thru html tags in legacy code because it melds in with the DXL header. Of course, this is completely unavoidable. You either use the DXL or you need to do your version control by storing design copies...
With all these issues vented I can say that the backend Domino solution is one of the best solutions built around a NoSQL database that I have ever seen. The security model is very tightly integrated with the query logic down to the fields on documents. Building reusable business logic around Domino security model is like icing on a particularly tasty cake. Access restriction can be an afterthought in your design and still be more powerful than 80% of solutions based on NoSQL databases.
This is why I feel like IBM should do more to market this software as a NoSQL DB and make it better integrated into modern Java frameworks. While the integrated http service is great, they should do more to promote the use of Tomcat, as this is the core of some of my personal favorite frameworks. And for goodness sakes, they really need to upgrade to IBM JDK8! (I admit to this being more of a nit than anything)
I can see why they would be hesitant. I am not completely sure, but, I have noticed that there are very few 'young' notes developers nowadays. IBM would be smart to do less to alienate their current users of Domino. But I can tell you this, after attempting to build a Domino clone using MongoDB and Go, I have realized just how good these old geezers have it with the amount of tools at their disposal for making a NoSQL database work in the business world.

Thanks for reading.

No comments:

Post a Comment