Bob Balaban's Blog


    Bob Balaban


    Why you should come to Lotusphere, and, Tell me what to post about!

    Bob Balaban  December 29 2007 10:40:00 AM
    Greetings, Geeks!

    Yeah, yeah, I haven't posted in a while, blahblahblah, busy, blahblah, slacking off for the holidays, blahblahblah.

    Ok, now that we've got that out of the way, what do you want to talk about?

    Seriously! Repeat readers of this blog know that mostly I pose questions for you, "my geek posse", on topics about which I would like YOU to educate ME. Usually I describe one or more ideas we (IBM Notes/Domino dev teams) have where we want feedback from you. And (thank goodness, FSM, whoever) we get it! You, collectively, have been TERRIFIC about providing educated, thoughtful and VERY helpful input. There are things that were on my dev hit-list that no longer are, because of you. There are things that we weren't going to seriously address that we now are, because of you. And there are many things that we are now going to do a bit (or a lot) differently, because of you.

    So, THANKS!!

    At the moment, in the "season of getting ready for Lotusphere" (more about Lotusphere in a bit), some of us in scenic, suburban Westford, MA are continuing to work studiously on NMFR (next major feature release), some are building those special "preview" demos for 'Sphere (snippets of new functionality that haven't appeared in public yet) for their own or someone else's session, some (particularly the Lotusphere Content Team) are reviewing the presentation content for the conference. Some are doing all of the above.

    We often call it the "silly season". Ok, no, we don't really. But we should. In reality, people call it other things, only some of which I can repeat in a family-oriented blog. Mostly it's something like "Lotusphere Season", which apparently stretches from early December through the end of the conference, in late January.

    Ok, (honesty time) all of the above is basically just a long-winded lead-up to the fact that I can't think of anything interesting to ask about. Been trying for over a week, (really!), but nothing useful has occurred to me. Then, just about 10 minutes ago, I had a (possibly) brilliant idea: find out what the posse wants to know, and then talk about that for a while!

    How's that  for lazy, huh? I'm almost proud of myself. But really, this is kind of in keeping with the way I've been running the blog (no, not the lazy part) -- find out what the geekdom thinks, and go with that. And, it's also a kind of thank-you/open-Q&A opportunity for you. Ask away! Suggest topics on which you'd like me (or a guest blogger) to post. If I can answer without violating IBM confidentiality rules, I will. If I don't know the answer, I will either say so, or find someone else who does.

    The other thing I thought I write about briefly is, well, Lotusphere, and why you might want to attend (in case you haven't yet decided to do so).

    I have personally attended all 14 Lotuspheres so far, and this next one will, I think, be one of the best (and not only because it'll be my 15th). Attendance has been on the rise for the past couple of years, and my (unofficial) sources tell me that the exhibit space is expected to sell out. The number of sessions will be up, too. As a track manager (I supervise the content for the Jumpstarts) I get to see all of the submitted abstracts, and give input to the other track managers on which they should select for the conference. There's a TON of great session content on tap for Lotusphere08. A lot of it, of course will be focused on Notes and Domino, but there are a lot of other products (some new, some not-so) to talk about. A majority of technical sessions will be about stuff we've recently shipped, but quite a bit of content will also preview what's coming in '08. My session (only doing one this time) will describe how we're changing the way the server generates HTML output so that developers can effectively use CSS and JavaScript to improve the look'n'feel of their Web apps.

    Unlike in previous years, the presentation content will be online BEFORE the conference, AND again after (some speakers change their decks a little, so we're also going to give those who do the opportunity to publish the "as delivered" version too). Rocky is organizing another Jam-fest, there will be a Guru-palooza, and the plan is to have a special surprise Asker-of-the-First-Question at the Meet the Developers session (you Lotusphere regulars out there know exactly what I'm referring to).

    Should be a really good one! (No, I do NOT know who the guest celebrity speaker will be, and I do NOT know where the big Wednesday party will be, so don't even bother to ask).  YES, I will have some special handouts (while supplies last). Hope to see y'all there!

    Happy New Year to everyone!


    1Roland Reddekop  12/29/2007 2:38:09 PM  Lotus Web Development 2.0

    Thanks Bob for your openness through this blog to float trial balloons and do "reality checks" about the direction you'd like to take Notes Domino Development.

    BTW, you're only torturing me by talking about why I should be at 'Sphere 08 because its not really my decision...the Corp budget does not allow annual attendance, so see you next year in '09. I suspect that most developers working for average income companies are in this sort of situation.

    Anyway, my suggestion is to address how much easier it will be in Domino 8.5 (?) to webify Notes applications with the changes you're working through. Are there any functional improvements in the pipe (i.e. Domino will auto-convert more Notes design elements to HTML/JS) or simply cosmetic improvements like the ability to turn off those pesky font tags without the need to reformat everything as Default Sans Serif Font Size 10 which is laborious? I guess a combination of both would be the Dojo integration into the product. If that's the "big announcement" its the worlds worst kept secret that Dojo functionality will be added to Design elements so that you can invoke a Dojo widget with a checkbox. Enough hints have been dropped at conferences over the past year (e.g. Domino Developer 2007 in Boston) as well as IBM's support of the Dojo org and implementation in Quickr and Portal. For those of us not committed to any particular JS library this is good news (maybe we just don't know any better). While all these are helpful, I do hope for something a bit more revolutionary that will enable Domino to hold its own against the powerful RIA platforms that are getting traction such as Flash/Flex/Appollo and the MS equivalent. .Somebody brought up a rumour about the possibility of integrating flash into Domino via Open Lazlo. That would be a pretty interesting extension. Confirm or deny?

    2Thomas Bahn  12/29/2007 5:23:55 PM  Re: Tell me what to post about!

    Hi Bob,

    since I don't believe, you will write a lot about Web development enhancements in NMFR before the 'sphere, I ask you another question:

    Does IBM plan to enhance LotusScript?

    There are many requests at IdeaJam (59 tagged with lotusscript today),

    - some of them are only syntactic sugar (as my prof would say), making development easier, allowing shortcuts, adding some missing features, adding @Formula abilities to LotusScript;

    - some of them are about developing LotusScript in the Domino Designer (which will be answered by NMFR, I believe),

    - but there are quite some ideas about the language itself.

    LotusScript as a language lacks development!

    Since it was created for Notes 4, how many features has been added TO THE LANGUAGE (not the DOM)?

    Since the last millenium, other programming languages are on the rise - with new ideas, new concepts and refinements of the existing features. These languages, e. g. Java or C#, aren't static, but they get really new, really exiting features. Just think of the language enhancements in Java 5!


    I love the productivity of LotusScript - even in the existing Domino Designer. But it is ripe for something more, ripe to be THE language of choice for Notes developers for the next decade.

    IMHO, what it lacks most, are the missing OO features. With Interfaces, method overloading, etc. it would be prepared to be a real JEE alternative - at least for small to medium scaled enterprise applications. LotusScript developers could reach new heights using the same design patterns as Java programmers do for years.

    But in my impression, IBM won't do anything about LotusScript. Their strategic goal seems to be to get rid of this "legacy". "Get the developers to use Java, why enhance LotusScript?" seems to be, what IBM managers think, at least to me.

    Bob, what is your impression?

    3Gary Devendorf  12/29/2007 7:46:11 PM  Why you should come to Lotusphere, and, Tell me what to post about!

    Those who knew LotusScript in Notes 4.0 understand that it grew nicely in Notes 5 and some in Notes 6.

    4Dan Sickles  12/30/2007 2:07:18 AM  Why you should come to Lotusphere, and, Tell me what to post about!

    Gary, What significant language changes were made in R6? I've been using Lotusscript since R4 alpha and I don't think the language has improved much at all. To echo Thomas, every other language I use has evolved dramatically more than Lotusscript since then. So have the standard libraries.

    Bob, I too would like to know what the scripting language roadmap looks like. Javascript (jvm) appears to be there and I'm all for that, but will Lotusscript keep up?

    What about embedded gecko for client rendering?

    5Gerald Mengisen  12/30/2007 4:47:52 PM  Why you should come to Lotusphere, and, Tell me what to post about!

    I would like to see some best practices about using Domino objects via ncso.jar - in fact, a DeveloperWorks article would be great in continuation of the great series "Java access to the Domino Objects" ({ Link }

    In particular, I'm curious about the following:

    - I see people recycle every Document object when looping through a view. Is that necessary? Would recycling the view object afterwards also recycle all the Document objects? Or should one rather bulk recycle the Document objects?

    - Should or can one pool sessions, databases, views? Or should they always be instantiated from scratch? If they should be pooled, can one use { Link } for that?

    Thanks for asking,


    6Andrew Brew  1/1/2008 4:57:14 PM  Why you should come to Lotusphere, and, Tell me what to post about!

    Hi, Bob.

    I won't be making it to Lotusphere this year, alas. I hate to miss it, but a belated honeymoon takes precedence!

    The HTML/CSS enhancements for web clients sound great - I can't wait to get more details. My question is:

    How far will such enhancements be applicable in the Notes client? At present both HTML ("rendered" at load time - ugh) and CSS are supported to a token degree in the client. I would love to be able to have code/design written once to work in both the client and browser.

    7Bob Balaban  1/2/2008 11:38:54 AM  Why you should come to Lotusphere, and, Tell me what to post about!

    Greetings Geeks, and Happy New Year!

    I fully understand that many of you can't attend Lotusphere due to budgetary or travel (or other) considerations, and you have my heartfelt sympathies. Please be patient, once Lotusphere is over we can start talking about more stuff here in the blog. I'm sure you all can understand that people at IBM don't want their "Lotusphere Surprises" leaked in advance on someone's blog, so I have to keep quiet about a few things for another couple of weeks.

    Let's get right to my replies to the comments so far:

    @1 - Roland, there are HUGE changes coming in NMFR/"Domino Next" (we're not using the term 8.5 officially, yet) to make it easy to webify Notes apps, and yes, they go way beyond such things as turning off <font> tags. More after Lotusphere, but for now I can say that our primary objective in this area is to make our generated markup fully CSS-friendly and JS-friendly (and no, we will NOT try to force you to use Dojo). Whether we will hit every one of your requests or not is not yet settled, and the ways in which our new functionality will be surfaced in Domino Designer and other places is still under design/development. But I think (hope!) you will be happy with the results.

    @2 - Hi Thomas, I can always rely on you to ask tricky questions! :-)

    Let me divide your comment into two sections: LotusScript language improvements, and LotusScript front-end/back-end class enhancements.

    As you may seen me write on many occasions in the past 6 months or so, our focus for the "Domino/Next" release is on Web AppDev. As such, we are planning no significant enhancements to the LotusScript language itself (interpreter and other bugs are, of course, continually being fixed). That statement applies to the next major feature release only, and is not meant to be a statement one way or the other about any feature releases beyond that.

    Having said that, much work is proceeding in the area of the back-end classes. Lots of new APIs (I can't be too specific right now) will be exposed for both LotusScript and Java. We are most certainly NOT "get[ting] rid of" LotusScript (sheesh, I've been saying this for 10 years...). The plans for NMFR have not included much in the way of language enhancement simply because of an unfortunate fact of life: LotusScript does not run in browsers, and Web apps are where we are putting a lot of our development/testing/doc resources for now.

    @4 - Dan, sorry, no current plans for gecko that I know of.

    @5 - Hi Gerald! (Your article link didn't work for me, can you email?) I'm sure there's a ton of stuff out there on using the CORBA classes (I even wrote some of it!), going back several years, and (except for the addition of new methods/classes) it hasn't changed very much. Some of the more advanced topics, such as things to watch out for with multi-threading that are less well-covered only apply to the local classes, so you should be in good shape overall. I'll try to provide some guidance on your specific questions here, though.

    Recycling Documents: Recycling documents inside a view iteration loop is highly advised, else you risk running outof memory in the DIIOP server task. Recycling parent View objects does not help for 2 reasons: you might run out of memory before you get to the end of the loop, and anyway, Document objects are "owned" by their parent Database, not by the View you use to access them. So, when a View is recycled, the Documents still hang around. Personally, I never use bulk recycling.

    Pooling: When I was working as Looseleaf Software I wrote a Session-pooling class for use with the NCSO library, and sold it as a product. It worked great, both for performance reasons (Session instances in the pool were re-used, not disconnected and re-connected) and for overcoming some glitches in the server implementation (idle timeout problems, and what might have been a Windows-specific memory issue). I don't know if any of those problems have since been fixed. I suppose one could conceivably pool Database instances as well (but you'd have to also pool the parent Session), I never tried it out. I have no idea if the Apache pooling stuff will work well or not in this environment, I never tried it. The pool implementation I wrote was extremely robust, and it handled some Domino-specific situations I'm sure the Apache one does not consider.

    @6 - Congratulations on the honeymoon, Andrew. Obviously you need to give that a much higher priority! I actually made the mistake of asking my wife last Spring if I could delay our anniversay celebration to attend a conference in Germany. Got the weirdest look....

    Your question is a very good one, and I unfortunately do not have much of an answer for you right now. We certainly want to align our new server-side Web CSS capabilities with the rich client, however, we have not fully fleshed out that story. It's possible (take this with a big grain of salt, please) that the features will be somewhat mis-matched in NMFR, and will only come together later. I'll note for the record (this is not secret, as of 8.0) that the new "Java views" in Notes 8 are stylable with CSS, though doing so is not a supported or documented feature. (HINT: search the notes\framework directory for a "notes.css" file....)

    8Gerald Mengisen  1/2/2008 4:02:34 PM  Why you should come to Lotusphere, and, Tell me what to post about!

    Hi Bob,

    Thanks very much for your reply. Here is the link again:

    { Link }

    The link in my first post had some superfluous characters at the end.

    Wouldn't it be nice if such a pool was part of the API? All you need to do is add your former product to the Notes core ;-)

    9Erik Brooks  1/4/2008 7:06:47 AM  Why you should come to Lotusphere, and, Tell me what to post about!

    There definitely are some shortcomings with respect to Lotusscript as a modern dev language.

    ND6 got a few enhancements (particularly the "Byte" data type and in 6.5.5 the ability to Print more than 64k - crucial for web output agents). But there could still be much work done.

    Part of it is simply lagging behind general language development. For example, method overloading.

    Part of it stems from lack of robust stock classes that other languages include as part of their core libraries. LS doesn't have *any* classes on its own that I can think of, except for maybe the DateTime stuff. The Domino DOM in LS does have classes, but that's it. As a result there's many things that you simply can't do with just LS, e.g. consume the contents of a URL, work with an image file and resize/rotate it, etc.

    Another example I just discovered through a PMR/SPR is that the file system LS commands (Kill, Copy, etc.) don't support unicode OS-level access. Want to rename "english.txt" to a Japanese filename? Can't do it. I've got an enhancement request submitted (and I invented some workarounds using the NotesStream classes), but it's a pretty sad shortcoming.

    Bob, here's some other ideas of things to talk about with regards to Domino dev. Maybe one of them will interest you:

    - Domino database limitations you'd most like to see raised (16k/32k limits, folder objects "folder is larger than supported", etc.)

    - What Designer objects is nobody using? (e.g. outlines)

    10Nick Radov  1/10/2008 5:59:10 PM  Why you should come to Lotusphere, and, Tell me what to post about!

    While I sympathize with those who have made a large investment in LotusScript, I really hope that IBM won't devote any further development effort to improving the language. LotusScript has minimal third-party support and doesn't provide anything that Java doesn't already have. Instead of asking IBM to essentially add more features to LotusScript until it becomes just like Java (with different syntax) we would be better off accepting that LotusScript is a dead end and that it's time to move on.

    A better use of IBM's language development resources would be to add supported Domino Object Model libraries to other popular modern languages like Ruby, PHP, Python, etc. That could greatly expand the population of Domino developers.

    What would really be cool is if IBM could build a LotusScript to Java compiler. For a developer who knows both languages, it's pretty easy to do a line-for-line manual conversion (except for calls to external C functions). I think that process could be automated. If I knew more about compilers I would do it myself in order to reduce the work for rewriting our legacy code.

    11Nick Radov  1/10/2008 6:07:33 PM  Why you should come to Lotusphere, and, Tell me what to post about!

    I would like to second Erik Brook's request to discuss limits. The limits that bite us constantly are the 32KB/64KB limits on text items and formula results, the (somewhat hazy) limit on number of documents in a folder, and the 64GB database size limit. We can work around all of those limits, but as application developers it requires a lot of extra work on our part. Some arbitrary limits may have been necessary for platform and performance reasons back when Notes was first conceived in 1984. But in 2008 those limits no longer make sense; everything should be as big as necessary (subject only to available memory and storage).

    12Erik Brooks  1/16/2008 2:50:11 PM  Why you should come to Lotusphere, and, Tell me what to post about!

    Another idea for a discussion topic - multilingual/international applications.

    Notes/Domino has some interesting capabilities in this arena, but there are obviously various limitations, frustrations, etc.