Domino & the state of Java

Mikkel Heisterberg has had some great threads going on lately, all around the use of Java by Notes and Domino developers. Here are the main posts; be sure to check out the comments too:

Much of this was prompted by a post over on Ed’s site that I mentioned a few weeks ago. Whilst I entirely agree with Mikkel’s overall message:

Instead of bitching and moaning I think we, as a community, should be thrilled and instead focus on the fact that IBM has seen this shift coming, and that Notes/Domino with the Hannover client is embracing the future and providing the tooling to leverage existing investments in other platforms. Lets embrace the future not hide away from it refusing to accept the change that is coming.

… I don’t think that this perceived “resistance” is down to the majority of Notes & Domino developers parading around the place with their procedural Lotusscript, pausing only to insert heads in the sand. As I’ve said before, it all comes down to how well Java works for you, and what project opportunities come your way. As an aside, seeing as IBM have added Javascript to their JVM for the new Workplace stuff, why not stick Lotusscript in there too? ;-)

When it comes to getting Lotusscript developers to learn Java, I’ve seen a number of people recommend that those developers write all their back-end agents in Java rather than LS, just to get the hang of things. Well, I have an issue with this on two counts:

  1. this should not be done within a production environment. By all means tinker with re-writes in development, just to learn syntax, but don’t roll this stuff out!
  2. most people, understandably, take this as a sign that they should simply emulate Lotusscript coding patterns in Java: i.e. they stay procedural. Net gain? Nothing. You’re not learning Java that way, just learning to insert semi-colons and curly braces in your code (oh, OK, you get nicer error handling!)

With Hannover pending, the waters become a little muddied. There is understandable excitement around what IBM have done with the various bits and pieces that make up the traditional Notes client—for example, separating the back-end from the old Windows C UI, replacing the decrepit stuff with Eclipse components. What I still don’t have a feeling for is how this “deep” Java integration will stretch, if at all, into the back-end Notes object model. Despite the impressive efforts of Iris engineers working on the Java model in 4.6, I would say that in 2006 Domino needs a far steadier hand when it comes to Java.

Will Hannover offer this?


  1. Ed's thread has gone off on a right tangent, not much of it useful unfortunately. By way of an update, Julian says it best:
    You should use Java when it's the right tool for the job. You should learn it so you know how to use it when you need it.
    Ben Poole#
  2. I hear developers say "I'm now writing ALL of my backend agents in Java" all the time. I scratch my head at it.

    Deploying Java in a Domino environment is a nightmare.

    Jamie McIlroy#
  3. Deploying Java in a Domino environment is a nightmare.
    -- I think this sums it up pretty well.

    Most people, understandably, take this as a sign that they should simply emulate Lotusscript coding patterns in Java: i.e. they stay procedural.
    -- In the organization that I work for, we have 3 Domino programmers and 1 Java programmer. Our switch to Java has included a code review by our Java programmer. In this arena, really quickly you learn that your LotusScript coding style is not the same for Java. With each piece of Java you write, and after its review, you are that much better equipped to write production quality Java, even if it is on your Domino platform.Doug Cohen#
  4. Java adds more power to domino. i am writing all backend operatons with java. Also I am a domino developer :). LS is not powerful especially some operations like web services. With Domino 7, java will be more important. Addtion to all, integrating java gui and domino backendis also possible.But the leak is, domino developers dont know implementing advanced java consepts. At least 1 domino developer and 1 java developer or 1 java and domino developer (well equiped :) ) or 1 domino developer with LS ..
    But new requirments direct you to Java..Tansu Dasli#
  5. No-one questions that Java brings more to the table—network operations and the like. It’s just that one should use it with care, and there are a lot of pitfalls in the current Java implementation in Domino. For example, many developers hit operational issues rather than technical ones when it comes to Java. In my organisation we’re not allowed to run Java agents to update RDBs over the network, or to perform ftp operations.Ben Poole#

Comments on this post are now closed.


I’m a software architect / developer / general IT wrangler specialising in web, mobile web and middleware using things like node.js, Java, C#, PHP, HTML5 and more.

Best described as a simpleton, but kindly. You can read more here.