To IBM: My questions about N/D app dev (follow up)
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.
|
Ratings
1
|
Comments (3)
*chuckle* I'm feeling stalked. :)
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!
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.