dominoGuru.com
Your Development & Design Resource
Was XPages a waste of time?
06/08/2020 12:45:00 PM by Chris Toohey
I was asked recently by a long-time Notes/Domino developer a rather difficult question: was the investment in learning XPages a waste of time?
I thought I'd share my thoughts here, in case anyone has similar thoughts/concerns or cares to hear what I think on the subject.
I'd like to start by breaking up my response to address two different questions:
- Was learning XPages a waste of your time?
- Was deploying XPages applications in your production environment a waste of your time?
Was learning XPages a waste of your time?
Let's take a look at XPages, which hit the scene in 2008 and was quickly established - but not immediately adopted - as the "bridge to web development" for the Notes Client application developer. It was all about web enabling existing Notes Client databases, and new projects that were born with either "hybrid" design (that is, Notes Client and web browser clients as the target user platforms) or strictly web browser apps. There were also attempts at high-fidelity tablet and mobile device (via mobile web browsers) use.
For those of you who took your Notes Client databases to the web using the Rapid Application Development techniques that XPages afforded, like dragging-and-dropping Layout Controls to create a simple application layout, View controls to display Notes ViewData, etc., you had a quick way to get an older, simple Notes database onto the web that may have otherwise not gotten there. You may have picked up some HTML, CSS, and JavaScript along the way. You also likely started using the Extension Library controls, which helped bridge the gap between the "core" XPages controls and "stuff we expect in a Notes [or current web] application".
For those of you who dove into XPages, you picked up the previous mentioned skills and more. You may have written your first Java. You built beans, scoped variables, XAgents for on-demand web-accessible jobs, learned how powerful a server-side JavaScript engine can be, and perhaps were those voices (I was one) who begged for the "Open XPages in Source Pane by Default" option, since you were faster slinging XPages XML than you were at drag-and-dropping. [And let's face it, the Design Pane couldn't keep up with what you were building anyway...]
And there are still those who took it a step farther. Those of you who learned GIT and how to manage multiple-developer NotesDatabase on-disk projects. Those who used the REST web services controls to bypass "traditional" Notes Client interface designs and/or as integration points with other technology investments. Those of you who can now write entire web applications independent of the Notes/Domino development tech, but use Notes/Domino endpoints for CRUD operations against NotesDatabases for your data stores.
There are those of you who built applications that are still running your businesses today. Tech "in the field" that is enabling your users. Solutions that have become mission-critical to daily operations.
-- and a lot of you had to do this while migrating Notes/Domino mail and calendaring to a different platform.
So, to answer the first question,"Was learning XPages a waste of [your] time?", I'd say no...
Even if you only have one solution currently being used in your organization that uses XPages, it was worth your time and effort learning XPages - not only for that solution, but for everything you learned along the way.
Was deploying XPages applications in your production environment a waste of your time?
For the second question, at the time of this post it's June of 2020. 2008-2020 marks 12 years of XPages, a component of the Notes/Domino platform... and while that component may be [for all intends and purposes] in maintenance mode as far as we can tell, it's still a solid solutions platform which itself is again a component of a larger, feature-rich application development and delivery platform.
If you have XPages applications in your enterprise environment, you likely (read: hopefully) did the following:
- created a common application layout for your web browser client applications.
- created common function controls and libraries for your applications.
- created a common "theme" to create a common user interface and user experience for your applications.
For example, knowing that my company was moving to GMail from XPages, I created a Bootstrap-based application layout and theme that adopted a lot of Material UI Design features that are used in GMail like the snackbar messages in response to user interactions. I then got to work web enabling existing Notes Client applications (slowly) while developing new projects using XPages (my day-to-day).
This resulted in the vast majority of users calling my XPages-based applications "the new Google apps", as in, "So we don't use the old Notes Performance Management database but the new Google version?"
Notes/Domino was in-house knowledge and an existing technology investment. More importantly it was more than capable of getting the job done. And when it wasn't, we could easily integrate with other technology investments to address functionality gap or use the right solution for the job.
An example of this would be the LRS (Learning Record Store) for our new LMS (Learning Management System). Housing all of those entries as documents in a NotesDatabase didn't make sense, especially when I would need to query and recall data at the speeds needed to enable a smooth online learning experience. We opted to use SQL for the LRS as calling various stored procedures proved MUCH faster than querying Domino.
Domino isn't going anywhere. It's an existing technology investment. It's running both non-XPages and XPages applications that help run our business. If for nothing else, the annual cost of the Enterprise licensing is a cheap way to extend the investment for the next several years. With HCL's well-publicized efforts to keep Domino going, there's no immediate need to consider migrating to a different platform.
If there were no changes to XPages (or Domino for that matter), it would have been worth the time and resources invested for any one of - not to mention the dozens of - business-driving solutions that run on XPages. If it's still running in five years from now while we work on new projects using the technologies HCL is investing in as part of the Domino application platform, then that's 4 1/2 years (provided an update/rewrite/port will take 6 months) before we need to revisit the best technology to deliver whatever the business needs demand said solution has to meet 5 years from now.
So, are your XPages applications in your production environment a waste of your time and efforts? Absolutely not. Existing Notes Client databases made it to the web browser. New web browser application projects established a functionality and logic baseline. Both are actively help run your daily operations... so of course it wasn't a waste of time.
In conclusion
If you never made the leap to XPages (in the past 12 years), you may still consider diving in. XPages will be in-play for years to come, and you can't simply say "well, I don't know how to support those applications..." It's part of a platform that I'm certain your resume says you're an expert developer on... so yeah. If you're going to build on the platform you might as well know the platform. Check out Web Services while you're at it!
If, however, you've been taking advantage of XPages over these last 12 years and wonder if it's all been a waste of your time... Well, I don't think so, provided you have solutions that are addressing your business needs and you learned some transferable skills.
If XPages disappeared tomorrow, these transferable skills like mastering HTML, CSS, and JavaScript will at least get you started on the modern web development technology that is being enveloped into Notes/Domino. If you've managed on-disk projects and used GIT to check-in and check-out code and commit updates, you're on the right track. Object-oriented programming and MVC architectures? Solid stuff that "has legs" in the greater development world.
And since XPages is not disappearing tomorrow, the applications you have in production are addressing business and user needs. You're good to go.
Finally, I think this needs to be said. If you're concerned that 12 year old technology is being supplanted by more modern, global, and highly-adopted web development technologies in an attempt to give you the tools needed to address your immediate business needs with an eye towards whatever comes up in the future, then I'd honestly suggest reevaluating your desire to be modern (and employable) enterprise application developer. Perhaps that's harsh, but it's honest!