Bob Balaban's Blog

     
    alt

    Bob Balaban

     

    LotusScript or Java in Notes/Domino? What do YOU use?

    Bob Balaban  September 7 2008 06:52:48 AM
    Greetings, Geeks!

    As many of you already know, I had something to do with getting LotusScript (the language) and the Notes object model interface for LotusScript (the "back-end classes" and the LSX architecture) into Notes version 4.0, released in January, 1996. I've been a big supporter of that technology ever since, and I still am. I like it that there's a relatively simple, "scripting" type interface to the power of the product. I like that it's usable for server-only programs (primarily via agents and Web Serivices), and it's also available for "front-end" programming.

    I also had something to do with adding the Java version of the back-end classes to Notes/Domino release 4.6 (September, 1997). Java as a language offers some capabilities that LotusScript doesn't have (e.g., multi-threading, network access...), although Java has never been quite a tightly integrated into the product as LotusScript is (no Java front-end classes, for example, plus the need to worry about "recycling" objects).

    I've been thinking about the future of programmability in Notes and Domino for a while. I wrote this post on how JavaScript was likely to play a bigger role. Of course, moving the Notes Client onto an Eclipse foundation is likely to have a big impact -- Java interfaces to all sorts of Eclipse-based functionality becomes easy to add to the product. And, since it's easy to make JavaScript talk to Java, and since JavaScript is a real "scripting" language (whereas Java, I claim, is not), the role of both will inevitably become much more important to Notes application developers (assuming IBM continue to develop and support the functionality, and I have no reason to think they won't).

    So, where does that leave LotusScript? Clearly, they can't take it away; by now it's too ingrained, and too many people have working code in production. Removing it would be a disaster. There was talk at one time of cross-compiling LotusScript byte code (what you get when you compile LS source code) to Java byte code. Some research was done on that, but it didn't pan out, there were too many mis-matches.

    So, LotusScript is not dead yet. But it seems equally obvious that Java-only capabilities will continue to be added to the product (XPages is one new example). And, while interoperability between Java and LotusScript will not be completely absent, I predict that it won't be a major feature of N/D programmability in the future. LS2J never really took off, and aside from running LS Agents, XPages has very little in the way of integration with LotusScript.

    So, dear Geeks, I want to know what you think! Please comment on/discuss the following (or whatever else seems relevant to you):

       - Do you agree with my analysis? Are Java and JavaScript the wave of the future for N/D?
       - If you are currently a LotusScript developer, how do you feel about learning Java?
       - Does the Eclipse plug-in model open up new business opportunities for ISVs? If not, why not?

    Feedback welcome!

    Update Monday 8 Sept:

    Hey Geekdom, I've never done this before, but thought y'all ought to take a look over at Nathan Freeman's blog. He did some interesting code archeology on the new Notes 8.5 Beta 2. Very relevant to this topic!

    (Need expert application development architecture/coding help? Contact me at: bbalaban, gmail.com)
    This article ©Copyright 2009 by Looseleaf Software LLC, all rights reserved. You may link to this page, but may not copy without prior approval.
    Comments

    1Rob McDonagh  9/7/2008 8:20:07 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    I don't think Java replaces LotusScript. Most (not all, but definitely most) LotusScript developers use it as a true scripting language, not as an OO platform. Replacing that with Java has never been a good match. JavaScript, on the other hand? Great match. LotusScript developers will trend towards JavaScript much more strongly than Java.

    Java, and the Eclipse plug-in model? I think those are for the API guys. Sure, some of the LotusScript crowd will dive in, too. But most of them will stick with scripting, because that's what they need to do their jobs.

    I can't speak for ISVs, since I've never worked for one. It seems to me, though, that there are a lot of dependencies within Eclipse, and it could be very frustrating to try and maintain a product that is compatible with various versions of Notes and Eclipse.

    2Kevin Hansen  9/7/2008 9:03:00 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    I'm going to answer this from the perspective of IT management:

    1. Support for Javascript is essential, since so much is moving to the web (duh). But our commitment to Notes/Domino means we're deep into LotusScript. If I want (or need) to introduce another language into the mix, I'd avoid Java at all costs.

    2. Everyone in our IT staff is fairly unified against Java. Infact, we describe applications as being "java-y" meaning unstable, flaky, bloated, etc.

    3. The Eclipse model is great in theory. However, the practical reality of it has been that the Eclipsed based version of Notes has a bigger footprint, is slower, etc. Now, testing of 8.0.2 is still early on for us and I'm hopeful, but it hasn't been as instantly dramatically improved as expected. -- Still, the plug-in concept is good!

    3Jesse Gallagher  9/7/2008 9:09:24 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    For most of my work, I've tended to favor Formula language first, then LotusScript, then Java, and that's mainly due to saving lines of code and avoiding the boilerplate cruft that ends up being necessary. However, I don't have any particular fondness for LotusScript as such - there are too many times when the restrictions on the syntax prevent me from making things simple and clean.

    I've been very encouraged by the use of JavaScript in XPages, especially since it was modified to include versions of various @formulas. If I had my way, ALL programming in Notes/Domino would be done that way. JavaScript's not the greatest language ever created, but it's pretty solid, and if it could do everything I want in the UI and also access JVM libraries, I'd be set.

    4Ian Connor  9/7/2008 9:26:52 AM  Memory management and performance hurt the most for me

    Java in Notes will get better once there is some way for the backend objects to let the JVM know how much memory is actually being used so that the garbage collector will pay attention to the Notes objects. Also, they probably need a good "Katz-like" formula rewrite/optimization so that their performance is on par with the Notes API (even down to properly caching classes and jars when agents run).

    If those two issues get resolved - I think Java will be unstoppable and the debate would die because everyone would switch to Java in a heartbeat. It is not that people write in LotusScript because it is better - it is because it is more reliable.

    5Ed Maloney  9/7/2008 9:44:49 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    Ditto to @3 - Use the easiest, fastest tool for the job. Java is always the last resort and only used when it can't be done with LotusScript.

    6Bob Balaban  9/7/2008 10:41:46 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    @1 - Rob, I get what you're saying, but I'm also wondering what's going to happen when more and more of the new functionality in the product is Java-only. Are you ok with adopting JavaScript as the way to get at all the new stuff?

    @2 - Same question for you, Kevin. Also, to what extent is your development investment in N/D apps Web vs. Rich client?

    @3 - Thanks for the comments, Jesse. Sounds like a vote for JavaScript. Do you intend to invest in the new Client technologies?

    @4 - Ian, do you not see any issues with traditional @function/LS developers adopting Java because of the nature of the language itself? I would take issue a little bit with your assertion that people prefer LotusScript to Java only because of reliability. I think the relative simplicity of the language itself has a lot to do with it too.

    7Martin Meijer  9/7/2008 1:56:17 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    I'm a die hard lotusscript developer but there are some things that you cannot do with it and where you need to use java. I tried a couple of times to make a start with Java but I think it's not so easy to learn Java and to intergrate it in Domino. I hope this becomes better in 8.5 when there is no need for a seperate tools (Eclipse and the Lotus designer client) to generate your code. I think however that there is no way back. If I don't manage it to learn Java, programming will become a nightmare. So for programmers like me there is no choice, we have to learn java. I only wished that it was integrated like lotusscript.

    8John Turnbow  9/7/2008 2:55:13 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    Hi Bob,

    I use Lotusscript, JavaScript, DOJO, HTNL, DHTML, COM, SQL, XML, AJAX (xml and javascript), and now doing Web Services with LS on R8.

    I think that doing Java should be a CHOICE, not a mandate, otherwise you'll lose a lot of programmers for the Domino platform. Also, rewrite, or drastice change to many people would mean switching to MS, not continuing with Notes

    I remember at a recent EVIEW conference one of the speakers asked who knew JAVA or who was currently using JAVA for development - NO ONE RAISED THEIR HANDS - this should be a strong indicator that IBM/Lotus should keep up their investment for LotusScript.

    I know that there are a few "pushy" Java developers that are NOT taking into account the thousands of LS developers and that changing or forcing change would be a disaster I feel for the product as a whole. Java developers are a small "minority" in the Notes area.

    I am not against JAVA as it allows for different types of extensions and add ons and this is a good thing.

    With R8+ tools today and a coupld of add-on formatting toolds I have all I need to do web development and don't see much need for Java for what I do.

    Other peoples experience and needs are of course different so I don't pretend to know, so gathering as much evidence as you can is a good idea for formulating a plan.

    9Tony Palmer  9/7/2008 6:26:32 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    I use Java/LS/JS depending on the need. LS is what I use mostly as the IDE is integrated (type ahead/content assist) and so is the quickest way to write code when manipulating notes objects/classes, even though I have a personal peference for Java. I would be more inclined to use Java more as replacement for LS if the IDE was better or better integrated. I see 8.5 as the road down this path. I imagine that a lot of developers are put off using Java because of this fact - even though using another, more in-demand, language would be beneficial to them (and possibly their employers). If IBM wants developers to learn and use another language (and doesn't matter what) it has to be as simple to use with Notes/Domino as LS - otherwise it's simply too much effort for busy developers to pick up and use.

    In answer to your questions.

    1) - Yes

    2) - Already have and would recommend all Notes/Domino devs to learn OO and then Java

    3) - Yes (but definitely in the C API level of commitment)

    10Veer  9/7/2008 8:32:35 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    Like Java and Love Java. Would like Groovy support added to Domino.

    11Bill McNaughton  9/7/2008 8:52:32 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    I use Java as a first choice in Notes agents; a practice I started in the late 90s, partly because I "drank the kool-aid" at the time that Notes developers would have to learn Java and Websphere to stay relevant but also because it allowed more complex OO models to be created. I do still bear the scars of many recycle bugs though and completely sympathize with people who avoid Java because it doesn't integrate cleanly with Notes Designer.

    We do Java Portal work too so I'm familiar with Rational Application Developer and use it to write Java code that accesses the Notes API then compile it into a JAR and reference it from Notes agent(s). I prefer working in it to Notes Designer; with Designer 8.5 of course all Notes developers will get to see the nice extras that come from developing in an Eclipse environment.

    I do recommend learning Java if you're a Lotusscript developer simply because it opens up more career possibilities, but it does take a big time investment initially.

    As for Eclipse plug-ins, I don't see it as complex as the Notes API ... I've built some for a Lotusphere presentation and am talking to a customer right now about building custom plug-ins in Notes 8 so yes, we're hoping that the Eclipse integration will need to more consulting opportunities.

    12Jesse Gallagher  9/7/2008 9:41:44 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    @6 - I'm fortunate enough to work somewhere where we roll out new versions of the client and server pretty quickly, but most of my work ends up on the web side of things. People internally use Notes, but everything client-facing is Domino, so I'm itching to use XPages once 8.5 final is out and there's some actual documentation for it (hopefully).

    @10 - Groovy would be an excellent addition; my preference would be for JRuby, but any clean scripting language with direct JVM integration would be a godsend.

    I knew Java before learning Notes development, but LotusScript tends to win out due to its relative simplicity in day-to-day stuff.

    13Dan Sickles  9/8/2008 12:15:03 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    14Thomas Gamradt  9/8/2008 1:59:27 AM  What about the IDE?

    We're still on 7 and I'm not doing web development (yet), so LS is definitely my tool of choice.

    Java and Javascript will probably be the future, but not until there's a decent IDE.

    And I don't see rolling out the Eclipse based client until all our machines have at least 2GB of RAM...

    15Axel Janssen  9/8/2008 3:20:21 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    Java has been quite good too me. I can do niche-projects in Notes, especially in the field of xml-parsing and consumer webservices. It also enabled me to do non-Lotus projects (J2EE, Portlets, Spring, etc.). It was a great learning experience that helped my perspective on programming in general.

    From my personal experience I'ld say that the very same people who hope for JavaScript as a simpler Java are often not really into the complexities of JavaScript like clossures, context and stuff. There is a difference between knowing about

    document.forms[0].value = "some value";

    and really master JavaScript as a language.

    The huge existing code base in LotusScript does certainly have a weight. LS2J has its own memory management problems and mixing programming languages with the idea of "Java for the new stuff" certainly does not make the programs easier to maintain. And translating existing code to java is in 99% of cases difficult to defend from a business perspectice as the translation process does not add business value.

    I like the Groovy idea. For LotusScript programmers Groovy might be easier than Java.

    16Jeff Gilfelt  9/8/2008 3:29:19 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    I think there are a number of reasons why it is hard to take Java seriously in Notes and Domino development, beyond the obvious lack of tooling:

    1. 10+ years later and still no JavaDoc. I don't know of any other Java API from a major vendor or open source foundation that does not ship JavaDoc. Thank god for community efforts like this - { Link }

    2. recycle()... nuff said!

    3. Debugging code running on the Notes/Domino JVM (remotely or otherwise) has been made into such a black art that there seems to be a very common misconception amongst developers that either you can't do it or that it doesn't work.

    4. The Eclipse plugin model is great, until you actually want to start integrating with the Notes workbench. I was really hoping com.ibm.notes.java.api would offer something more than the old Notes.jar interface. Exposing more of the underlying C API or some abstraction to the Mail and Calendar would be most welcome.

    17Jesper Kiaer  9/8/2008 3:59:13 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    Like most people I tend to use LS for most of my agents.

    It is simple to use and if you are only working with the Notes classes, it will do the most of the work nicely.

    But LS is very limited, if you use Java it is much more a "full" language and tons of possibilities opens up for you. It has thousands of core classes alone with networking, Swing, ...

    The main reason I'm not using it more is that the Java IDE really really really sucks!. It is a nightmare.

    I sometimes use Domiclipse, so I can do the coding in Eclipse instead, but that is really just a work around.

    18Baiju Thomas  9/8/2008 7:52:24 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    I am a Domino web developer. So the plug-in and more Rich Client and java support doesn't help me much. I use Lotus Script and a lot of javaScript ,DHTML ,AJAX, XML and JSON for my applications. So more support for JavaScript is a very good addition. Also, it is a familier scripting language for any web developers. I have used Java mostly to integrate Domino with other products. But for pure Domino back end development, I use Lotus Script. The choice of using LS or Java should be left to the developers. I can use both, but when I can solve a problem in LS, I'll definitely use it.

    19John Head  9/8/2008 8:23:06 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    Bob, this is a loaded set of questions and you know it. The stuff that we have chatted about on the DP calls will change the perspective and thought process on how people answer this ... just see the stuff Nathan was able to dig up and blog that is in Beta 2.

    20John Smart  9/8/2008 9:35:58 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    1) Yes, and I agree with it.

    I don't think it's best for IBM to keep investing in LotusScript. Certainly they don't want to lose their base of developers out here, but if they can drag us to Java, Notes will be much better off in the marketplace because the barrier to entry will be much less.

    If I were an IBM strategist, I'd put LotusScript to maintenance mode, plus just enough to not anger the community, and invest elsewhere... like making the UI reflective enough that automated UI test scripts can be written.

    2) Annoyed, even though I agree with IBM that it's the future. My efficiency in Java isn't what it ought to be, but I suspect that one's efficiency in Java will never match one's efficiency in LotusScript, given equal tooling.

    Case in point: Bob, once I heard you'd said that programming Java takes you about a third longer than programming in LotusScript, everything else being equal.

    Was that accurate?

    3) Absolutely. I'm suspicious you'd even ask! Can you think of any reasons why the answer might be "no"?

    21Peter Presnell  9/8/2008 11:02:20 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    To me Java is a far superior language to LotusScript. But so too is DB2 a superior database engine to NSF and how far did IBM get with NSF2DB2? I can program in Java but I chose not to for a range of reasons, the most important of which is very few other Notes developers (who may be called upon to maintain any code I write) do. LotusScript could be every bit as good as Java (or better) if IBM got behind the language in the same way Microsoft did with VB.Net. I would rather see a choice of languages with each being functionally equivalent than having the mess of some things work with one language but not another (LotusScript v Java v JavaScript). I see a lot of companies that would like to get rid of Notes applications but cannot justify the cost. I doubt they will rewrite Notes applications in Java for the same reason. Developing Java, at the expense of LotusScript, would in my opinion push companies to do more non-Notes development.

    As for Eclipse, all I see so far is that it made the Notes client bloated, slow, and prone to crashing OFTEN - and now more of the same for the Designer client in 8.51.

    22Bjorn Cintra  9/8/2008 11:41:08 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    At the moment it's not really about what I use, since the only viable solution today is LotusScript.

    However, for the future it would be great to have the possibilities to use the new scripting possibilities in the JVM, like JRuby, Groovy or JavaScript.

    Personally I think Groovy is the best option (after working extensively with it and Grails for a year now). It has a very low learning curve, both for Java and LS developers. I think Ruby is too "strange" for most people, and as somebody mentioned JavaScript gets quite complicated really fast (many people struggle with functions as variables and things like this)

    @19 - Both LS (and Groovy) should take shorter time to program than Java, as they both are less verbose, and less Lines Of Code translates almost directly to less time to develop.

    23tom  9/8/2008 3:16:58 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    @16... Amen!

    Seriously... we're great RAD coders because of Javascript and LotusScript. Don't force Java on us.

    24Bob Balaban  9/8/2008 9:20:21 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    @7 - I think you'll see some big improvements in Java integration with Designer in v8.5, stay tuned

    @8 - John! I think you are obviously fully acronym-enabled! :-) And I think I recall the event you are talking about...

    The point I was trying to make is that *new* functionality in 8.x and beyond is way more likely to be exposed only in Java, and not so much in LotusScript. Yes, you will still be able to use LotusScript, but it might be hard to adapt to the new technologies coming out in the product if you don't embrace Java and/or JavaScript.

    @9 - As in @7, I think you'll be pleased with some of the new tools in 8.5 "DDE" (Domino Designer in Eclipse).

    @14 - Good point about the added memory requirements of 8.x, but I predict you will be pleased with the new Java tools incorporated into Designer.

    @16 - I agree that a lot of the utility of new Java-based functionality in 8.5 and beyond will be based on Lotus exporting/documenting/sampling extension points. We'll see how that goes, I guess.

    @19 - JohnH - I'm not a poet, I don't know it, and I don't load it.

    @20 - A lot of developers would claim that LotusScript has been in maintenance mode for a long time, and they are not at all calm about it!

    I don't recall saying that java takes 1/3 longer than LS, but I would probably still claim that LotusScript is much more a scripting language than java is. I do think a lot of LS developers just don't want to learn java...

    @21 - Peter, don't get me STARTED on NSFDB2! Maybe I'll post what I think of that clusterfreak sometime... I do think putting Designer into Eclipse was a good idea, even if I don't agree with all the feature priorities that ensued. Yes, there is a performance impact on the UI, but I would claim that (within 1 or 2 point releases) the enhanced functionality will far outweigh that.

    @22 I could be wrong (I often am), but I don't think you're going to see new languages supported in the product anytime soon. They can barely keep up with the languages they have now!

    25Chris Michaels  9/8/2008 9:28:08 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    I have tried and tried to get into Java for Notes/Domino and I just can't. If Java is the future, then IBM Lotus has a lot of work to do.

    First, we need the tools to do it. Right now Java development for N/D is painful to the point I'd do it only if it was forced on me. I don't want to code in the designer client and eclipse - just one IDE please. I got plenty to do and climbing the learning curve of another IDE just doesn't fit into my plans. There are things you can do to ease the pain right now (like ANT) but by the time I get all that setup and working I could have written it in LS and moved on to the next thing. Someone made the comment about Java development being slower than LS and I strongly second that. Java requires a lot more than LS to get going and that has to be minimized if possible. I'm not sure how you do that ... :-)

    Second, it's got to be more than backend agents. Agents are really, really great but I do a lot of UI work too. I see from Nathan's blog that it may be on the way and that's a step in the right direction if it really is happening. Having an application that requires expertise in 4 different languages (LS, Formula, JavaScript and Java) is just too much to ask us to develop and maintain. If I'm going Java, I need it everywhere I code LS today or I'm staying with LS.

    Third, Java UI elements must be reliable. I know the pro-Java crowd will flame me for this but virtually every Java based UI I use that has a significant level of complexity to it behaves inconsistently - it works as expected about 90% of the time. The other 10% it just seems to flake out. From "ignored" mouse clicks to random errors that occur so infrequently they can't be debugged but only endured. Backend stuff seems pretty consistent but the UI just doesn't make the cut in this.

    Fourth, footprint and performance. I'm working on a dual core machine with 3 GB RAM and, frankly, performance is still poor on 8.0.2 (much better than 8.0.1 though but really, where else was there to go but up?). It's hard to convince me Java is the future when the present is still so painfully slow and bloated.

    26Bob Balaban  9/9/2008 6:49:46 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    @25 - All good points, though you might want to check out the public beta of 8.5, with the new Designer in Eclipse.

    I do understand why developers who primarily use LotusScript are reluctant to adopt Java in many cases.

    The problem is going to be, what are you going to do when there's lots of new functionality available in the product, but the ONLY way to program it is with either Java or JavaScript?

    I claim that this trend is already starting with 8.5

    27Chris Michaels  9/9/2008 8:25:35 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    I wouldn't say I'm reluctant to adopt Java because I'd really like to get more into it. The problem is that the barrier for adopting Java is too high for all the reasons I list. To adopt Java now is adding complexity instead of reducing it and most of us have all the complexity we can handle already. Also, I have a *massive* investment in LS - hundreds of thousands of lines of code if not millions not too mention the time and effort spent in getting my skill set to the point I think in LS. I'll never get away from that code base no matter how much I might want to.

    You're asking, "what are you going to do when there's lots of new functionality available in the product, but the ONLY way to program it is with either Java or JavaScript?" If the issues I point out don't get resolved or at least reduced to a manageable level, I'm not going to use those new features. Not because I don't want to but because it's just not feasible. Oh sure, we'll get there someday since it's clear we'll have no choice but it's going to be a long slow road. Those new functions I just have to have (what could those be?) that are Java only will by default be done in Java - but's that all the Java I'll use and not a line more. If I really wanted to develop in Java, I'd go to websphere and if you force me to Java my management will be asking why we don't go to websphere (any good answers there?).

    I did just download the 8.5 beta and will give it a whirl so maybe some of the tool issues are getting handled and that would really help but I still don't want to develop in Java for some parts, LotusScript, Formulas and JavaScript for other parts (since Java can't do those pieces yet). Add in HTML and CSS for the presentation layers, maybe some Dojo for the cool things they bring and it's just too much during the application's maintenance life. I need to be able to say we can do it all in Java or all in LS and move forward from there, splitting the baby is a non-starter.

    28Fredrik Stöckel  9/9/2008 4:16:23 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    I'm a domino web developer and I started to move away from lotusscript back when R5 was released (when java was introduced in domino). DD wasn't very helpful(due lack of documentation, and the editor was (is) a joke).

    I´ve been waiting for a better development environment (editor) ever since, but I can't say I regret the move.

    Java is very powerful, especially if you mainly develop web-applications (eg focus on the back-end).

    I still use LS sometimes depending on project and skills of project members.

    Java and JS is a great combo. More java and JS capabilities in domino will open up the platform to more potential developers (there's lots of people with deep java knowledge out there)

    29Brian Miller  9/10/2008 9:55:58 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    You know, I've been saying this for a long time now.

    1. IBM doesn't have to do a lot of work to bring LS into the 21st century. But, it seems that they don't want to. LS2J can work, if IBM were willing to unbork all the memory and translation issues that plague it.

    2. The trend now is to avoid locking developers into a language, and instead simply provide library snap-ins that give you the same functions/methods in any scripting language, within its calling conventions. Why not let people write agents or event scripts in Lotusscript, Ruby, Python, Perl, or Groovy? Create a common sandbox, and let people have at it in any language that they like. It's only hard if you don't plan for that architecture from the outset.

    30Bob Balaban  9/10/2008 5:33:52 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    @29 - Brian, There's a lot of evidence for what you say. On the other side, there is some very cool stuff happening in the Domino Designer (on Eclipse) development team with respect to new LotusScript tools. I can't say anything about it (and it may or may not appear in the upcoming v8.5), but it's damn good.

    I understand your point about multiple languages, but in Lotus's defense, I'll point out that there are lots of language bindings to the Notes/Domino object model: LotusScript, Java, Remote Java/CORBA, and COM. Having COM interfaces means you can automatically use the Notes objects from vb.net, c# and visual C++, and having java interfaces means you can pretty much automatically use JavaScript too.

    The real work in incorporating new languages into the product is not primarily in wiring a new interpreter, it's creating the object interfaces and exposing them "natively" in that language. So, it's not so easy, even when you do architect for it in advance.

    Beyond the great new post-8.5 DDE tools for LotusScript, will we see enhancements to the language itself? I don't know, but I hope so.

    I do assume that enhancements to the back-end classes for all the current language bindings is proceeding, even if that work isn't getting a lot of press right now.

    31Simon Mottram  9/10/2008 5:43:26 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    I would drop LS for Java in an instant if I could. LS is a gimpy little language so full of dreadful programming kludges it makes me wince.

    What stops Java being the ONE?

    1) No UI support. Fix that and I never touch LS again.

    2) The DREADFUL editor, even Notepad blushes and looks away. If a Java dev looks over your shoulder and sees the editor your ears will ring with laughter and abuse thereafter. Now, if we can use the beautiful Eclipse editor (*sigh*). I would be happy as a sandbox... er boy.

    3) recycle(). I actually don't find this the issue that many do, but yeah it's a bit pathetic that this issue stil exists.

    On the subject of JavaScript. NO NO NO!

    What's the first thing you do when you run a new installation of the Designer? Yep, you go and switch on Option Declare in all modules thing. Yeah and it doesnt work always, but at least it helps.

    FACT: If you program LS without Option Declare/Explicit you need a kick up the pants. I personally refuse to look at code without it.

    FACT?: Is there anyway to force variable declaration in JavaScript?

    The proliferation of languages in Notes is a REAL problem, the recent emphasis on JavaScript worries me because it isnt something you can write dependable maintainable code in. Java kicks *ss for this as it's all beautifully typed and structure is enforced blah blah. JavaScript is good for 10-20 lines, then it becomes a dev liability. Yeah there are a few JS frameworks with a ton of code in them, but they only exist because browsers offer no other effective option for clientside scripting.

    Give me @Formulae and Java alone and that would be heaven indeed.

    32Ian Connor  9/13/2008 5:23:18 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    @6 I didn't mean to say that formula does not have its place. If you want a quick one line function and formula works - that is always best.

    However, for me, there is no difference between java and lotusscript complexity once you get into it. Java is nicer when you start to build your own libraries - so the more you write the better Java gets for you. However, once you write a decent size application, then the performance hit hurts a little too much. In fact, by calling Java from lotusscript, and managing the jar files locally on the client, can actually improve performance.

    33Stefaan Somers  9/16/2008 8:51:22 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    I prefer Java. For example I have a big problem now with a Java-agent, that seems to be having a memory-leak. I've no clue how to find out where the problem is.

    It's a simple agent, that runs through some Notes Documents which are mailed in, and for every document, it will set some information into the AS400 thourgh jt400.jar.

    The garbage collection is very unclear. If you look at the log below, the memory-consumption is very strange :

    Nr of Docs treated Total Memory Free Memory Memory Used

    160 30591 4649 25942

    4 44909 4160 40749

    1 28471 6389 22082

    4 43993 2391 41602

    5 61768 6375 55393

    2 61796 6879 54917

    4 82821 24501 58320

    2 96282 12281 84001

    4 116355 22852 93503

    4 136711 34479 102232

    5 137735 2376 135359

    Bob, if you are reading this, any help would be most welcome

    34Bob Balaban  9/16/2008 2:44:55 PM  LotusScript or Java in Notes/Domino? What do YOU use?

    @33 - Stefan, are you using the recycle() call to reclaim memory from your Document objects as you iterate over your view (or whatever you are using)? If not, then that is certainly your problem.

    35Oliver Klein  10/31/2008 3:58:45 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    @33 - Stefan, there is a - let's call is bug - in the garbage collection in Lotus Notes when you attach and use Jar-files to a agent project in Lotus Designer.

    It is always saver to copy user libraries to /DominoProg/jvm/lib/ext.

    Thats one possible reason for a memory leak in a notes agent. As Mr. Balaban said, missing recycle() calls are another possible reason ...

    36  1/8/2009 3:14:20 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    I had dropped lotusscript since I used java. Now I just need java & formula. Java is powerful, formula is simple, lotusscript is obsolete.

    37Seng Chye Tan  1/16/2009 9:25:39 AM  LotusScript or Java in Notes/Domino? What do YOU use?

    Q1: Do you agree with my analysis? Are Java and JavaScript the wave of the future for N/D?

    A1: Yes & Yes. Also agree that it's not practical to remove LS due to the many applications built on it.

    Here are my strong suggestion:

    A) Upgrade LS to be fully OO language. The current OO capabilities is a stopper to any ND progress. The benefits it gives now is only Encapsulation & Data Hiding. Talk about Polymorphism & Inheritance are either quasy or not there. This cannot go on. PLEASE DO SOMETHING BIG ABOUT THIS FAST. Otherwise all ND developers will just extinct or evolve to other techno-freak species.

    B) The UI class structure is too simple for visual programming. It's unable to support the visual needs of users today. LS & @Formula programmers have embarrassingly limited capability as far as UI in concerns. So users are always giving reasons to move to .Net or other stuff.

    A customer of mine that used R5 years back commented "It still looks exactly the same" when she saw an ND8 app (with CA).

    LS need new UI classes like NotesUIForm, NotesUIElement (for fields, buttons, etc), NotesUIViewRow, NotesUIAction and methods like click( ), focus( ), blur( ). This enhancement should be able to exist side by side with the NotesUIDocument & NotesUIWorkspace. ND REALY NEEDS to IMPROVE its UI PROGRAMMABILITIES to keepup with UI trends & user demands.

    C) In R4 & R5, Notes used to boast about being semi-structured DB and friendly capabilities to store Attachments & Rich Content. But even now in ND8, we can't even work with Attachments effectively using LS. I till this day see the advantages of storing attachments in RTF but the programming is just the contrary. Things like RTF is back-end, documents need to be reopen to see changes, using @Command([AttachFile]) instead of LS is just counter attractive to programmer & users.

    "After waiting for 10 years for this feature why not another year", this' how I console myself. I hope this don't go on for 2010.

    D) Java should be improved as well like you said, Recycling & no UI classes. Now that we'r on Eclipse, it's high time to expand the Java API & apply the LS experience that has been accumulated throughout the years into Java. Suggestion A) to C) also applies for JAVA.

    Cross-compiling LotusScript byte code with Java byte codes is a very promising avenue for both LS, JAVA & future of ND. There are no quick solution on this for sure, but not an option to be given up upon.

    Q2: If you are currently a LotusScript developer, how do you feel about learning Java?

    A2: No problem. Even if some are reluctant to move to Java they better be prepare for many new API to be in LS. Othewise ND will always be like R5 with the existing LS classes.

    Q3: Does the Eclipse plug-in model open up new business opportunities for ISVs? If not, why not?

    A3: Put LED into DomDesigner with IBM doing good marketing on advantages & user friendliness of RCF, opportunities will surely be there. Supply (IBM Lotus technologies) & demand (user friendliness).

    Lastly, I find that Notes Form should provide JTable embedded element that ties to SQL query (please don't limit to DB2 only) or Notes Select. This will definitely knocks the socks off MS & relive Notes RAD Legend.

    SUMMARY: Suggested improvements ND to give it a competitive edge

    A) Make LS fully OO with real Inheritance Overloading & Polymorphism capabilities

    B) New UI Classes (UIForm, UIElement, etc) and interactive methods like click( ), focus( ), blur( )

    C) Ability to insert attachment in RTF using LS instead of @Command([AttachFile]). Able to see updates using NotesRTF or NotesEmbededObject on screen immediately.

    D) Improve JAVA API: add UI Classes, do away with recycling.

    E) Relook into cross compiling LS & JAVA byte codes

    F) JTable embeded object to pull data using SQL query or Notes Select statement.

    Highest of compliments to you Bob. You really live up to your words to make DomDesigner a kick-ass IDE. I hope this few suggestions can add up the spice to bring back the glory of Notes Domino.