One thing that has struck me about the Notes 8.5 beta is that X-Pages implements JavaScript as the only option for both client-sided and server-sided scripting. Neither @Language nor LotusScript appear to be supported directly but the "JavaScript" language has been expanded to provide @Formula emulation. The new server-sided JavaScript now also seems to be able to do some of the things only done in the past using LotusScript... When X-Pages is made available for the Notes client I am expecting to see support for JavaScript only. We already have LotusScript able to run on the Notes client and Domino servers, so why is IBM going to so much trouble to extended JavaScript for server-sided scripting? Could it be that LotusScript is not part of the long term vision IBM has for Notes development? As a devoted LotusScript programmer (biggot) I am hoping I am wrong...
The next version of Notes (post 8.5) promises to be a very interesting one for Notes developers. Consider a scenario in which:-
- X-Pages provides an alternative to Forms, Views, Pages, and Subforms with the added advantages of running on both a Web client and a Notes client, plus the ability to link to non-Notes data sources;
- X-Pages supports "JavaScript" directly but not LotusScript or @Formula
- There is little or no future extension of LotusScript language to make it a more modern OOP language;
- There are few (if any) enhancement made to "old-style "design elements such as Forms, Views, Pages, Subforms, Framesets, Outlines;
- The Eclipse IDE does not provide native support for these older style design elements - although we do get the LotusScript editor almost everyone has been waiting for.
It sounds to me like a completely new Notes II programming environment has been created. An environment in which many of the Notes development paradigms of the past have been replaced, including either the death (or significant downsizing) of the role of LotusScript. Will we have the choice of staying with what we know (e.g. LotusScript & @Formulas) or will we have to move to a new way of doing things (most likely JavaScript based0)? And where does Java fit with this? Hopefully IBM will soon provide a clearer picture to the public of its plans for Notes development post Notes 8.0.
Perhaps those more in the know than I can comment about where I am completely wrong.... "Whenever you have eliminated the impossible, whatever remains, however improbable, must be true".
Comments (12)
Peter, your Lotusscript skills will transition reasonably to Xpages. And it's not like agents are going away any time soon.
Nathan,
My distinct preference would be to program a Notes applications in as few languages as possible. But where is IBM heading? LotusScript, Java, or now JavaScript? If IBM are going to invest in the JavaScript language and make it possible to do everything I can do in LotusScript and Java I am probably going to want to go down that path.
Applications written in Notes 1 still run... they just look like applications written in Notes 1. IBM almost never gets rid of anything, but they do allow certain things to stagnate. So, as far as having "the choice of staying with what we know", I'd say that's fairly likely. For example, when LotusScript arrived in R4, they didn't get rid of Formula (and, more than a decade later, still haven't), but there have been far more advancements in LotusScript since then than there have been in Formula... but they still occasionally add useful features to it (i.e. all the new iterative functions added in R6).
@Thomas - That's an excellent reason to stay with Lotusscript and would be an excellent reason to switch.
The functional stuff is what makes javascript rock. I assume that class-based OO is forthcoming as Javascript 2 (ECMAScript 4) is implemented but first class functions, anonymous functions and closures are the powerful stuff. Java will only be getting some of this in the next major version.
This conversation is starting to chafe my NDA. :-)
@Tim "IBM almost never gets rid of anything, but they do allow certain things to stagnate".... 100% RIGHT and that's what worries me perhaps more than anything.
Just our of curiosity. You are really writing all your code in the Declarations section?
I'm NDA free. No Chafing here. Permission to speak freely ;)
I don't think you need to worry about LS going away if only for the need to keep Notes & Domino backward compatible which IBM have
done a pretty good job of.
Come to think about it, didn't this new functionality come about as
the result of IBM buying out someone? If this is the case, IBM
didn't even choose the language, and there was zero chance it was
going to be in LotusScript initially.
I've been writing LotusScript for about 10 years and when it comes
to anything more than simple pieces of code I prefer to write in
classes. And when that happens I will occasionally get annoyed at
how LS doesn't allow you to write like a proper OO language and
then I usually switch to java. You're right, LS is essential if you
are writing apps for the Notes client and i suspect that will never
change. But only being able to write LS effectively locks you into
always writing Notes client apps which may not be so bad if that's
what you like.
For me, learning java was tough to begin but was so worth it.
Javascript is almost trivially easy and is an essential language
for developers today so is also worth knowing. Also especially with
the use of one of the numerous JS libraries springing up everywhere
you can now write web apps with much richer (and less restrictive)
interfaces than you can easily achieve via the Notes client - and
without needing to be able to write very much JS at all! If you
have all 3 of these languages then you can pretty much choose
whichever language is best for a given situation which is pretty
great.
@Henning, yes this does mean writing a lot of code in Declarations section of LotusScript library. That is part of the reason for the .Domino Framework - to cut down on the amount of new code that needs to be written in this section. It is also the reason why a lot of Notes developers are desperate for the new eclipse designer to provide a LotusScript editor that allows navigation through classes, methods, and properties.