• Browse Blogs
  • My Blog
  • My Updates

+Tags Get help with tags?

  • View as cloud  | list

+ Similar Entries

photo

Make the Fault Repor...

Blog:  The Notes Guy...
David Hablewitz
Updated 
RatingsRatings 1     No CommentsComments 0
photo

A lesson in Poker an...

Blog:  The Notes Guy...
David Hablewitz
Updated 
No RatingsRatings 0     No CommentsComments 0
photo

Re: What is in your ...

Blog:  Lotus Nut
Chris Whisonant
Updated 
No RatingsRatings 0     CommentsComments 1
photo

Secure Webservices

Blog:  Urs Meli
Urs Meli
Updated 
No RatingsRatings 0     CommentsComments 2
photo

Notes ID switching

Blog:  Urs Meli
Urs Meli
Updated 
No RatingsRatings 0     CommentsComments 2

+ Blog Authors  

To IBM: My questions about N/D app dev (follow up)

Erik Brooks |   | Tags:  domino notes ibm programming development lotus | Comments (3)  |  Visits (869)

A couple of days ago I asked IBM two questions about Lotus App Dev.
 
I started this blog entry by typing up a big article explaining in great detail my reasons for asking, but I junked it. I simply started searching Google, thinking "somebody has to be thinking what I'm thinking."
 
Yup. Buried on Peter Presnell's blog was a great dialogue where the infamous Nathan brings up the exact point I'm thinking (albeit 4 months ago).


Excerpt #1(bold emphasis is mine)
 
"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."

"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.) "
 
You can add Domino HTTP GZIP compression to the "technical fetish experiments" list. That feature, though not formally released, was first introduced several years ago via hacking your NAB  -- work on it started during the Dark Years(tm). Enabling it crashed your server horribly though, and it was shelved. That feature sounds like an absolute no-brainer given the recent effort to bolster Domino as a web platform, but apparently it took an individual developer championing for it inside of IBM for it to make it on the 8.5.1 dev list.
 
To that I can only say: "What? Really?"
 
 
Excerpt #2

"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."


"
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."

"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."

 
The entire N/D process is simply fragmented as it stands now.

If you're a new N/D developer, you need to learn 4 languages: @Formulas for views, Javascript and SSJS for Xpages, and Java for agents. Each language has pros and cons, but the simple fact that the language you choose depends on the run-time context is what I consider to be the second most frustrating thing about developing on N/D.  The most frustrating thing is the fact that the greatest New Thing (XPages) requires a Microsoft-style rip-and-replace to get it to work with the greatest Old Thing (legacy LotusScript apps).
 
And arguably the most powerful language in the Domino arsenal, Java, forces you to manage your own garbage collection via .recycle() -- or else a simple doc-looping agent may bring down your entire server! You also can't use it to code to the Notes UI (though this might be coming in 8.5.2 as the result of a "technical fetish project").
 
Nathan is frustrated with the same problems:
 
 
Excerpt #3:
 
"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"


 
Getting back to my original two questions: Why did I ask them?

I asked them because I don't see a clear direction for Notes/Domino app dev. Instead I see 3-4 different ones. I don't know who (if anybody) is *in charge* of Notes/Domino app dev, the person who should obviously be tasked with clearing up some of these things and spelling out a development and application migration roadmap.  I haven't seen any formal discussions around these topics either, as we did when Bob Balaban was still at IBM. All I see as of late is the code that's been shipped. And while it's some great code, it leaves the direction of the platform in a very confusing state.
 


RatingsRatings 1

Comments (3)

photo
1 Nathan T Freeman commented   Permalink No RatingsRatings 0

*chuckle* I'm feeling stalked. :)

 
 
Actually, since that comment, I've revised my position slightly. If we consider an N/D API to be "a supported method of retrieving, changing, or presenting information presented in a Notes client or stored on a Domino server" -- which seems a good definition to me -- there are actually more than 6. Way more:
 
 
C
 
C++
 
@formula
 
Lotusscript
 
Java (lotus.notes)
 
Java (lotus.domino)
 
NotesSQL
 
WebDAV
 
Web Services
 
DXL
 
COM
 
LDAP
 
NotesFX
 
POP3
 
IMAP
 
HTML/CGI
 
JSON
 
XML (ReadViewEntries)
 
DSAPI
 
DIIOP
 
Servlets
 
JSP
 
Javascript
 
NRPC socket
 
DOLS
 
XPD APIs
 
Sametime
 
Quickr
 
Domino.Doc
 
LEI
 
LS2J
 
LSX Toolkit
 
DECS
 
 
That's 33. Sure, we could quibble over whether LS2J is a unique vector from LS and Java (I'd say it is, because it has a different set of constraints from either LS or Java alone) but that's still 33 separate sets of documentation that one has to understand in order to be fully versed in the capabilities of the platform. In other words, it's like the US federal tax code: literally impossible for any one person to really understand.

photo
2 Jerry Shelley commented   Permalink No RatingsRatings 0

Wow! Having developed since R3 days, I don't think anything of switching between @F, LS, SSJS & CSJS. Note that I don't mention Java - because it's ott most of the time, and I've not spent enough time immersed in it to make me feel comfortable. So to have Java everywhere as the standard would be a big ask. But I'm sure I'd make that effort to learn it if I could forget the other 4 ... and be more employable as a consequence perhaps!

photo
3 Giulio Campobassi commented   Permalink No RatingsRatings 0

This is a very important discussion that needs to be dealt with. Erik's questions are symptomatic of deeper IDE issues. Domino traditionally started out without a methodology around it. Since IBM have been adding to it, it's getting heavier and fatter and the need to manage / test / deploy databases with these proprietary components is getting more complex.

 
 
This is not about the UI. In fact, I think that work has been accomplished successfully. The gripe I have, and it seems to be on a simlar vein to Erik's.
 
 
The S/W development process is in question here. Not the UI, not what API's are available, not the individual components but how they are used to accomplish delivery..
 
 
I look at XPages and think, yep, a step in the right direction, but it's still (yet) another part of a menagerie in the scheme of designing/coding and deploying applications. More proprietary widgets are added to the database structure seemingly without consideration of the progress that has been going on over the last few years in s/w development approaches.
 
 
I am not saying legacy support should be dropped or reduced, (far from it). But rather, a fairly well connected (small) group need to have a good look at mature development processes, and how they should be applied into the Domino IDE and how the widget assets can be managed.
 
 
The question is not just "who is looking after the Domino IDE ?", but "What is the roadmap for the IDE ?" I would like to know that there is consideration of design/testing/deployment involved....I'd be impressed if someone can actually admit the short comings of the management of design elements.
 

Add a Comment Add a Comment

Previous |  Main  | Next
Skip to main content link. Accesskey S
IBM Lotus Connections Help Tools About