I have a client who is using Lotus Domino for their web application/server platform. The client has two "web developers" who are more comfortable with Lotus Domino than more mainstream tools and technologies and are not enthusiastic about making a switch. I have been asked to provide an assessment of why it may be prudent to migrate to a different web application platform.
I would be particularly interested in understanding deficiencies related to the platform as I have very little knowledge of Domino but am very familiar with other platforms.
In addition to the fact that Apache has over 70% of web server market, IIS over 21%, and Lotus almost 0%, what other reasons would you give for moving away from this platform?
Thank you for your help!
Development languages / tools. There are no (that I know of) good & free source version control systems for Notes & Domino. There are products available for purchase that provide these functions, but they don't work quite the same as Subversion or other popular systems. As a language, Lotusscript is on par with VB 6. Code auto-completion in even the latest version of the IDE is not even close to what you get from Visual Studio or many comparable alternatives.
Indexing performance. Indexing performance can be a huge problem in any system, but index updates in Domino don't appear to happen in quite the same way as in an say MS-SQL server. MS-SQL server appears to update every relevant index with each write, where Domino has an index update process which periodically updates the indexes. In my opinion, this leads to less consistent performance of applications under Domino.
Replication / Save conflicts. Being a distributed database, these are issues that have to be dealt with, and no implementation will ever be perfect. The biggest problem with these is not when they are legitimate conflicts, but if you don't do proper document locking, rapid updates (even by the same user on the same machine) can cause problems. This is less of an issue on a single server, web based application.
This is a tiny point, but for web-based applications, the inability to add binary information to the response stream is a terrible weakness.