The Notes Client Still Rules
I typically blog about two things. Books I am reading and my latest gadget :) No, its my pet .Domino Framework project on OpenNTF and my interest in the future direction of Notes. In a way the two are interwined....
Jan Schulz has posted a very good article questioning the future of LotusScript and the Notes client. It is was one of a growing number of varied perspectives I have been reading with interest. I have been asking myself similar questions over the past year since the 8.5 beta was first released. I have also had the chance to look closely at the 8.5.1 beta, a release I have long said would be a pivotal release in Notes history. And while I cannot disclose anything specific about 8.5., 1 I still feel this is the case.
I have been doing my bit to create debate within the yellowverse about the direction Notes development might be going . Not because I believe I have the answers but because I believe it is a very important issue for us ALL to discuss.
- The organizations for whom we all work must eventually decide about migrating Domino servers and Notes clients to 8.5.0 (and 8.5.1 when it is released). The Domino server side is much easier to execute and IBM have created a compelling business case for doing this. The client side seems to often be driven by support issues and the functionality of the mail client. Sadly few companies I have worked for are driven to deploy newer Notes clients to allow Notes developers to build better applications (but they should!). Regardless of where you may sit on the arguments about the use of LS, Java, SSJS, XPages etc. having your companies upgrade their Notes clients to 8.5.1 is only going to increase your options as a developer. You need to convince yourself that this release is important enought to fight for.
- Whether you are a contractor or employee, your value as a Notes developer depends heavily on the skill set you have and the skills that are now needed. Almost certainly there will now be some change in the skill sets that are being sought for Notes development. So each of us needs to make decisions about what skills we want to develop to allow us to continue to be important to our current employer as well as make us attractive o prospective new employers. This doesn't mean always moving the latest and greatest. If you had jumped on the Java bandwagon when Java was first added to Notes you would have a skill that is of value but is still largely a niche market for Notes (I have never had a Java Notes developer work on any of my teams). If you jumped onto the IBM Workplace bandwagon you would have made IBM happy but you would have acquired skills that were largely useless (except perhaps in now helping you with XPages).
- It is no fun working with old code and companies seem to be forever replacing legacy applications. If Notes code does change significantly as a result of XPages it would be better to stop producing legacy code sooner than later.
- Notes has defied the odds to remain a vibrant product in part because it acquired a niche market. It filled a void between low end Excel/Filemaker products and the high end Java/Oracle & .Net/SQL Server platforms. It is classic marketing scenario, if we chose to leave our present market to compete in another more lucrative market (e.g. Web development) we better make sure we gain more customers than we lose.
Every change brings opportunity. And those that profit the most from change are those that see it coming and position themselves to take advantage of the change.
We are seeing a lot of change in what is now being offered for Notes development but I am not sure the future of Notes is yet written. That is because we have separate camps each being motivated by different things
- IBM: I have long argued that Quickr and Lotus Connections could easily have been added as extensions to Lotus Notes giving both products the power of the rich client experience while still allowing a more universal Web client access. Of course such an approach may not allow IBM to generate additional revenue streams that new products allow. IBM also invested a lot of money into developing IBM Workplace. They can only begin to recoup those costs if they find alternative products into which they can inject this technology. IBM also has a product portfolio in which the common programing language is largely Java/Eclipse, with the exception of Notes and Symphony. I am sure IBM want to see Notes form part of an integrated product offering and would love to see all us Notes developers programming in Java of SSJS. I am sure Xpages is largely being added by IBM as a way of meeting some of these goals.
- Notes Gurus: The Notes community has a relatively small number of people who are constantly finding ways to redefine just what Notes is capable of doing. The best example of this is Lotus911's Bones project. Most of the Notes gurus tend to be located in software development companies or large companies which invest heavily in technology. This group are prominent in our community through blogs, presentations at LotusSphere etc, OpenNTF, and the Design Partner program. Simply put their voice is probably a lot louder than the general Notes community combined. It is in their interest to see technologies such as XPages come to the fore. They are better placed than most to deal with the added complexities of technologies being added to Notes like Xpages, Java, SSJS, Eclipose, Expiditer etc. and motivated by the superior quality of what they can then produce.
- The Yellow Blob: Most of us are in a position where we must follow rather than lead. We work with the version of Notes our employer provides. We build Notes client solutions when asked for, and Web client solutions when called for. We do have some influence.... We often do have a significant input into how our assigned projects are architectured and designed. With XPages and Composite Applications we now have additional choices. XPages adds a lot more capabilities to Notes but there are a lot of Notes things it still can't do. It was not designed for Notes but adapted to work with Notes. It also requires a whole new learning, something not all of us are in a position to do. It will be up to you to decide the extent to which XPages and CA are adopted in your application design. Customers don't ask for XPages and more than they ask for Java or LS. They ask for functionality, ease of use, and performance (oh and for a low cost). You must decide the most cost effective way to deliver those requirements with the toolset now at your disposal. You do have a say despite what IBM wants -- you didn't follow IBM's lead with Java for Notes, Workplace or DB2 and IBM did listen.
My series of blogs on XPages are entitle "The Good, The Bad, and the Ugly": for a reason. There is both a good side and a bad side to XPages. And 8.5.1 probably provides more questions than answers. There is some really powerful stuff there in 8.5.1 that we should all be pushing to get access to when it is released later this year. What I can say about 8.5.1 is I do not see either the Notes client or traditional Notes client development going away any time soon. Lets be clear, 8.5.0 was for Web developers, 8.5.1 is for Notes client developers. It is public knowledge that 8.5.1 brings XPages to the Notes client. But what exactly does it bring to the Notes client? To what extent does IBM plan to bring the many great features already available to Notes application development into XPages. The NSF container, replication, security, design templates, Rich Text editor, view control, outlines (including drag/drop), shared actions, shared fields, shared columns, personal folders, profile documents, name fields, Sametime awareness, and yes LOTUSSCRIPT. Having seen 8.5.I have thought a lot these past two weeks about what it means for me. I do about 95% of my development for the Notes client. The XPages project I am working on at the moment is to enhance a dual client application in which the existing Web component was a little hokey. XPages can fix that. I am not walking away from the Notes client. I believe strongly in the power of a rich client over a Web browser. I believe given the chance to deploy and use 8.5.1 not only will I be continuing to do mainly Notes client development but with the power it gives me I will be pushing to have Notes client applications displace Web-based applications being developed in non-Notes platforms. Notes 8.5.1 is simply that good. But it is not (yet) perfect. In my next blog I would outline my view on what my ideal Notes development platform would looks like.
|
Ratings
2
|
Comments (15)
I think people have all-but-forgotten that 8.5.1 brings the new Lotusscript editor. :-)
The improvements are... substantial.
@ NTF: Also improvements to the underlying interpreter/compiler?
Things like "on event" work flawless without specifying the
language in the form itself? "Illegal circular use" gone? A new "on
help" with LS equivalents to the @Formela?
The editor is nice for productivity, but as long as there are bugs
and missing pieces in everything more "frameworky" or just "less
scripty", it doesn't really matter, at least against SSJS and
xPages...
@Jan, are you trying to nitpick all the places where LS isn't perfect? With ME!!???!
What holds LotusScript back as a language is the fact that the compiler needs its own virtual machine that needs to run on all supported platforms. That also requires extensions to be created on all platforms.
I think the next logical step would be to rewrite the compiler to
generate JavaByte code. Suddenly all the missing pieces (like
network i/o) would be available since you can call any JavaClass
then.
@NTF: hm, ok, better not :-)
It's just that the experience of developing a "not two frames,
content on the right, view-links on the left" UI was so extremely
bug ridden. It felt like I used LS/@Formela features/corners, which
were never discovered by unit tests or other people doing the same.
I always felt, that Notes had this simple kind of UI, because they
were *so* easy to do by beginners and you never learn otherwise,
but now its more like "it's so hard to do it otherwise, that you
will give up"...
That's a case, where notes is lacking technology and the technology
is holding notes as a whole back.
Another question: is it possible (and not a big hack like you did
with forms and LS) to do (DB-)session wide variables in XPages?
Well it is not that there is a lack of ideas but someone has to do it (for a closed source product the main part belongs to IBM). I would love IBM to be more vocal about their development roadmap.
"Another question: is it possible (and not a big hack like you did with forms and LS) to do (DB-)session wide variables in XPages?"
SessionScope and ApplicationScope variables are both suitable for
this purpose. However, it's important to be aware that you can't
put Notes objects into those scopes. The lotus.domino.Session is
recycled at the completion of each page request. But you can keep
filepath & UNID information for fast follow-up access.
That's actually what I'd love to see Peter do with the next phase
of his open source efforts. Xpages needs a good library to do smart
caching of Notes objects in these higher scopes, which means it
needs caching objects smart enough to understand when their linked
objects have been destroyed and re-acquire the associated
database/view/document handles.
For the record, I think the application development strategy coming
from the Notes/Domino team right now is a mess. The APIs that we
have today are consistent only in their incompleteness. And while
I'm bound by NDA not to discuss future plans in public, I can offer
an opinion about those plans, and it's simply that I don't know of
any efforts going on that make me feel confident we'll see a better
overall app dev strategy from Lotus any time soon.
Obviously, I think that's a great tragedy.
This is all the reason I'm such an advocate of the newer dev models
with Xpages and RCP components. We're never going to see
substantially advancement in Notes Forms or Lotusscript at this
point, so why bother arguing about it? Instead, I'd prefer to see
stuff like Xpages or the Java UI API slingshot past the older
technology, achieve prolific status throughout the development
model, and ultimately supplant the original stuff completely.
Unfortunately, there seems to be pretty much zero support for
strategic-level thinking around Domino as an app dev platform. IBM
has accomplished some great things with N/D technology over the
last 3-4 years, but the empowering of developers have been largely
a consequence of IBM either scratching it's own itch (the entire
Eclipse container in 8) or technical fetish experiments from
motivated individual engineers (the Java UI API.) Xpages is the
best opportunity for serious commitment on dev from IBM, so I'm
hoping it will be so wildly successful that IBM will keep pouring
resources into it. Because they're just not going to pour those
resources into a next-generation Lotusscript or better support for
CSS in rich text.
Here endeth the sermon. ;-)
@NTF: Reading this makes my kind of sad. Giulio Campobassi at http://giuliocc.dominodeveloper.net/giuliocc/home.nsf/dx/07042009092208PMBLO75V.htm
has also a great blog entry, which goes into the direction of
training and marketing. He seems to have the same problem with IBM
and there strategy towards Notes.
Peter, thanks for exploring this issue. As the creator of eProductivity, a productivity application that builds on the power of the Notes Client, I'm very interested (and heavily invested) in the future of Lotus Notes.
You have no contact information listed but I would like to talk
with you.
Hopefully my login will provide you with my contact info. If not,
you can find me via my blog
http://www.NotesOnProductivity.com
Eric
http://www.eProductivity.com
@Jan, why sad? Not to say that it's *good*, but there's nothing about the situation that a little executive motivation couldn't take care of.
The basic problem with App Dev on the ND platform at the moment is
that there's no individual IN CHARGE of it. It's more spread out
across the people that are responsible for the Domino server, the
Notes client, and the overall Expeditor clients. All of these
people are talented, focused engineers that bring a huge amount of
direction to their teams. But none of them are specifically charged
with making Notes/Domino a more successful application development
platform. The people that are responsible for app dev can only ASK
for resources and direction on this front. They don't get to
TELL.
That, to me, is a fairly simple problem to resolve. You just have
to promote ONE PERSON. Everything else falls into place after
that.
Right now, you have competing engineering visions of development on
Lotus platforms. N/D is by far the most prolific dev platform in
Lotus -- at least by number of developers and number of
applications. (Portal *might* have more consumers of the actual
apps -- it's difficult to say.) But the programmability needs of
the Domino server team are addressed by one person, while the Notes
client is addressed by another, while Expeditor itself is set by
still another -- and that's leaving out all the direction being set
by Sametime, Portal, Mashups, Forms, Connections and Quickr in
various groups.
Can we really expect a unified vision of what it means to be a
Domino developer while there's still one major team focused on
C/C++ solutions, one major team focused on OSGi solutions, and one
major team trying to find a middle-ground between both of those and
legacy support?
Getting to a unified vision is going to mean some level of legacy
sacrifice, though. A company can't keep 6 APIs concurrent -- I
don't care how skilled and rich they are. So anyone in this
position would have to pick their battle lines, and that would mean
picking languages, models and specific integration points with
related technologies. It would be a thankless job, honestly.
I mean, if IBM *did* put out a development vision statement, and
that vision was "Java everywhere," which meant that you'd be able
to write Java code everywhere you can currently write LS and
@formula, while those two would be deprecated -- would you really
be happy?
Maybe you would. I certainly would. But I'd also know that it was a
BIG job and that it was going to take 2 or 3 major versions to get
there. Whoever set that direction wouldn't be popular in the
process.
I don't think we should be sad about that. I think we should be
enthusiastic. I think we should smile at IBM and cheer them and say
"YES, we're willing to take some pain to get to a proper vision for
the platform."
But then, one might argue that they tried to do that before, and it
failed. So maybe I'm just re-processing the thinking of 7 years
ago.
"I mean, if IBM *did* put out a development vision statement, and that vision was "Java everywhere,"[...]
How does that differ from what is currently happening (seriously
asking)?
It is not I see massive migrations to Oracle Collaboration Suite
but Exchange and Sharepoint. If you drive a Java only strategy what
do you tell those that have a huge investment in Microsoft (some
still have). Or why should I not use Google Web Kit?
With Lotus Expeditor there already is a compelling platform (and
the foundation for the Notes Eclipse client). Isn't what you
propose making one platform obsolete?
What do you do with those that have been working with Notes put do
not have a real programming background. Would you sacrifice this
market to take advantage of Notes then being a "real" development
platform with all the advantages and disadvantages?
How would you ensure that customers will not try to move to a
complete free (as in beer) environment without license fees?
"How does that differ from what is currently happening (seriously asking)?"
Off the top of my head...
1) No migration path from existing code (no J2LS bridge)
2) No commitment to making Java a first class language in all code
locations (UI elements, actions, view columns, etc)
3) No commitment to resolving the mess stemming from
.recycle()
4) C/C++ still primary language for server platform
development
I'm sure I could think of more.
"If you drive a Java only strategy what do you tell those that have
a huge investment in Microsoft (some still have). Or why should I
not use Google Web Kit?"
I'm not clear on why a Java-centric development strategy would be
further away from Microsoft than the current approach is. Are you
saying that because Lotusscript shares some syntactical history
with VB, Microsoft shops are more at home with Notes
development?
"Isn't what you propose making one platform obsolete?"
Not the whole platform. Replication, security and messaging
services are still all unparalleled in the market. But, as I said,
nobody can keep 6 APIs concurrent -- so some of them MUST be
deprecated.
"Would you sacrifice this market to take advantage of Notes then
being a "real" development platform with all the advantages and
disadvantages?"
I don't know what a "real" development background means, honestly.
But if you're asking whether I'd want to make everything too
complicated for the typical Notes developer -- well, I'd argue that
this is already happening. How many languages must you know to be
effective on the platform today? @Formulas for views, Lotusscript
for client UI controls, Javascript for web UI controls, Java for
integration (HTTP, SOA, etc), and a mishmash of HTML, CSS,
Expression Language, SOAP, and if you ultimately want to hook into
server events -- C++. And if you throw Quickr into the mix, you add
on APP via REST.
So I really don't see how radically simplifying this story would
make things *harder* for novice developers.
"How would you ensure that customers will not try to move to a
complete free (as in beer) environment without license fees?"
By continuing to deliver unmatched ease of deployment, security,
workflow, messaging, redundancy and cross-platform availability.
There are TONS of great things about the Domino platform that have
nothing to do with what API you use to manipulate it.
Thank you for taking the time to answer my questions. I agree that the current situation is not much Microsoft friendly too but if I want to grow I would like to take accounts from any platform. I wasn't aware of 1) to 4). I thought that IBM had that sorted out already. You have some interesting/valid points that I'll need to think about.
@Jan. I know I have been heavily bagging IBM to make a point, and I don't mean to make you feel sad, but for a very long time I have seen press release after press release from IBM for Lotus Notes that espouses some great success, or growing revenue, but it doesn't match regional activity that I can see waaaay down here. So generating some local news for each region would carry more credibility.
@Nathan. You mention the a Development vision statement for Lotus
Notes and having SOMEONE put in charge of it, or someone that can
stay above the competing technologies within IBM. This would be an
great step forward. And I don't mean that we need a fully technical
person running that. I would hope that it's someone with a
"solution delivery bent" that gets Lotus Notes and how to drive the
worthwhile solutions with the platform. He/she would need a very
good business view.
But, last thing we need is another geek in this. What we need is
someone who can put forward a good business cases for solutions,
not just another voice helping us use XPages or make widgets.
There are lots of very intelligent people in IBM, no doubts there,
but once the organisation gets to a certain size (ten's of
thousands), and you have a gigantic array of offerings, it's not
surprising a clear message just disappears in the static and noise.
It just turns IBM into a big blue robot...
@Nathan - Could we not overcome the limitation of storing Notes objects in state by using NotesURL (or is that HTTPURL with Xpages??. This would work with NotesDatabase, NotesView, and NotesDocument - and even NotesDocumentCollection could be
represented as an array of NotesDocument URLs. I have long been
impressed with how this can be used with LS as a way of safely
serializing a Notes object that can be reestablished using Resolve.
If its not there all ready we should be asking IBM to provide this
with SSJS.