lekkimworld: Is the lack of Java skills in the Notes/Domino developer community the Achilles´ heel of IBM?
March 24 2006
Mikkel Heisterberg totally gets it in terms of where Notes is going and some of the opportunities, and challenges, of Notes in the "Hannover" release (emphasis mine):
Though supported it will be very difficult, if not impossible, to build the kinds of composite, networked applications that will be possible with Hannover using LotusScript. You'll need Java for these kinds of applications. This brings us back to IBM since this fact will be a real Achilles' heal [sic] when it comes to the adoption and getting the real benefit from the new Hannover client. The success of the Hannover client and the applications possible will rest on getting the customers to use and new features and begin to develop composite applications.I don't know if Mikkel has my phone tapped, but this is exactly the message I've been delivering to colleagues over the last couple of weeks. It is critical that Notes "Hannover" demonstrate best-in-class usability and all the other great things coming, but the main driver for upgrades will be the new value in "Hannover" -- the fact that for the first time, Notes is more than just a client for Domino.
This is a complex thought. The attention paid to "Hannover" since its announcement last May has been primarily around the major refresh of the user interface. This gets everybody's attention , eye candy always does. But "improved user interface", no matter how amazing the new UI is (and from everything I've seen so far, it totally rocks), won't necessarily be enough for the CFO to approve an IT project to upgrade Notes. Other new things, like activites and composite applications -- now it gets interesting.
If you remember back a few years to when Lotus first announced "collaboration for J2EE", one of the driving factors for starting to build what is now known as Workplace Collaboration Services/Workplace Designer/Workplace Managed Client was the coming market shift to Java/J2EE as a mainstream application development language. I disagree with Mikkel that IBM hasn't been promoting Java to Lotus developers -- look at Lotusphere agendas for three years running now, and it's clear from jumpstarts to the breakouts and BoFs that IBM has. But maybe still not enough. Because many many organizations report now that they are building all new applications in J2EE (or in .NET or both), and are less-inclined to build new apps in anything else -- no matter how easy it is to get a Notes application up and running.
"Hannover" represents an opportunity to unify two application development worlds -- Notes developers building Notes apps and Java developers building Java apps.
The community at large needs to skill-up and get to grips with Java. Now is a good a time as any to get started - rather sooner than later. The reward will be apparent once Hannover is released.Composite applications represent a transformation -- Notes does more than just Domino applications. Understanding this now will prepare for "Hannover", and how to better leverage your Notes investment in the future.
Link: lekkimworld: Is the lack of Java skills in the Notes/Domino developer community the Achilles' heel of IBM? >
Post a Comment
- 2
Scott McIntosh www.icfconsulting.com | 3/24/2006 1:55:31 PM
We have considerable Java talent in our consulting practice, but we still use LotusScript with Domino because of the lack of tooling for Java. While there have been strides made (like the debugging hooks), the tooling still pales in comparison with the LotusScript support.
If "Hanover" benifits from Java skills, will the tooling be inproved accordingly?
- 3
Ryan Gradke | 3/24/2006 2:06:44 PM
I think this points to a type of developers that we have in the Notes world. I have found in the past that most Notes developers I interview do not have programing backgrounds. They are people who are really good at Excel formulas, and move up to Notes and can do simple LotusScript.
Its a hard thing to do, but Development Managers in the Notes/Domino world have to look for better skilled resources and work those people into Notes/Domino. While I always have a hard time up front with developers not liking the Notes mail interface and such, in the end they find they've greatly expanded their skillset and found a valuable tool that gets business done.
The more we can use things like Java, Eclipse, .Net and other tools the better. Keep it up.
- 4
Michael Fariborz | 3/24/2006 2:39:09 PM
Just a thought, but if LotusScript were ported to run in the JVM, wouldn't you have access to everything that Java has from LotusScript? This would solve the problem of needing to train LotusScript programmers to do Java development.
Personally, I have no problem with the idea of learning new languages and such (unless you are being forced to), however my big problem with entering the Java space right now is that there are so many technologies that it's hard to get a handle on all of it. You get overwhelmed very quickly.
- 5
Bob Balfe http://balfes.net/blog | 3/24/2006 2:47:12 PM
I don't think this is true with regards to being an achilles heal. Java in Hannover is a big piece for things like Composite Applications but that does not stop LotusScript and database develoepers from continuing on.
If you want to develop on the composite application side of Hannover then you really need to start looking into Eclipse, Java and SWT. This is basically opening up whole new doors to Notes developers, not closing older ones.
- 6
Mike Brown | 3/24/2006 2:58:01 PM
Ed,
Does that mean that Java in Hannover, in whatever form, will run on a Mac?
I ask because, as you may know, Java code (agents, actions) never run on the Notes 6 client on Mac OS X. I haven't checked with Notes 7.
Cheers,
- Mike
- 7
Alan Lepofsky http://www.alanlepofsky.net | 3/24/2006 3:10:38 PM
Hi Gary, let me try to address a few of your concerns.
1. "need to develop in Java for a Notes application"
You will not NEED to develop in Java to do what you do today. To build the NEW BREED of applications that Hannover is going to make possible, Java may be one of the ways to tie components together. Now of course no one is saying you have to build new composite applications. If you just want to use Hannover just for the new UI it provides, that is your choice. However, the real business value is going to come from opening up your applications to a world of possibilities not available in Notes today.
2. "Why would a developer need to learn yet another language/technology to develop in Hannover?" and "Right now Notes developers need some level of expertise in HTML, LotusScript, formula language, JavaScript, CSS, SQL and XML in order to develop or support enterprise applications."
As I explained in #1, you will not need to learn anything new if you want to continue with what you are doing today. But let's examine your point about the variety of languages available for developers to work with today. They were not all around when Notes just had @commands. As new technologies like JavaScript, CSS, and XML were added, you were then able to do things in Notes that you could not do before. No one just sat around and continued to use only @Commands. Developers increased their knowledge and build new types of applications that were not possible before. This is the exact same thing. Composite applications are one of the new areas of growth for Notes developers.
I hope that helps. Alan
- 8
Dan Sickles | 3/24/2006 3:15:14 PM
4) Yes. Lotuscript could be implemented on the jvm just as vb.net is an inmplementation of vb on the clr. This would solve the problem but I don't know if they are going in that direction. IBM implemented javascript to the jvm for Workplace. A version of javascript for the jvm already existed in Rhino but IBM rolled their own for licensesing reasons. If they do implement Lotuscript in java, I hope they add some OO features similar to vb.net while they are at it and something like xlinq too. That XJ work could pay of here. And give us E4X in the javascript runtime too please.
With the Eclipse RCP, IBM has givien us what we wanted for so many years. A modern cross-platform UI with extensibility. There is no java language requirement here. Any language that runs on the jvm can access all the java apis and the entire j2ee/portal/workplace stack. You don't have to learn java. But pragmatically, we need to use langauges supported by IBM and the tools that go with it. Ed..is IBM implementing Lotusscript on the jvm?
Here are some jvm languages:
{ Link }
Just for the record, I'm a certified java programmer (1.4) and I program the jvm with python (jython) every evening. My day job is mostly Lotusscript.
- 9
Sean Burgess http://www.phigsaidwhat.com/ | 3/24/2006 3:38:54 PM
@2 Ryan, I don't agree with your assessment of the Notes Development community. While there are many a power user who crossed over to be a full time developer, it's not the norm for Notes developers I have met over the last few years. I think the fact that Notes has had such a long life span compared to other platforms, many developers have matured along with the product. I know that I have. That being said, unless you are a newbie out of college, a Notes professional working a 40+ work week doesn't usually have time to just pick up the latest trendy language du jour.
I learned to program in Basic, Fortran, and Pascal before I worked with Notes, but started in Notes using @Formulas. Because I had a day job building real applications, I didn't have time to jump all over LotusScript when it was introduced in R4, but learned to incorporate it into my toolbox as requirements arose that @Functions just couldn't handle. And the LS environment continues to expand with each release of Notes. I am constantly finding classes and functions that I have not been exposed to and only stumble upon them when I try to solve a new problem or an old problem in a new way.
I do, however, think that the IDE for Java within the Domino Designer could use some significant improvement. This might be one of those times when "build it an they will come" really applies. Also, while I know that Java allows me more flexibility, it also has a stigma of slow performance and stability issues surrounding it that I just don't want to introduce to my environment unless I really have to. My perception may be wrong, but I only know what I hear.
@1 I was thinking about this the other day and if I was starting to work with Notes/Domino today for the first time, I would be extremely overwhelmed with the knowledge it would take to build a robust application in Notes. The openess of the product has grown toolbox we developers need from a simple box that had just a hammer in it to one of those monster, multi-drawer, rolling garages I drool over in my Sears catalog.
Sean---
- 10
Chris Reckling http://www-128.ibm.com/developerworks/blogs/dw_blog.jspa?blog=416 | 3/24/2006 4:01:46 PM
Someday I'll write a longer post, but for now:
1. Composite applications are made up of one or more components.
2. Components can be built in a variety of technologies, including Notes/Domino/LotusScript, etc., Eclipse/SWT/Java, HTML, .Net, VB, x-Forms, etc. Certainly, there are degrees of difficulty for each CHOICE.
3. Workplace Designer "Next" can be used to build a component, too! So, you still won't have to know Java, unless you want to.
4. Certain extensions to Domino Designer will be done to support the composite model, esp. for component interactions - for example, passing data from a selected row in a view to another component.
You can call Java classes from LotusScript since v6.
Chris
- 11
Gary | 3/24/2006 4:06:08 PM
Thanks for the response Alan. It sounds like you're saying I don't need Java for Hanover development unless I want to take advantage of the composite applications that will provide so much integration and maximize the value of my domino infrastructure. So in a nutshell, I don't *need* Java but, as a developer, I'll be limited to not using some of the newer features of Domino. If these composite applications are the new growth area, it sounds like I do *need* Java skills.
My primary point is, like Sean said, the overwhelming nature that Notes/Domino development has become. Unless I need it, I just can't add it to my skill set. Too many other things and too few education dollars and time.
I agree with Scott @2 also, we will need better Java development tools in Notes if Java is to become more of an option.
- 12
Paul Robichaux http://www.e2ksecurity.com | 3/24/2006 4:13:44 PM
It seems clear that J2EE, and its attendant cost and complexity, is worrying some potential Workplace customers. To the extent that IBM fails to clarify the points Alan addresses in @7, this problem could spread to the Notes community. By contrast, Microsoft is having some success with the message that VB.NET is a natural next step for skilled LotusScript developers.
@2, @9: I suspect that if you did a rigorous study of who originally developed Notes applications across major verticals, you'd see that there are a lot of "Dick Landis" people in the mix. I name this category of IT person after a warrant officer with whom I served in the Marine Corps. He was a smart guy with a lot of domain knowledge about his job, and he wrote applications that did what he needed done. Unfortunately, they were poorly documented (if at all), buggy, and pretty much unsupportable-- until they became critical because of the value of the data they contained. Any organization can gain value from having people like Dick developing applications, but that value can disappear (or, worse, become a liability) when those popsicle-stick-and-bubble-gum apps get into the critical path-- which, it must be said, seems to have happened with some frequency in the Notes world.
- 13
Thomas Gumz www.thomasgumz.net | 3/24/2006 5:13:16 PM
I agree with Bob Balfes and Alans comments, and like to add the following:
Notes template 'developers' are not developers in the typical sense as someone else already pointed out.
They basically got a 'free ride' for many years in that they didn't need to look into C, C++, Python, Perl, Java, Ruby and what have you, unlike other 'real' developers, which (as part of their job) need to stay on top of such things (not neccessarily know all insside out, but know enough about them. Think of it like a doctor who needs to stay uptodate on new medications and research done in the field. Just getting by with the initial stuff they learned just won't work. So the ride was basically easy for the last 10 years or so (which is unheard of in this industry, really), as Notes always gradually exposed newer technologies into the feature set. Always @formulas, then Lotusscript, then Java, then Javascript, and HTML and CSS along the way. Fine. Even today, these folks can still go a long way by staying in the 'confines' of the tools: Workplace Designer doesn't require them to write J2EE code, then can use Javascript for the plumbing. In Hannover, they'll be able to extensions to the backend classes and designer UI to communicate/link composite apps. However, if they want to exploit the next higher level, java is just a requirement: You can't write features and plugins for the Eclipse RCP in Javascript, it's gotta be Java (maybe other JVM languages like Jyhton, but thats another story for another blogpost). However, that's not something new, that has always been the case: If you wanted your Notes apps do some heavy lifting outside of the Lotusscript realm, you needed to use Java (like open sockets, etc.) or use ActiveX/COM .dll bridges to call out.
So, my point is: If you're not willing to learn Java, you can still get lots of mileage with the current and new offerings. If you do learn java, you'll set yourself free and enable yourself to write much more stuff than just template-like apps (think of extending the upcoming Sametime 7.5 client with new plugins, for example, or entire new RCP apps), and you can break out of the Windows world. Mac start to look better every day with the Vista mess going on right now, right ;-)
- 14
Matt | 3/24/2006 5:15:23 PM
@12 - one might say the same about legacy VB6 apps.
- 15
Chris Reckling http://www.ibm.com/developerworks/blogs/page/InsideLotus | 3/24/2006 5:21:57 PM
@12 - VB.Net? Even the VB6 users have a hard time to migrate to VB.Net, which is more like Java and C# than Basic. Please stop spreading the myth that it's a "natural stepping stone", especially here.
For starters, search on VB Migration and you'll get lots of hits from partners willing to help with the cost of migration:
{ Link }
{ Link }
Not to mention that it isn't about the language, LotusScript, per se, but about the platform capabilities of Domino (a.k.a. the backend classes), that most people use and which MS does not have an equivalent to.
On the other hand, Domino developers can continue to develop for Notes and Domino, or utilize those same skills in Workplace Designer, which DOES have a programmable object store and a full document api for building collaborative applications. The scripting language is JavaScript, which most people know from developing web apps.
By the way, Clay Shirky calls those useful apps built by and for a particular team "Situational Software". See { Link } .
Chris
- 16
Mats Jansson | 3/24/2006 5:30:28 PM
If IBM really wants the developers to use all new functionality, the relly must make the YPWP-programme to envolve all courses and tests on notes development (hannover version) in addition to Java.
br
mats
- 17
Stan Rogers http://stanrogers.blogspot.com | 3/24/2006 7:51:28 PM
I'm afraid Mikkel's argument is kinda circular -- the main reason for the lack of Java in Notes and Domino development in "the real world" is that there hasn't been a compelling reason to use Java in most cases, especially in Notes (as opposed to Domino web development). A large part of that has to do with the inability to manipulate the UI, but there's also the loss of OLE/COM and other suchlike things that really marginalize Java in Notes to the things Java does that LS doesn't do -- like posting data to another web app. Even then, it wouldn't be uncommon to see developers leveraging the MS XMLHttp object so they can connect the posting code to something that plays in the UI. Frankly, the best argument for coding in Java in R5 and ND 6-7 is that "it's good to learn a new language."
Hannover has promised to change that. Yes, there will be a steep learning curve for people who haven't (so far) had a good reason to learn a new language. But there will be rewards for the effort and the risks. Even the oldest dogs will learn new tricks if there's a bone in it for them.
- 18
Axel | 3/24/2006 9:58:07 PM
Java was a spot where a lot of things were "happening" in the last years. At least for my inner theatre. Thats why I never did understand the reluctance against java which some members of the Domino community appeared to show.
To really "master" a language like Java without falling over your shoes every 10 minutes or so, one needs to have regular exposure for some amount of time. I've noticed myself and seen other people.
But its the same with Domino programming.
I've learnt over the years that programmers work very diverent. Some really like to deepen their skills in the area they are. I often can't understand, but I learnt to respect.
Mikkel Heisterberg does Domino and Java. So do I. Others might be more interested in doing pure Domino, ruby/php & notes or even ... (the .n word).
If programmers do find Java boring, they can't force themselves. If there's a real shortage of Java/Domino programmers, organizations can outsource some of the work to India or some other country with good skill/wage level.
- 19
Richard Schwartz http://www.yellowisthenewblack.com | 3/24/2006 10:02:47 PM
Allright... many things to say, but I'll limit myself to two.
1. Regarding all this business about "most Notes developers" are or aren't professional developers: Yes, I know that there are a lot of Notes developers who came into the business by non-traditional routes. Many of them are doggone good ones, regardless. Some of IBM's developers came into their positions by non-traditional routes, too. It's not the background that counts. It's what you can do.
It may be true that the majority of Notes dveloers aren't professional developers by training, but it may not be. I know many examples on both sides. I've never done a census. Show me the stats if you want to make a point, but I'll still say so what? It is a strength of Notes development, not a weakness, that a developer can be very productive and produce business value without having to be up to date on the latest theories and languages. If Hannover were to change that it would be a mistake, but I see no reason why that would be the case.
And here's why...
2. Hannover is based on Eclipse, which is an incredibly extensible code base that offers virtually unparalleled opportunities for developers to add value. Does one have to be a Java programmer to take advantage of the possibilities that Eclipse opens up for composite applications et al? Well, ignoring the fact that there are other languages besides Java that can run in a JVM, the answer is yes... but is that always going to be true? No, certainly not! Once the Domino partner ecosystem and the Eclipse ecosystem really get together, this will surely change.
Just think back to the Notes R3 days, when the Notes ecosystem was still in its infancy. The core development tools for Notes were just @formulas and the Notes C API, but two different VB interfaces for Notes developers were released by third parties, and Lotus bought one of them. There were also several workflow development kits available, several import/export tools with scripting interfaces, at least two general-purpose scripting tools that I can remember (one of which ran in its own engine, and another that was based on Rexx), and midway through the R3 life cycle Lotus brought out ViP which included the first LotusScript interface for Notes development. I'm sure I'm forgetting other tools. This all happened because many people outside of Lotus and in realized that there was an opportunity to build tools that would make it easier for business developers to create useful applications.
IBM is combining an ecosystem that lives and breathes business-oriented collaborative apps with an ecosystem that lives and breathes advanced development tools! It is inevitable that a wide range of development tools for business-oriented collaborative applications will spring from this. IBM will develop some of this technology, and business partners and open source teams will develop more. These tools will probably be built with Java, but the people who use these tools will not necessarily need to use Java.
-rich
- 20
Axel | 3/24/2006 10:16:58 PM
I second a lot 2nd part of Paul Robichaux postings. For a time, I did a lot of maintainance programming for more complex Domino apps and I think my energy to develop a 2nd leg comes from a certain kind of frustration with lack of sound design/architecture principles.
Nevertheless. VB.Net isn't "easier". From what I hear, they are eating the same automatic testing, ioc, reasonable oo stuff as Java programmers. Don't believe that .NET Studio is "better" than Eclipse.
- 21
Axel | 3/24/2006 10:16:59 PM
I second a lot 2nd part of Paul Robichaux postings. For a time, I did a lot of maintainance programming for more complex Domino apps and I think my energy to develop a 2nd leg comes from a certain kind of frustration with lack of sound design/architecture principles.
Nevertheless. VB.Net isn't "easier". From what I hear, they are eating the same automatic testing, ioc, reasonable oo stuff as Java programmers. Don't believe that .NET Studio is "better" than Eclipse.
- 22
Axel | 3/24/2006 10:32:57 PM
@Thomas Gumz: I can't see that Domino programmers got an extra free ride compared to Java/J2EE programmers. I've seen as much Java code written by people, who obviously didn't understand important parts of "their" platform. Some was written by me :-)
But lets stop with such myths like J2ee programmer is like that, Domino like this and Web programmer like that.
- 23
Luke Kolin http://www.deltava.org/ | 3/24/2006 11:24:17 PM
This touches on the great question Ed asked a few days ago regarding taking advantage of the Websphere fulfillment license packaged within Notes.
I really do think that Notes 5/6's half-hearted implementation of Java really drove away a lot of Java developers from the Notes platform. For some of us, we got frustrated with the limitations of Notes/Domino and decided to move into a full-Java environment with Websphere, and increasingly free solutions like Tomcat. We're no longer part of the Domino community.
Other folks saw how limited Java was compared to LotusScript and stayed on the LS platform, and in a primarily Domino world that is the rational choice.
I am unsure how many ((strong Java) && (strong Domino)) folks there are left; it is very difficult to be both, or to do advanced Java programming within Domino. People I think have been forced to do one or the other.
Cheers!
Luke
- 24
Kapali http://kapalienator.blogspot.com | 3/25/2006 12:20:37 AM
"I really do think that Notes 5/6's half-hearted implementation of Java really drove away a lot of Java developers from the Notes platform."
I agree to an extent. From what I understand/interpret from the last post you are refering to, even if Java support was robust, there are probably few complicated applications being developed in notes, that really requires java/it's rich API's/it's OO Design principles etc.
I think Domino provided reasonably good support to extend and build applications with it.
- 25
Matt White http://www.11tmr.com | 3/25/2006 3:28:04 AM
@23 - I can only comment on the London contract market where I have been involved in a lot of hiring rounds for Domino / Java developers. We would generally see around 20% of the CVs (resumâ– s) coming in having any reasonable level of Java experience (i.e. minimum of SCJP). Of those maybe half would actually know what I would consider to be a good amount about the oddities of Java and Domino working together.
So I think you're probably right, there aren't that many strong Java and strong Domino people around. It is quite a challenge keeping both sets of skills up to scratch.
That being said I don't think there's any excuse for not having the Java and Domino strings to your bow, it's been obvious for years that this is the way that Domino application development is going, so if you're serious about protecting your job then it's worth putting in the time to learn Java as well as LS etc.
As much as anything else it's great fun playing around with what you can do in Java and Eclipse. It just makes me hanker even more for an Eclipse based Domino Designer client. ;o)
Matt
- 26
Sean Jennings | 3/25/2006 8:01:11 AM
To give you an idea where I'm coming from first, I'm a Computer Science graduate with 17 development experience, originally doing big-iron development and now specializing in Notes for the last 8 years.
I would love to improve my knowledge and experience of Java. In fact, my preference would be to mandate to my team that whenver we could develop in either LotusScript or Java then, unless there are compelling reasons to the contrary, we should pick Java.
However, whilst its great that we can use Java in Notes/Domino, from a development point of view it is just to painful to do. Given mastering a new language can be a painful process, especially when there are deadlines to meet, the last thing we need is more pain from an unfriendly IDE...
If development of Java in Domino Designer was as easy as doing development of LotusScript, then I'd switch straight away (as I beleive many other would). The development experience in Designer has to be as good for Java as it is for LotusScript.
A second thought for you.... Alot has been posted on how Microsoft upset VB developers due to the incompatibility and differences between VB and VB.NET..... IBM is also banking heavily on the success of Java, but this is a technology created/owned by a business rival.
How about engineering LotusScript to run in the JVM?
How about making LotusScript open-source and giving it to the Eclipse Foundation to manage?
Then you'd free the existing LotusScript developers to write code to run in more places (eg web-browsers), and you'd attract alot of developers with VB experience who are reluctant to try and learn Java.
- 27
Jens http://www.ligonet.ch | 3/25/2006 10:47:33 AM
As Ed already mentioned, there is no lack in Java orientation at IBM and yes, looking at LS in the last years, they have been puching that.
Did it get to the people? I really don't know. Would be interesting, if Ed could tell us, how much interest the sessions at LS generated, that is, how much people have been going to Java/Workplace and so on sessions.
But that alone does not make the picture. From my perspective and from discussing with people (as a speaker at LS and at the German EntwicklerCamp, which is dedicated to the Notes Developer Community) not many developers have been heading to the Java route yet. Now, that raises the question "why"? And "is ist necessary at all to go that route?"
Well, with Hannover Notes is entering into a new environment. This new environment is heavily based on components, hence is basically pure object oriented. Well, Notes itself is object oriented, so this should not be something new at all. Wron, it is. If you are looking at published code, if you are looking at code, that you get your fingers on it, most of the Notes/Domino solutions are still process-oriented implementations, using objects, but not building new objects.
Converting from PO to OO is a hard process and has to be done for all those Domino-Developers which have not yet done so. There is no need to learn Java for that purpose. Lotusscript has support for objects built in.
So, I think, Mikkel is seeing an existing Gap, but he is giving it the wrong label. It is not lack of Java Skills, it is lack in thinking of Object-/Component-/Composite Technologies, that is the Achilles Heel of IBM. And IBM has not seen that problem yet - unfortunately. At LS05 there have been only 2 sessions about OO-Technologies: Wild Bills and mine. At LS06, almost the same thing.
It was this observations, that made me come up with my OOP-Session held back at LS03 (and repeated since then). I think, the Domino Developers need a bridge, that help them, to get into the very different thinking, that you need, if you want to move from Process Oriented Development to Object Oriented Development. Here is it, where I see, that IBM has to fill a gap and is not aware of it. I am trying to make that clear since at least 3 years for now, but it seems, that I have not yet met the right people for that.
Jens
- 28
Dan Sickles | 3/25/2006 12:42:14 PM
@27 - You nailed it. Java syntax, OOP, class libraries and a new development environment can be overwhelming taken together. Learning the OOP features of Lotusscript is the best place to start.
If we can't get Lotusscript on the jvm then I hope we get better OOP support. That and a good java development environment (in Domino Designer) would go a long way toward getting Lotusscript developers up to speed on java.
- 29
Neil http://www.dominoconsultants.com | 3/25/2006 12:58:53 PM
I think that IBM should enable Lotusscript to run in a JVM I think it would be an excellent bridge to the world of Java. A lot of Notes deverpoers out there are not what we would call "True Developers" many come from business units etc. If LScript was enabled for the JVM it would allow them to take more advantage of Hannover...
Also many developers dont learn Java because if you want to do anything with the UI in the Notes client Java is not a lot of help ( obviously this changes with Hannover).
I also believe many companies are worried about the learning curve and percieved complexity of Java, and this is why many are still using Notes as opposed to other alternatives..
At the end of the day I dont think IBM has anything to loose, and a lot to gain by suporting LScript in the JVM.
- 30
Jens http://www.ligonet.ch | 3/25/2006 1:55:58 PM
Dan (28): Yes, you gave just the right abstract, thanks.
Neil (29): of course, having LS running on the JVM would be great, nevertheless for the developer community it would be bad, if they would stop at that point and not trying to go forward. Hence, the learning-bridge between todays LS and tomorrows OO, Component, Composite world is needed anyway.
- 31
Andrew | 3/25/2006 2:37:44 PM
After one of my colleagues saw the Hannover EclipseCon presentation and spoke to the IBM devs, two things became clear: Hannover is very proprietary and Java devs will find it very uncomfortable to leverage existing skills in this environment. They will have to learn a whole set of Hannover-only API's. This should make any dev very nervous - the Java you learn for Hannover will be useless elsewhere i.e in building standard RCP apps.
Secondly, all thats been done with Hannover is provide an "iFramed" environment for your Notesa apps. No real need then to learn Java- keep going with Lotusscript.
Another worrying thing is the huge memory requirement for Hannover - standard RCP apps need 128 MB ram, whereas Hannover is going to need around 1GB fully loaded.
- 32
Axel | 3/25/2006 2:37:44 PM
I think the whole question is kind of way too coarse grained.
Also this LS should be made convertible to Java-Bytecode is a bit like aiming at a nail and hitting the thumb instead.
To try to focus the question a bit (from my personal point of view):
Why do we want Java development for projects on Hannover? What do we gain from it?
1) I am certainly no expert in this question. But I can imagine that one wants to dig into the eclipse RCP layers which will be the new client infrastructure. And I can assure you folks that one needs a very clear understanding of OO, because the whole eclipse infrastructure is a) big,
b) complex and c) good. And you better give up any resistance against allegedly over-complex design patterns, because its helps reading the docu.
I don't believe that IBM has the time and the money to plug LotusScript generated objects into this process.
2) Now even with Domino 7 we have JAXP support and Java 1.4. Lots of openSource projects do run now on Lotus. There are still some lotus specific integration quirks. This will get easier with Hannover. Right now I am trying to integrate jasperReports in Domino 7. Bytecode generated by LotusScript won't help here.
3) Better integration with middleware with strength in transactions and integrating backend systems (Websphere).
4.) Adopting complex, but (in my case) better & better working processes like automated tests (unit, performance, regression), increased agility & better documentation. On the Java side you have the tools (f.ex. testNG, junit) and the mindset (understanding of uml, design patterns, etc) for that more process kind of stuff.
- 33
Axel | 3/25/2006 2:46:59 PM
refactorings is another good example for point 4.
If java for Hannover is really an important issue, in our time it might be good idea to create little podcast serie.
Invite a group of experts from inside IBM like Rocky Oliver as kind of bridge person and other guys more deeply into the Hannover thing and create a little serie with feedback.
- 34
Axel | 3/25/2006 3:10:46 PM
@Andrew:
Learning new api is no big issue for any self-respecting java coder. What is a proprietary api? I am going to learn SEAM (or how its called= next week. Its the new thing from jboss.
Your other 2 points are issues. If its not usefull in praxis market will react in one or another form.
- 35
Dan Sickles | 3/25/2006 7:26:26 PM
Axel, the value of Lotusscript on the jvm is that all java APIs could be accessed from a familiar language and it could be a nice interactive shell language (as Basic was originally) for the jvm.
I'm not arguing this as someone who wants tio use Lotusscript for everything. I can use java or jython or Rhino but for developers who don't know a jvm language (and there are some Basics for the jvm) it would be valuable.
IBM found the time to do a complete implementation of javascript on the jvm for workplace so resources aren't the issue (well maybe for Hannover 1.0 but again the value is more than accessing Hannover RCP UIs). As for proprietary APIs, Workplace is surely proprietary. Workplace is also a great way to learn java if you know javascript. You can do pretty much anything you can do with java in workplace designer using javascript. That's the value of having the language implemented on the jvm.
- 36
Kapali http://kapalienator.blogspot.com | 3/25/2006 8:51:37 PM
I could be completely missing the point here, but:
Java is a strongly typed language and ensures that you obey its rules, LotusScript isn't.
Now, if you have to get the LotusScript bytecodes to run within JVM, then will it not require that the LotusScript code be stronly typed and obey somekind of comman language specification/type system that happens in .NET? If so what happens to porting the existing applications written in LotusScript that are not strongly typed?
I guess Chris [15] was trying to say that VB.NET is more like C# in this context. If we are asking for something like VB.NET with LotusScript then I'm afraid we are asking for something similar to Java (learning curve) and something that will be a rip and replace making it difficult for the old LotusScript code to port?
I am sorry I could be completely missing the point here, though.
- 37
Jens http://www.ligonet.ch | 3/25/2006 10:26:35 PM
Kapali: The syntax of any language does not have anything to do with the implementation of what the interpreter or compiler is generating as the runtime objectcode. The jvm is simply emulating yet-another-machine/computer for which the LotusScript Compiler has to produce apropriate instruction codes. Anything concerning syntax, structure and so on is handled by the compiler/interpreter, not by the underlying machine/virtual machine, that is finally executing the code. Hence, there is no connection between the rules, that Java is enforcing to the developer and any rules, that any other language is imposing, that may be running on top of the JVM
- 38
Axel | 3/26/2006 1:46:16 AM
Dan,
don't think that this would be a good idea.
All this rhino, jython, groovy, etc. stuff never was intended to build whole systems, but only parts of a system, where the advantages of a dynamic language does make actually sense (quick changing business rules, configuration logic, etc).
This stuff is not intended for ideas like giving I-don't-have-time-to-learn types of ladies or gentlemen more opportunities in system development.
We agree that learning a new language isn't that big of an issue. Its more difficult to get into the new perspectives on development the new language carries. Like OO, IOC, AOP, etc. And even if LotusScript aficionados get their beloved language compiled into Java ByteCode they have to understand those principles to leverage Eclipse RCP.
A lot of features of Java like interfaces, overloading, static methods, a common ancestor class, introspections, generics, a huge part of the collection api, a huge part of the io api do have no counterpart in lotusScript. They have to be designed from scratch. But as scarcity of ressources for development aren't an issue for IBM. No hay problema, cierto? :-)
And for what? To give people who are not interested to learn a opportunity to write code hard to maintain.
What I can't understand is the fact, that you know a bunch of languages, but you are argumenting for other people.
Or are you dreaming of an army of badly paid & undereducated BASIC humanoids under your command?
I think that the success of Springframework, JBoss, etc. shows that we should think more horizontaly.
Good systems for s.m.a.r.t. application developers.
- 39
Dan Sickles | 3/26/2006 1:48:19 AM
That's correct. There are several dynamically typed languages that run on the jvm, inlcuding python and a rapidly developing ruby. The dynamic typing behavior is retained. This is exactly what the javascript engine in Workplace is. Sun is making it even easier to develop dynamically typed languages for the jvm:
{ Link }
VB.NET is different from classic VB but the problem for developers is not syntactical. It's that classic VBers have to learn OO, the .NET class libraries and a new development tool all at the same time but the language is much the same. Again, better OOP support in Lotusscript and a better java development environment in Domino Designer would be another way forward.
- 40
Dan Sickles | 3/26/2006 1:59:36 AM
Just to get back to the original post...from what I've seen and others have made clear, java will not be required to build apps in Hannover. If I didn't know java, I would not be too concerned with learning it and the eclipse RCP stuff by the time Hannover is released, but I would certainly be moving down that path. I trust that IBM has some cool stuff for Lotusscript developers that we haven't seen yet. Perhaps some of us developers who have been down the java path could aggregate some ideas, resources, and general advice for those who could use some help. Maybe a good reason to actually star t blogging again ;-)
- 41
Gavin Bollard http://dominogavin.blogspot.com/ | 3/26/2006 4:04:42 PM
IF Hannover NEEDED Java, then yes, it would be an Achilles Heel but if Java is simply another OPTION, it's a benefit.
At this point, I see no reason to learn another language.
I recently upgraded VB6 to VB.NET and am seriously thinking of abandoning the VB platform that I've supported since V1 because MS obviously don't care about their customers and the time it takes to port code (and re-learn)
I'd hate to see IBM go the same way.
- 42
Jens http://www.ligonet.ch | 3/26/2006 4:42:33 PM
Gavin, thats correct. Nevertheless it is important to get the "new" felling of object orientation to get the most profit from the new platform/framework.
- 43
Wild Bill http://www.billbuchan.com | 3/26/2006 5:50:54 PM
Here's a wild idea.
Lets have a lotusscript plug-in for eclipse that lets us update/edit/compile lotusscript code in script libraries and agents in Domino database.
Or lets start off with a supported Java environment in eclipse that lets us develop Java script libraries and agents in Domino ? A supported version of "domeclipse", for instance ?
Come on IBM. This is killer stuff, and not hugely expensive (I hope). And it keeps those half a million programmers into your ballpark.
Show the developers - the half a million "situational programmers" out there - as good if not better development environment in eclipse, and we wouldnt be having this conversation ?
Hope this adds some deliverables to this very valuable conversation:
---* Bill
(For instance, we have 60k lines of lotusscript in our app, in over 200+ script libraries, in an OO layout. Cool. But I'd love to port them to java tomorrow, so we can easily leverage web services.
Och, I know there's lots of ways we could do a web service - hell, I wrote some of the "righteous hacks" out there to do this. But thats way too hard for our "situational programmer". Why Java ? Its a strongly typed language - and since it doesnt have to support the "typeless" operator "Variant" can be "more" compiled than Lotusscript. [You dont have to use "dynamic loading" for instance]
Hell, I'd get a summer intern to do that porting work tomorrow if there was a *really* good supported Java development environment for Domino...)
- 44
Dan Sickles | 3/26/2006 8:56:24 PM
@43 Bill - just a quick note. Lotusccript is a strongly typed language. The variant data type allows it to be a dynamically typed language but the folowing will result in a type error:
x="Loved your session at Lotusphere Bill"
x = x + 5
Weakly typed langiages will perform the addtion with no complaints (and interesting results). Java is a statically typed language..typing is enforced at compile time. Lotusscript(using Variant) and python are dynamically typed..typing happens at run time . The only reason I bring it up is that in the java vs python discussions I've had, moving the conversation from strong/weak to static/dynamic brings additional clarity.
- 45
Ralf | 3/27/2006 1:08:54 AM
The Achillesâ– heel of IBM with java and notes has always been the bugs in the java implementation of the Notes Client. I have written some java dialog boxes providing functions you can not make with standard notes. This works great, but there is a bug in Lotus Notes since Notes 5.0 or before that the Swing modal dialog boxes stays behind the Notes client windows if you switch the application. The user than thinks the client hangs, because Notes do not respond and quit the application with the task manager. If IBM will fix this bug we will have many applications using this great technologie.
Ralf
P.S. If someone wants to fix the problem, i can provide a demo database
- 46
Axel | 3/27/2006 3:10:05 AM
oops... we are getting more opinions about general direction of programming languages in Lotus Domino than there are openSource Web frameworks for Tomcat :-)
A bit scary, isn't it?
Its an often heard argument from swiss mountains, but my personal standpoint OO in LotusScript is not the same as OO in Java. Maybe I don't get OO, but Lotus lacks a lot of OO features that I got used to in my Java praxis (i named them above).
Even with the Teamstudio free object browser (wich I haven't used yet) you can't compare the tooling support for OO-Java and OO-LotusScript. First one is much better. And it would be a lot of work to support all those eclipse Java Ide features for LotusScript.
For my feeling people here tend to excesively find that Java is more complex than LotusScript. As Java is very popular at universities there are now lot of people with lot of Java experience. They see different.
Axel
- 47
Wild Bill http://www.billbuchan.com | 3/27/2006 3:20:08 AM
I agree that there's a hard core of Lotusscript guys out there who just dont see the point of Java. Which is a shame, especially when you get to the Hannover client.
So giving them eclipse-based tools (with all the advantages that the elipse environment brings) might be a good way of enticing them across...
---* Bill
- 48
Kapali | 3/27/2006 3:52:43 AM
[47] - The argument seems to be : It's difficult to see the point of Java, unless you get to know how Java solves a problem in a better way where LotusScript does not.
I think, it's difficult to find a scenario where Java could be more useful, unless I understansd the value of Java.
If we try to implement OO solution with LotusScript - then I would need to see everything as objects, how to represent them etc - which means more time in design/development that brings down the value of Lotus Notes platform as an RAD.
I think more then applying OO/Java, it basically comes to determinig where you need to stop being a LS Procedural developer and where you need to start as LS-OO/Java developer depending on the project complexity/expected changes that would need to be accomodated in design etc.
- 49
Axel | 3/27/2006 4:49:03 AM
Kapali: OO does not mean anti-RAD.
We now have agile OO.
Java applications can be build very fast.
Especially if you use smart frameworks like spring or hibernate which are allready there & stop trusting some guru " java enterprise architects" who don't know 40% of the basics of the platform themselves. :-)
Lots of the discussions about dev process are against the know-it-all-before-project-has-started god-architect. So in a modern oo dev process there is not much upfront design, but more adaptive attitude.
Also modern script languages which ship under faster/lighter/brighter flag like Ruby & Python are OO, too. PHP4 has introduced OO support.
I suspect that we mean very different things, when we talk about OO.
- 50
Kapali | 3/27/2006 6:14:40 AM
[49] - My comparison is on a differnt dimension. When I say it could cut the RAD benifits, I am comparing LS-OO enabled Notes app to LS-procedural enabled Notes app.
- 51
David Frahm | 3/27/2006 9:54:48 AM
@19 - From my 10+ years experience with Domino developers, most are not professional developers. Of course they are not all horrible, but most do not have good fundamentals. This is obvious to those of us who do. If managed well, this is not a big deal. In most teams of any product/language you have a few people who really get it and others who just get by. Everyone can contribute and you just have to be sure the right people are doing the right work.
BTW, all those IBM programmers who don't have the fundamentals -- One look at the Domino templates tells that story. And anybody who doesn't get that... doesn't get it.
For anybody who does have good fundamentals, the issue of learning languages is not a big deal. The language is the easiest part. When someone who has been a developer for years says that Java is too hard to learn, then they either don't have the fundamentals and so therefore it would be hard to learn, or they are just not being specific enough.
I would add that many people who "do" LotusScript haven't really learned that language. They Google, copy, paste, hack, etc. until the job is done. Their code is littered with unnecessary logic, variables, routines, etc. and is a spaghetti mess to debug. Again, this is true with any language, but possibly a bit higher with LotusScript?
I do Domino and Java, but all the Java within/for Domino that I've done is 10 times more frustrating than doing straight Java. Lotus has a lot of work to do to make me think that Java within Domino is good for anything but a do-it-only-if-you-HAVE-to situation.
- 52
Jens http://www.ligonet.ch | 3/27/2006 2:41:06 PM
Kapaly, OO does in no way kill RAD. One of the very first RAD frameworks is pure OO: Delphi. In fact, properly used, OO yelds more to RAD than not. The problem is, to see it: With the OO perspective, you seem to loose time in the first steps of development, because you need a good OO design. Later on you gain the time back and in fact are gaining a lot more time than you lost in the beginning. Hence, RAD with OO is usually faster than RAD Procedural - that is if the project is big enough so you even will see the difference in time at al
- 53
Axel | 3/27/2006 3:53:13 PM
If OO is rapid app dev or not depends on how much *you* are used to it. Thats all.
It is a process. You don't get the whole "point" of OO in a magic second.
But with some praxis, talk with collegues, looking at code of others and reading text anybody is getting faster in this OO-thing.
And if you are used to it, its just coding like procedural way, too.
- 54
Jens http://www.ligonet.ch | 3/27/2006 9:14:55 PM
Axel, thats absolutely correct and very good to highlight. It is basically the reason behind some of my thoughts in my first posting (27) and hence my wish, that IBM would lend a hand to the existing LS developers to help them get used to OO instead of hoping, they'll "convert" by themselfs.
- 55
victor mascari www.tpas.biz | 3/27/2006 10:59:15 PM
Hopefully, the drive to make all things "Java" will not destroy the unique development paradigm that is Notes.
The idea that RAD = Java -- or any other file-compile-[deploy]-execute language -- is a joke. All of these languages are just that: languages. They present a solution to a problem from a different construct. That's it. Nothing new. Nothing new for the past 30 years. No paradigm shifts at all - they are fundamentally the same: you type it in, you compile it, possibly deploy, and execute. That applies to COBOL just as much as it applies to Java.
You want to store data? Then you need to get a database! And, you need to write some plumbing code for each and everything you want to create, retrieve, update and delete. Security? Ohh, wait, more coding! Etc. And, again, the problem is the same for a COBOL programmer as it is for a Java programmer. Nothing new.
The Notes model is unique in that the languages are actually ***secondary*** to the data model. Only Notes offers a truly integrated environment where the layout of a simple form and view does more work than a team of Java developers, DBA's, and middleware plumbers, could put together in the same amount of time.
When properly used for its document centric model (i.e. data oriented), Notes provides an avenue for declarative rules driven programming combined with a rapid gui that interlocks with the database schema seamlessly. Nothing comes close to this model. This the true power of Notes - everything is in the database and everything is data.
In fact, I do not view Java as an upgrade to the Notes world at all. It is like telling someone in a race car that they have to learn how to ride a horse because everyone else just upgraded from ponies to horses and that's the latest thing. Plus, nobody understands that internal combustion engine thing anyway. And, because putting in your key, turning it, and then driving off at 60 mph in a matter of seconds is so easy, it is "obvious" that only non-professionals use those car things. Real professionals use horses.
If Java is an another well integrated language within Notes, then all will be well.
But, if Java becomes some sort of holy grail to Lotus, then I very much fear we will see our data oriented model lost and replaced with multi-tiered technology spam.
- 56
Axel | 3/28/2006 12:13:47 AM
I want to ask you Victor: In the development of which earth-shattering Notes projects or products did you participate? Or are such mudane tasks just not yours, because your strengths are more in getting the "bigger picture"?
Java professionals or DBAs are just people that think that horses will get them faster from point A to point B than cars.
*We Noties* are the truly innovative. Others just don't *get* our model.
RDBMS is just a niche project for people who like spending a lot of money.
The "Notes Movement" has discovered a much better way, but traitors are fighting hard to keep YOU from discovering the simple obvious. :-)
Real professionals know that Notes is a usefull product.
But they also know that it has its advantages and disadvantages when it comes to facing a real worlds tasks.
Real professionals also know more than just one platform. And they know why.
We might need to reform some things in the platform.
*Very* overbold statements like:
- "Nothing new for the past 30 years".
- "When properly used for its document centric model (i.e. data oriented), Notes provides an avenue for declarative rules driven programming combined with a rapid gui that interlocks with the database schema seamlessly. Nothing comes close to this model."
doesn't help anybody, I fear.
Axel
- 57
Luke Kolin http://www.deltava.org/ | 3/28/2006 1:15:05 AM
@55: You just don't get it. The data model for Domino is utterly independent of what language one chooses to acces it by - wether it is LS, C, C++ or Java.
The more I read through this thread, the more I'm convinced that those people remaining on the Domino platform won't move to Java in any significant way, and the original question is dead on the money. This isn't a question of LS running within the JVM, it's more the fact that LS in its current incarnation is a crippled language compared with what Java can provide in terms of true OO features and a robust library.
I really do think that anyone who truly accepted Java in the last five years moved off of Domino. Once a basic investment of time has been made J2EE programming can be just as quick as Domino, but the limitations are far lower.
Cheers!
Luke
- 58
Alan Bell http://www.astoryforbedtime.com | 3/28/2006 6:07:25 AM
so I do stuff in formula, Lotuscript, Java (but generally applet stuff), C, C++ etc. etc.
I have not been particularly impressed by J2EE and all the server side java stuff, it seems you have to do far too much work yourself and the application server doesn't do anywhere near as much as Domino does. All the "learn Java now" message from IBM has done for me is to prompt me to learn PHP.
- 59
Bob | 3/28/2006 6:09:21 AM
@56 & @57 - don't beat up on @55 - he wasn't referring to the precise technical details, he was referring to the business' view, and I'd say he's got a great point.
Time was when Lotus used to support the customer's choice - now it seemsto have to promote IBM's, which is of course Java centric.
To my mind the question isn't so much whether the lack of Java skills in the Lotus community is the Achilles' heel, it's whether Lotus' need to promote Java in the product at IBM's behest despite clear evidence that the userbase wants to keep LS as the default language.
FWIW I thionk that faced with the costs of tooling up for Java many users will simply switch products, either jumping completely to one of IBM's pure Java tools or moving to Microsoft who seem to be listening to their customers - and to IBM's - thanks Gary!
- 60
Axel | 3/28/2006 6:39:51 AM
56 (me) does not beat up anybody.
All I am saying is, that in the diversifying market its a good idea to know >1 enterprise platform. And that there are no simple mono-causalistic arguments that technology x is allways the best choice for certain project or product.
Using hibernate/spring (for example) gives you declarative object-relational mapping, transactions and security. IBM Germany offers trainings for those technologies btw.
I personally have my problems with EJB2.0 and I am hearing that some people who tended to be a bit over-arogant last year now do have serious deadline problems. From that experience I disagree that j2ee programmers are "smarter", btw. EJB3.0 looks promising, though.
Also we are having some demand for java portlets.
If somebody thinks that php, ruby on rails, domino or .net is the best for his situation... Thats perfectly fine.
But thats no reason to critizice Java/J2EE with exagerated arguments, which often give me the impression that said person did not have invested enough time to give a really qualified statement.
- 61
Ed Brill www.edbrill.com | 3/28/2006 8:54:53 AM
@59, I don't tend to respond to anonymous comments, but let's go with this one.
"whether Lotus' need to promote Java in the product at IBM's behest despite clear evidence that the userbase wants to keep LS as the default language."
Welcome to the computer industry, where change is inevitable. Over three years ago, Lotus started promoting Java because the market overall started moving to Java (or .NET). The thought was simple -- get on the train or be left behind. And while the move hasn't played out as fast as was then-expected, it is absolutely true in 2006 that there are more jobs for Java or .NET developers than Lotuscript (or any other "proprietary" programming language). It is -- for better or worse -- difficult to incent scores of new developers to pick up a progrmaming language that exists in only one product, when they can learn one or both of these two mainstream languages and have a larger opportunity. No amount of marketing is going to change that.
So IBM's promotion of Java clearly doesn't benefit solely IBM. A developer who learns Java can code in an IBM environment (WebSphere, Rational Application Developer, Domino Designer, Workplace Designer, etc.), but can also build for Java platforms from BEA, Oracle, JBoss, etc.etc.etc.
Put it this way -- if you were going to sit down in 2006 and create Notes from scratch, wanting it to be a huge mainstream product success for the next several years, would you create a built-in programming language or use a mass market one that already exists?
So yes, the userbase wants to keep Lotuscript as the default language. And to be clear, Lotuscript doesn't go away, change, or deprecate in the Notes "Hannover" release. And some of the ideas here on how to extend the value of a Lotuscript skillset are interesting and make sense. But a view of the larger IT market indicates that the need to incorporate other languages -- AND development tools -- with the Notes environment of today is an even better bet.
Several of the comments here have been suggestions that the Domino Designer needs to "support Java better" (to put it simply). That's not what I was getting at with the original post. The idea in the Notes "Hannover" release is that you can start to use other development tools -- Workplace Designer (mentioned by both Thomas Gumz and Chris Reckling), Rational Application Developer, etc. PLUS the new capabilities in "Hannover" -- to build a new class of composite applications...thus extending the value of Notes to a whole new paradigm. THOSE are your additional, improved, best-in-class, Java development tools -- and they exist now.
As Alan Lepofsky made the point clearly way up above -- you can move forward to "Hannover" and change nothing about how you build Notes/Domino applications today. But you could also build Notes 5/6 client-only applications in @functions and without agents and all the new stuff that has come into Notes over the years. Nobody is forcing change -- but we all benefit from additional innovation and enhancement that moves the whole platform forward.
- 62
Patrix | 3/28/2006 9:34:00 AM
@60 - I think 55 was right on the money. Mabye he ranted a little. He really expresses what differs Domino from other platforms. And shure you can do similar things with this or that patricular Java technique. But the thing that I think makes Domino so uniqe is that it provides a platform for making real world working homogeneous applications. Here are an example:
I work at a large company. We have Domino, Websphere, Dotnet and of course Mainframe. Some time ago we got bought by an even larger company, and a big part of our work concerned integrating systems and development work processes. And the thing is that the entire Domino shop are now done! We are now working with real customer demands again, while the Websphere/dotnet/Mainframe folks are still struggling with basic integration. The Domino platform contains more applications than the other platforms together but still uses less resources.
Because of the Domino architecture we could build one corporate wide authenication soloution that worked seamlessly for ALL Domino applications. And develop a tool for versioning and traceability in application delveopment (SOX... cough cough) that ALL Domino applications can use out of the box.
Sure you can do the same thing in Java/dotnet but I have yet to see that in the real world. I have seen it during fancy presentations though. Java got the image of being homogeneous and business wise, but in reality two J2EE systems can differ more than a Java and a Dotnet system. Beside me right now I have a frustrated Senior Java/Websphere developer that have to explain to his customer that he has to use the rest of this years budget to completly rewrite the authentication system in an application because it will not work in the "new" corporate wide J2EE SOE. He dutifully asked all architects and stategists he could find a few years ago when the app was built, but still he got into this position.
I don't want to be in that seat. I want to keep my customers happy by providing real business value. That is what counts in the long run. Java zealots can go on all day about OO, patterns and hibernation. Until I see that stuff provide real customer value I will stick to Domino. System development to me only has that purpouse. I guess I am too pratical.
Oh, did I tell you that our Domnio servers has not went down once during the last three years. I stopped making jokes about this to my Websphere collague a long time ago...
Regards /Patrix
- 63
Axel | 3/28/2006 9:56:31 AM
I have seen Domino solutions which provide business value & user happiness.
I have seen Domino solutions which were no solutions but a mess.
I have seen J2EE solutions which provide business value & user happiness.
I have seen J2EE solutions which were no solutions but a mess.
But please. In the name of Jesus Christ, Allah, Gautama Buddha, Krischna, Laotse, Konfuzius, ur favourite hindi god, Adam Smith, Karl Marx, Joe Di Magio, Karl Heinz Rummenigge:
Those "arguments" that only Lotus applications provide business value and user happiness, whereas all this object stuff does only work theoretically simply isn't true.
- 64
david racicot | 3/28/2006 10:19:07 AM
@62 Very true. @63 The point is that @62 is the way I have seen things as well 99% of the time. FYI. I have been working on a large Domino app for a few years now. It has two Java agents. All the rest is LS. Next week it will have one. Why? Speed. The LS version of the agent is 10x faster than the Java one (and R7 broke the Java one). The shop I have been working in also has a J2EE team supporting 5 or 6 apps. If politics (and IBM sales) hadn't got in the way 5 years ago, these J2EE apps could have been done for a fraction of the price in Notes (trust me I have see what 14M bought in a J2EE app. Now politics is still in the way and the customer is trying a .NET app (when my team could have had a working prototype up in about a week). I agree with the idea that Notes needs a full Java equivalent to LS to help gain future developers, but it has to be just as good as the LS environment (including performance and stability). Also, you can't beat the Notes dev env, ease of setup. My team was up and coding in 20 minutes. The J2EE team took 3 weeks.
- 65
Patrix | 3/28/2006 11:00:36 AM
From another article:
Ed Brill on 3/28/2006 8:47:10 AM - email www.edbrill.com:
"Then please use your name and valid e-mail address. And post in the proper thread (as you just did). Simple rules."
I will behave Ed. Promise :-)
@63 - Haha. This is getting interesting. Written electronic commincation has it's issues. You can read and intrepret thing's very different from it's original intent. I can also mention that english is second language and I dont spellcheck right now. So stop reading or sue! ;-)
What I desciribed above was how things look at my particular place in the world. I did not mean this is a universal truth. You can do great apps in Smalltalk,C++,Java on Apache, IIS or with Centura and Mainframe. But being in a "wild" big corporate environment I just wanted to tell you why and how I think Lotus Notes/Domino shines here.
@61 - Ok Ed. I if there are IBM strategies are shining through there, I'm afraid I just lost the thread again. Damn! It all seemed so clear after Lotusphere.
I code LS alot. So the annoyances I mentioned about the Designer at the wrong place are big to me, since I have to look at them all day. And judging from how long it took for Notes 6 to get here, it will live with it for a while. But nevermind.
If IBM wants Java proficient Notes Developers just let them use Java each and every day. And how do you do that? You make a nice stable Java centric IDE inside Lotus Designer where we can mantain the masses of legacy LS and Formula, but also write new and shiny Java code that runs as fast as LS.
I for one is not a bit concered about learning Java. It is, as said before, just another language. At university I learned Pascal, Prolog, Hasqell, Assembler and yes, Java. But thing is - this is not about programming languages. It is about platforms, architectures and Object Libraries. In LS I do some If's and Whiles. An occasional Ucase and Trim. No problem doing that in Java. But the big issue is the rest. Composite applications sound a bit too theoretical for me to be frank. How shall I go about with this in the real world? If I incorporate module X at department Y in my composite app, will they still provide that service in 5 years. Do we need to write an SLA? Shall I maintain all the leagacy LS and Formula in Notes Designer, and switch to Eclipse and write Java addons for new functionality?
I recall the "Active X" talk back in the days. You should never have to program again. Just pick some components shop and assemble. Did'nt fly...
Ahh well. I will probably get all this when Hannover gets here. I'll be quiet and get back to maintaining that LS and formula code. I did not write any of that crappy code by the way, but I have a feeling it will still be there loong after Hannover ships. Lotus applications tend to live a long time here. And on tight budgets too...
Regards /Patrix
- 66
Luke Kolin http://www.deltava.org | 3/28/2006 11:01:02 AM
@62: Again, there's nothing unique about Domino that makes it suitable for rapid development. You just have an advantage that some of the stuff comes in the package, which is a boost today and a straightjacket later on.
It's interesting that you note versioning and traceability in application development because this is one area where other languages and development tools are light years beyond Domino. When you add a tool like CVS or Subversion you get a free distributed development environment, with proper check-out, versioning, accountability, diffs, etc. etc. for every change you make in the code, and you can have several developers working on the same design elements at the same time, and just merge the changes in later. I can have the same source control tool for my J2EE, VB and documentation. Can anyone who's used SVN or CVS really say that Domino's system is truly better for group development or tracking purposes?
@64: 3 weeks versus 20 minutes becomes totally irrelevant when you are talking about a long development project, and even more irrelevant when you are considering an application lifetime of 5 years or more. You want to do things right, not fast. However, at all of the places I've worked at, I've been able to get set up in 20 minutes or less as well. I install Eclipse and point it at their source control repository. Within a few mintues I have a completely configured environment with common source code formatting settings, build scripts and the like.
A poor worker blames his tools. It makes me wonder as to the experience and quality of some of the J2EE folks you are comparing your projects with. I've ported a Domino site with several hundred active users to Tomcat/mySQL, and after the first slow 3 months of infrastructure development (since we didn't use Struts, Hibernate or any of that) the pace of development started increasing exponentially. We solve business problems just as quickly as with Domino - but more importantly we are able to tackle new problems that were simply off of the radar with Domino.
I don't disagree that J2EE has a complexity problem, but a lot of that relates to developers turning into system integrators where they merely glue together disparate parts and then scratch their heads when things don't work.
- 67
Axel | 3/28/2006 11:47:07 AM
I do agree, that there are J2EE developers out there who overestimate their capabilities to provide a stable app in due time. I do agree, that a lot of stuff J2EE were overhyped.
But there are lots of good platforms & frameworks.
And Patrix. All things J2EE, Eclipse, all those openSource frameworks are platform. Its not only language.
Time will slowly weather your prejudices.
You will have to prepare for less suprises in the future, if you just believe Luke and me, though.
- 68
Patrix | 3/28/2006 11:53:46 AM
@62: "Again, there's nothing unique about Domino that makes it suitable for rapid development. You just have an advantage that some of the stuff comes in the package, which is a boost today and a straightjacket later on."
Well I have yet to see that being a straightjacket. For the lifteime of Notes/Domino it has been the perfect constraints that have made Domino apps homogenous enabling corporate wide solutions like the ones I mentioned. The Notes/Domino architecture has been, and continue to be the perfect fit for business applications. That is my opinion.
"It's interesting that you note versioning and traceability in application development because this is one area where other languages and development tools are light years beyond Domino. When you add a tool like CVS or Subversion you get a free distributed development"
Your ignorance is embarrasing, this being a Notes/Domino site and all. Have you heard of Team Studio for example? Domnios archutecture and sequrity model enables you to do exellent teamwork development that support Versioning and Traceabilty. I really think you are way off here.
As for the rest. I don't know if you work with satelite guiding systems but I can tell you if my customers has to choose between 3weeks and 20 minutes and those weeks add upp (as they do), and also affects lead time. The decision is easy.
Regards /Patrix
- 69
Patrix | 3/28/2006 12:24:51 PM
@67: Yeah. You are right I guess. :-) I am a bit off today. I have had to spend all day reengenering a five(!) page moronic formula to LS. We had a senior developer that is now retired (thank god). He wrote totally hopless code. And mostly Formula of course... I have tried to steer clear from his deeds, but some day you have to grab those ugly beasts by the horns I guess.
I'm nearly done but also hoplessly bored, so I clutter Ed's site with bad vibes instead :-I
- 70
Luke Kolin http://www.deltava.org | 3/28/2006 12:54:23 PM
@68: I am aware of TeamStudio, and we had a few folks investigating it years ago when we did Domino work. However, does TeamStudio allow you to also do version control on J2EE, VB, and documents in general, like CVS, VSS and SVN? If the name of the game is interoperability and openness, how is a commercial, proprietary Domino-only product superior or even equivalent to something that is free and works across multiple platforms?
The general tone of your post "Domino is the perfect platform for business applications" I think speaks more to a lack of breadth in what problems you seek to solve. There are numerous niches, like with distributed applications where Domino's replication technology to this day is undisputed. But when it comes to workflow, data collection and aggregation, security and (especially) web applications, there's very little unique or superior about Domino.
No, I don't work with satelite guidance systems. But no matter what one does, customers want things that WORK. The savvy ones understand that an ounce of preparation is worth a pound of cure, and little lead time is well worth it if the end result is more robust and scalable.
Cheers!
Luke
- 71
Patrix | 3/28/2006 1:45:09 PM
@70:
Team Studio works with Design elements (Forms, Views, Agents etc). You can check out/in and version them. I must confess that I had about the same preconceptions as you about Teamwork/Versioning/Separation of Duties in Notes/Domino but with the soloution we use, and this may sound cliche but is totally sincere, I think Domino has a far better support four our software process than the other (Java/Dotnet) environments, and many here agree on that.
"how is a commercial, proprietary Domino-only product superior or even equivalent to something that is free and works across multiple platforms?"
Wow... How shall I break this? FREE and multiple platform does NOT always equal better. At least not to most companies. That is why they PAY big buck for Windows/Notes/Websphere despite there are FREE more OPEN alternatives like Linux/Thunderbird/Apache.
"customers want things that WORK. The savvy ones understand that an ounce of preparation is worth a pound of cure, and little lead time is well worth it if the end result is more robust and scalable."
I agree totally. And that IF deserves emphasis. Not once have I found a Domino corporate web app choke here at this company with 5000+ employees. And server hardware is not getting more expensive you know.
This scale talk is all good, but so many apps just don't need that. They need to do something for a limited number of people at resonable development and maintenance costs.
As for robust, I trust my own experience and that does not favour Webshepere over Domino right now I can tell you. But then, Websphere has a much less mature code base. So I guess they will catch up ;-)
Cheers! It's been great fun talking to you. Take care /Patrix
- 72
victor mascari www.tpas.biz | 3/28/2006 9:45:21 PM
@57: >>"@55: You just don't get it. The data model for Domino is utterly independent of what language one chooses to access it by - whether it is LS, C, C++ or Java."
Umm...that is exactly what I said: the languages are secondary to the data model. Did you not read that part of my post? I even put the word "secondary" inside of six asterisks - three on either side. I think I was clear on that point. Especially since my main point was that the data model is the key to the power of Notes.
>> " is a crippled language compared with what Java can provide in terms of true OO features and a robust library."
Ha! What a hoot. The pot calling the kettle black. I am a C++ programmer by training and in the heart. I agree that LS is missing OO features. But, I would also argue, from a C++ perspective, that Java is missing some as well.
@56: Axel: I was unaware that I was supposed to submit my resume for your review. My apologies. However, as it is, I am currently working with IBM Content Manager. We are integrating CM, Mobius ViewDirect, ImageRight, Domino, and a few others into an Ajax driven portal client over an SOA. Our initial SOA will be complete in the next few weeks and we will be ramping up our BPM tools shortly after that to provide workflow and process oriented capabilties to our end users. Our development model will move well beyond Java. Java will be a glue technology and nothing more.
And, just to make sure my resume is complete for you, Axel, I also develop solutions in .Net (C# mainly) and ... Java! But, here I must confess heresy: I use JBoss for my app server -- we abandoned Websphere last year b/c it's class loader was too problematic and the thing was just a bear to use on a day-by-day basis. And, finally, I started out as a C++ programmer long before I became a Notes programmer. But, I stayed a Notes programmer for a reason that I will illustrate below.
There, does that make Axel happy?
Now, back to the main point: Any business solution can be expressed in a declarative data model. Procedural languages are a crutch.
As you seem to have some type of hatred for Domino, let's frame the argument another way - in a relational database world. If I use a relational database I have the ability to model any business solution within a relational algebra and express it in the database. A properly designed relational solution can be proven to be mathematically correct. You will note that none of this depends upon a procedural language. However, there is something lacking in the relational world: no useful gui designer that integrates with the declarative model and no useful relational expression for gui elements.
Like the relational model above, Notes is also a declarative model by its nature, but it is not relational outside of a single Notes document. However, Notes provides a design model that integrates directly with the declarative data model - thus linking declarative design, gui, and data in ONE IDE, one model.
That is unique. That is the power of Notes.
Now, that does not mean that Notes is the only solution, but it does mean that Notes is a ***UNIQUE*** solution.
And, that was my point: I do not see Java as any great advancement for people in the Notes world. It is just one more language, very poorly implemented inside of Notes, that does not add any new paradigms to the already unique Notes paradigm.
So, instead of bragging about how many great skills you think you have, why not educate us on the massive earth shattering paradigm shift you think Java to be?
- 73
Axel | 3/29/2006 12:01:34 AM
Victor,
your interest in so many different technologies is nice. I do so, too. Not going to assemble boring list, but be assured its a) real and b) buzzwords 1.8 compatible.
I've found the class loading of Websphere much cleaner than that of JBoss, but we prefer JBoss in current project for being faster and there are no Websphere specific features (That doesn't say that I find JBoss generally better than Websphere, for the record).
I don't have any hatred for Notes. I just can't understand the argumentation style of people like you.
Nice for you, of you have found an argumentation which makes Notes unique technology. Sounds a bit like Klaus Wustefeld praising Prevayler. Notes/Domino does not need such. I am not interested in technological uniqueness but in business value. And from that pov the tight coupling between data layer and ui-layer in Domino has advantages as it has dis-advantages. If it is really so important, unique amd superior. Why just doesn't Notes eclipse all the other platform?
No. My friend. I am a Notes developer for 7 and a Java/J2EE developer for about 5 years now. And my point is simply that any technology has its advantages and disadvantages. And that peoples curiosity shouldn't be stopped by horse/car comparisions.
Good luck for your bpm/SOA product, btw. During development you might have toppled with questions like if there is existing openSource project for some subsystem.
Such questions found me and I've allways found enriching to learn new stuff developed by others instead of comparing them with cars & horses.
Have started to explore eclipse plug-ins development now. Don't care much if it shatters earth or if its a new paradigm, but for me it for sure has a lot of interesting, enriching & challenging stuff. Same before with axis, struts, ejb, spring/ibatis&hibernate.
All I am saying is that this community - which is allways very quick in complaining about being treated bad by Microsoft and others - should show a bit more respect for competing technologies. And not bash them with hand-waving statements like you in (55):
"Nothing new for the past 30 years" &
"I do not view Java as an upgrade to the Notes world at all. It is like telling someone in a race car that they have to learn how to ride a horse because everyone else just upgraded from ponies to horses and that's the latest thing."
Java has been a much used basis for lots of frameworks, tools, components and applications which provide real business value to a lot of nice people on our beautifull planet.
- 74
Mikkel Heisterberg http://blog.lekkim.heisterberg.dk | 3/29/2006 4:01:12 AM
Well there is no doubt that the Notes/Domino community is very passionate about the platform. After sitting back for a while, watching the discussion unfold I feel it's time for me to pitch in and comment. The post became rather lengthy so I decided to post it on my own blog instead. Those interested can read it there.
{ Link }
/lekkim
- 75
Axel | 3/29/2006 12:48:15 PM
Maybe its because lots of notes people if they think Java they think the whole Rational Application Developer elephant with 7 0r 8 UML2.0 diagram type.
I think its much better to try with something leaner like Eclipse and Jboss or Eclipse and Spring and Tomcat or some such.
Axel
- 76
Ed Brill www.edbrill.com | 3/29/2006 3:58:07 PM
@74 thanks - I just read your follow-up. Good stuff...
- 77
victor mascari www.tpas.biz | 3/29/2006 9:10:43 PM
@73 - you are correct that Java is useful and has great functionality. I never denied that. Many things fall in that category. My point was that the Notes paradigm is unique in a way that nothing out there currently implements.
Why does it not have a greater market share? Easy: Sales and marketing. Everything is about sales and marketing - very little is actually about technological capability.
The profit backbone of all organizations is not the technical people or the technology, but rather, the sales and marketing. How the sales and marketing folks position your product and sell it determines how it will be perceived and used.
Java is popular right now because it is backed by a bunch of big (and small) companies looking to counter-balance Microsoft, not because it is superior to every technology out there. It will be interesting to see if any major companies begin to back LAMP solutions or if Microsoft can push its .Net platform to critical mass. In either case, the luster of Java will fade.
>> hand-waving statements like you in (55):
>> "Nothing new for the past 30 years" &
I don't think that is a hand waving statement - I actually believe it. We can take that off-line if you like.
------------------------------------------------
Lastly, there seems to be an assumption amongst the pro-Java folks that anyone who doesn't see the benefits of Java must be some caveman dressed in animal skins who refuses to change. I think that assumption is both insulting and short sighted.
Except for its Notes community, IBM does not have a massive loyal developer community like Microsoft. The Notes community is clearly ripe for molding into an army of Java developers. But, IBM has a job to do in selling its strategy to its developer community to get it to move. I fail to see how lecturing people on the need for "change" will impress them to do so unless you can provide tangible business AND personal benefits.
In fact, if IBM ditches the Notes model in favor of the traditional multi-tiered design, I think its strategy will backfire because it is ditching a unique model that it alone owns.
At my client, we dumped Websphere *not* on the recommendation of "cavemen" Domino developers like myself, but on the recommendation of the new Java consultants who had no need for IBM. They are Java + Open Source. Not Java + IBM. Their next target is Tivoli b/c they cannot get it to work with JBoss. They already have proposals written up and open source software recommendations to replace it.
Notes is the only product in IBM's software portfolio that has not been successfully reproduced in the open source world. If IBM does move over to a multi-tiered Java world without bringing and upgrading the unique power of Notes with that move, then it opens itself to competition from open source Java projects, many of which are just as good, if not better than Java solutions from IBM.
So that leaves a question: What is the value of IBM to a Java programmer?
- 78
Axel | 3/29/2006 11:00:29 PM
Victor,
I believe in market economies. Sales & Marketing surely do have an important role, but in the end no un-fit product will survive. I am still getting annoyed when people start to happily proclaim that O2/2 is better technology than windows. And back that with some weird, mono-causalistic argumentation. A choosen technology stack allways has a lot of aspects. Advantages and disadvantages.
Huge complex enterprise platforms like Domino, .NET, those many based on Java (J2EE, eclipse_as_OSGi_plug-in_platform, etc.) or webframework like php or ruby on rails are ... well ... complex. And its the result of a complex interaction between *people* (ofter forgotten) and the *many* aspects of the platform to get business value out of it.
Especially when it comes to enterprise platform, you can implement a solution with different platform. In tech its very common that people are emotionally attached to "their" platform. On the business side some companies use a .NET strategy, some Java/J2ee, some Domino, some Lamp and a lot hybrid. All those companies survive.
Its my observation that java people show often a greater openness towards newer frameworks like ruby_on_rails or .net. On the other hand there is a tendency to declare older technologies as obsolete. Its just a tendency. But its there. Maybe its human. I don't like it.
In a certain customer I was cavemanizised last year, because I had a Domino project there. It was a bit funny, because I thought to have1 more Java experience than not few of the Java programmers there.
IBM certainly has less control over Java than it has over Domino. The barriers to switch to different J2EE server do certainly exist, but they are lower than switch from Domino to say .NET or J2EE. IBM decided to participate in the J2EE thing and it surely was a complex decision. If openSource or IBM solution looks more promising depends a lot on the specific situation of the customer. In the end it might be good for IBM and the customers that on J2EE platform there is more competition. The existent but relatively low market entry barriers might put more pressure on IBM as a organization. This might lead to better end result.
- 79
Charles Robinson | 3/31/2006 12:54:37 PM
I've downloaded Eclipse periodically for the past few years and each time I end up deleting it. Why? Because I'm still not sure why I need Java. As many have pointed out, using it with Domino is a very limited an unfulfilling experience. When Domino fully supports Java I'll start messing with it. Or I'll move to another platform. Or I'll become a chef and ditch technology entirely because it's impossible to keep up with all of it. :-P
- 80
david racicot | 4/3/2006 11:20:51 AM
There's this article today (see link below)with references to Java etc., and it is stuff like this (Ajax this, Ruby that) that keep me thinking, why bother? Is the IT industry's bewilderment/attraction to chaos the Achilles' heal of Lotus Notes?
{ Link }
- 81
Howard http://www.tlcc.com | 4/5/2006 1:56:38 PM
These courses are just for Domino developers and teach both Java programming and the Domino Object Model.
TLCC also has courses on servlet and JSP programming designed just for Domino developers.
{ Link }
Howard
- 82
Tim | 6/16/2006 9:52:52 AM
I've not read all of the 81 other comments so apologies if this is a duplicate of other views, but the problem with Java in domino is that it simply doesn't work. Many times I've tried to run something which works perfectly on another serlvet container such as tomcat, in the context of a java agent only to watch the domino server come down around my ears.....
Its kind of ironic that IBM is going down the Java route with domino when the implementation is so shoddy.


I'm not sure I follow the need to develop in Java for a Notes application. Why would a developer need to learn yet another language/technology to develop in Hannover? If I can do what I need to do without Java, why should I add Java into my environment? Surely many, if not all, of the new features in Hannover will have LotusScript and formula language support - won't it?.
Right now Notes developers need some level of expertise in HTML, LotusScript, formula language, JavaScript, CSS, SQL and XML in order to develop or support enterprise applications. Some of these are easier than others to work with but it's still a lot of balls to juggle. Forcing developers into yet another piece of technology we have to support and develop for may be just one step too far for some - maybe even many.
Wouldn't a better question to ask be, "Is LotusScript not keeping up with Java's feature set the Achilles heel of IBM?"