App Dev After CollabSphere 2018
Sun Jul 29 10:48:41 EDT 2018
In recent years, MWLUG/CollabSphere has tended to be a good time to get a lay of the land for what IBM - and now HCL - intends for their app dev strategy. Recent Connects weren’t too heavy on announcements of major import for Domino developers, and any news to come out tends to do so in the months leading up to summer.
This year, we’ve had time to digest the implications of the HCL transfer, get a feel for how they intend to handle the product, and generally get a good bead on their app-dev vision. What they’ve said so far this year is clear: LotusScript for old apps on mobile platforms and Node.js for new development (or new developers). As far as XPages, I believe that the most time that it got at the conference was in my session, which was about what to do after XPages.
LotusScript
Though I’ve certainly not hidden how painful the prospect of enhancements to LotusScript is to me, I have to admit that adding a few capabilities for REST data service access makes strategic sense for the platform. Though XPages made a significant mark on Domino app dev, it never pushed aside the classic style, and every move that IBM made for app modernization since then seemed to exist exclusively in the span of the sentence announcing it.
So HCL announced early this year that they planned to port the classic Notes client first to iOS and then later to Android and WebGL+WebAssembly. Adding any kind of Java to this plan - XPages, LS2J, etc. - would present some technical hurdles, and so it makes workload sense to focus on the languages that have runtimes in the C core.
Apps run this way won’t be good, but there’s some logic to the tack of targeting customers for whom “modernization” only really means “we want our same old apps to run offline on new OSes”. Their plan to run on phones also necessitates some more-dramatic changes to the tooling, so it’s possible that they have larger changes in mind - or at least we’ll see a return of the “hide on mobile” checkboxes in Designer.
Node.js
The big HCL push for Node.js seems to me to be a way to get a lot of bang for the buck: by positioning it as the new way to write apps, they’re both (potentially) making Domino more appealing to those not already on the platform and guiding existing developers to a platform for which IBM and HCL are not responsible. Though the domino-db
driver is no small technical feat - and it looks like they’ve done a good job making it both fast and native-feeling in Node - it’s a much, much smaller footprint than XPages, which put IBM on the hook for maintaining an entire app-dev stack and UI toolkit with limited outside assistance.
I do think that it’s smart to write a Node.js DB driver - even if it doesn’t bring in an influx of new blood, it provides a legitimate app-dev story and Node is a top-notch platform. The gRPC stack also provides an entryway for future hooks and development without the assumptions of NRPC.
Java
Java development on Domino is in a weird place. Domino 10 doesn’t have anything directly for XPages/OSGi developers, though we’ll get access to DGQF via the Database
class. I’ve heard whispers that they’re starting to plan more for Domino 11, but that’s largely conjecture at this point. Certainly, HCL has made it clear that their heart isn’t in it, and honestly I get why. Since XPages has been in essentially maintenance mode since 9.0.1 or earlier, it’s aged itself out of contention for modern app dev. It wouldn’t be impossible to drag it forward to something respectable, but then they’d still have another development environment exclusive to Domino to maintain.
I’m not sure what the best thing to do with the stack is. Though XPages didn’t bring all Domino developers to it, it did bring a significant chunk, and a lot of people have spent upwards of a decade of their life with the toolkit. For my part, I think it makes a lot of sense to move to “normal” Java/Jakarta EE development, which provides the possibility of salvaging Java-side code, though it leaves XSP and SSJS in the lurch. It’s hard to make a good financial case for either significantly upgrading the platform or at least undoing the tight coupling with the Domino server that it accrued over the years, though I’ll admit it’s sort of fun to think about.
Henning Heinz - Mon Jul 30 06:45:02 EDT 2018
So the node.js code is not (optionally) in a Notes Database?
Jesse Gallagher - Mon Jul 30 07:40:15 EDT 2018
To my knowledge, the Node support is a DB driver to be used with “normal” Node apps built and run entirely separately from Domino.
Henning Heinz - Mon Jul 30 08:55:16 EDT 2018
Not what I want to hear but thank you for the update.
Richard Moy - Mon Jul 30 14:09:27 EDT 2018
Henning,
Why would you want it in a Notes Database. The approach that HCL is doing I believe is the right approach and mirrors other app dev solutions. If you aren't planning to use Node with Domino than you do not have to install it. It is optional.
Henning Heinz - Mon Jul 30 18:48:59 EDT 2018
Well, I have done some projects with "other app dev solutions" like NodeJs with MySql and MongoDb or Play Framework. I do like them.
If NodeJs integration is just a database driver I will probably use it only for migration and some coexistence.
But this is just me.
Â
Jason Roy Gary - Mon Jul 30 21:19:35 EDT 2018
"Just a database driver" . . . well, for now. But we have plans for mail, calendar, tasks, design, etc. I would also, with the gRPC implementation under the covers, think that Domino could give Mongo and Couch a run for their money in performance.
Henning Heinz - Wed Aug 01 09:17:03 EDT 2018
I'll have a look at everything you throw at us. It will for sure help anybody who needs easy access to Domino data.