To the open road
Last Wednesday I promised the sequel to the SVG article and now I feel bad. I like to think that I keep promises. Well, I've started the article anyway. Honest. Just suffering from having changes/bugs-fixes to make on the new site, a social life to keep up with, a nine-to-five, out-of-hours work to do, cooking, washing, sleeping... and then there's the minor case of writer's block. Bear with me on this.
A question I get asked a lot is what my thoughts are on the future of Domino. To which I normally reply that I have no idea. Do I plan on sticking round to find out? Not really. I feel like I've learnt to drive in an automatic and now I fancy a clutch and some gears. It's all very well having Lotus switch gears for us and regulate the engine but sometimes I just want to put my foot down and spin the wheels. Now, if you think that's a bad analogy you've not heard my one about cars and girlfriends.
If anything today's blog should really test the new comments feature ;o)
It recently hit me that the name for R6 is "Notes and Domino 6." Note what's missing -- "Lotus."
I pretty much agree with IBM's strategic direction, but I hate the idea that Domino as a stand-alone platform will eventually go away. And as we move in that direction, opportunities for Domino-only professionals will get slimmer and slimmer.
Now then, where's that JSP & servlets page I've been working through...
Did anyone read the article in this months Lotus Advisor - totally slagged off use of Java (J2EE, JSP etc) for building a website
this one?
Makes sense and I wouldn't dare argue with the man like Bob.
He argues though that you can do stuff simply with Domino elements like forms and pages. What I hate is the things I *can't* do and the things Domino *makes* me have to do. Open the door I want to get out...
Would per chance the clutch=mysql and the gears=PHP ?
I remember when Lotus released R3 and R4 and everyone talked about Notes disappearing - I wrote off my career then, and here I am almost 6 years on still coding using Notes and Domino. I think the difference these days is that the corporate audience seems to be shrinking (fast). If IBM really start to push Websphere over Domino we may see it disappear altogether - I guess I should start looking at Puakma ...
Lotus Advisor? Pah! Back o' sh@te that publication. We used to subscribe at work, until we realised that our collective knowledge of Notes / Domino meant that every month the whole publication was redundant.
And if they're slagging off J2EE / JSPs, that just shows how stupid they are!
You're right Jan-Piet. They are ;o) Then there's always the upgrade option of going turbo-charged (J2EE) when I think I'm ready.
Tom I think misses my point. I don't want to drive the "stick-shift" through fear of there being no automatics in the future but because I want to taste the open road in style... I know what you're thinking - how long will he keep this ridiculous analogy up for.
No Jake, keep going. I'm enjoying this ;-)
Yes! There are seemingly hundreds of reasons why Domino frustrates the hell out of us! But what about the things that it does that we love? True replication and true server clustering are two features worth their weight in gold! Not to mention that Domino servers and applications are pretty easy to get up and running, and keep maintained! And that's no joke! Does Microsoft do that? Hell, no! Ever try to get Exchange 2K going? - get your team of 10 people together before you try it!
My point is that for building small and medium sized applications for businesses, I don't think that Domino can be beat. We are able to create some pretty useful applications. And if you work for an 'international-type' company, to be able to create an application for 1500 users in a month or two is of great benefit. Problems with Domino spewing invalid html, a hot topic on this website and others, or the hundreds of other broken things are worth shouting out about, but I don't see that the problems out weigh the benifits (yet!).
Okay, okay, hold your horses everyone. This is why I was apprehensive about adding a comments feature here. Let's not drag out the same old tired arguments over and over again.
Domino's great. I love it as much as you all do. I just get bored with it and am having something of a seven-year itch. Plus I don't want to get thrown on the pile with only one "string in my bow".
...I almost forgot. When I think of tasting "the open road in style," I think that perhaps my own chauffeur would be the most stylish way to go. But then letting someone else do the driving was how we got into this trouble to begin with! The fact is: if Domino is going to be the chauffeur, I think a valid driver's lisence would help.
...or maybe this analogy is not quite as funny as I thought at first. whatever.
Re: ease of setup/admin of Domino.
I am a developer and assume most of you are. It's not really my problem if the server doesn't work or if one server differs from another.
My job and major concern is the webpage works.
PHP and MySQL (JSP and DB2 -- ASP and SQLServer) have their place.
Yet Domino offers more then just a database that feeds dynamically generated webpages. To state the most obvious one; a multi-platform back-end client named "Notes" (as opposed to a web-only php/jsp interface).
In my opinion there is no true analogy between JSP(J2EE)+DB2 and Domino.
They supplement each other.
With that said it's up to the developer to decide which tools to use when.
Oh man, I've been working with Domino for less than 2 weeks, and even the 4ums are hinting that it may dissapear :-) For the last year, I've been concentrating on MS.Net web services, and I was hoping to keep working with web services now that I'm developing with Domino. I've already done XML parsing and XSL markup in Domino with LotusScript and Java, and I could see web services taking off. Is there any support for this idea in the Domino developer world?
Actually... I would tend to agree with the Advisor article up until the point where he says that Domino forms and such are really great and solve JSP's problems. So here's my background - I develop Domino stuff 9-5 and then go home and do app dev for a the Minnesota Green party. While the specific tools we're using may be swapped out (PostgreSQL, perl, apache, mod_perl) the design philosophy just *rocks* in comparison to Domino. Essentially we've gone over to the MVC world where I have a gaggle of objects managing all the data and the the 'M'odel part of MVC. The PostgreSQL data store handles persistence (MySQL will be good enough in a couple years when it has all the features that PostgreSQL has right now. It's not good enough yet.)
The HTML and other interfaces (the 'V' part of MVC) uses the perl module HTML::Template but really we could have used most of anything (we almost did XML to HTML/PDF via XSLT pipes). This is the one part that is closest to Domino and forms-style development. You code up your HTML, stick some tags which just insert data in at the right places. The whole rest of the app sits in the 'C'ontroller part of the schema. That's CGI::Application class system where all the specific actions are inherited from whatever application is being worked with. This gets us beyond the JSP/ASP/PHP world where you develop a set of pages with embedded code. This is beyond CGI where the HTML is embedded into the code. This is beyond Domino where *everything* is glommed together in one mess.
In general, it's pretty damn sweet and I'm dearly wishing for accomodation from the IBM labs to enable me to push Domino the ways I'd like to push it. An interesting feature of going with this OO model of an application is that now I and the other people on the GPM dev team are getting ready to take on aspect oriented programming (AOP). My novice impression is that there's a heck of alot of expressive power in AOP and our MVC is putting us right on the track to get there.
I'm missing OOP design in Domino. I'm missing assertions. I'm missing functional programming. All in all... Domino as a dev environment is feeling more and more like a nuclear power kiddy bike. It's damn powerful and can do the same thing a regular bike can do - it just isn't quite the right fit. So I think that current web dev is moving on past where Domino stopped (maybe R7 will catch up again).
Okay, here's my take on this discussion.
To be honest, Domino is a completely different beast to everything else that is around. Just try describing it to someone who comes from the ASP/Cold Fusion/.Net world!
So I always think its horses for courses. If it works for the application I am developing, then that's what matters.
But why just be really good at one thing? Jake obviously likes the idea of being able to pursue something really cool. I am too old to really know what is cool, but I know this - (1) I want to keep learning new stuff, to stop the brain from seizing up and (2) I want to have skills that someone will want to buy in the future.
But whatever else I do, I will be grateful to Domino for providing a pretty good platform to cut my teeth on.
BTW, I stumbled over this roadmap dated Aug 12 at http://www.lotus.com/news/news.nsf/link/Dominoroadmap
Jake, I guess what you really need is a steptronic type approach where Lotus provide you with the choice of automatic or manual, so you can do that open road justice...
Nice idea. Never going to happen though is it.
Indeed. Thanks for reminding why I had to have my arm twisted before I added the ability to post commments here.
Will they stay or will they go..
I some how disagree with Mr Joshua. You can implement MVC framework in domino application as well as OO methodology.
If they stay there will be trouble...
Perhaps you should look at another way of displaying the comments so they are not shown by default.
I'll disagree back at you SD. Obviously I can OO if you only refer to the programatic environments like Java, LotusScript, JavaScript. Heck, the addition of Java *could* do all the flavor-of-the-month programming style but then you aren't really developing for Domino. It's just .. code strapped into a Domino db. I'd like it to all fit together that way and not have to artificially bolt it on.
BTW - more disagreement with Mike Bigg. I run a Wiki at http://www.greentechnologist.org and while there is the occasional vandal it's all easily taken care of. It just comes down to the issue that there are cads in the world. With my Wiki I just make sure to follow the changes so if someone replaces the home page with something craptacular I can go back and replace it with something reasonable. (an example of an archived turd http://www.greentechnologist.org/wiki/wiki?action=browse&id=Home&revision=46)
Josh
Just to throw in a comment of a slightly different take than PHP/ASP/JSP:
I've been playing around with Zope (www.zope.org) for the past several months, and it provides a very satisfying alternative to some of the other options listed here. (Not necessarily better mind you, just different...).
Zope is a fully OO framework for building web applications. Integrated object database, good RDB support, scripting in python/perl, etc.
Just an interesting alternative.
--dave
One would hope that the "direction" IBM is going with Notes will take us and our resume's to a place where we want them to be. Although the complete blunder of not providing Java UI classes in R6 leaves me less than optomistic. In the mean time, I'm trying to hit the Java world running. If IBM keeps up, great,if not who cares. I'm having fun with it. But we can help IBM along as well. What are we worth if we can do the J2EE thing AND bring Notes/Collaboration expertise along for the ride? Has anyone tried integrating the JBOSS J2EE server with Domino so that that .nsf URL's get forwarded to Notes? Still havn't gotten that far with it yet. I saw some APACHE SOAP and JDOM code today on the JDOM mailing list, and it's pretty amazing. .NET is really going to have some competition because this stuff was done with very few lines of code and it's pretty much all free (Netbeans, JDOM, APACHE, JBOSS, etc)
I have to chirp in about Joshua's MVC comment. First it's great to see someone who understand's the benefits of Model View Controller design. I think every Notes developer needs to read a good OODesign book an apply it to what they do in Notes. Sometimes the bad wrap that Notes gets is not because of what is missing in Notes but because things can be done so easily in it that even bad code actually works. But eventually the true colors of that kind of programming surface and it isn't the programmers name that people see when they start up their machine, it's the Notes splash screen. There's much more capability in Notes than most developers use. I do all my design now using MVC with LotusScript, yeah LotusScript. Because the presentation logic is seperated from the controller logic, I can reuse 99% of my code for both the web and the notes client. Though initial coding can take longer, every change after that seems to be a snap. The other big benefit is that if each programmer uses a class to access a document, the behavior is enforced (no more missing author/reader properties when setting a field from the back end). So MVC is definitely possible in Notes, you just have to know how to design classes, use them and walk away from function/sub based code. I've implemented Observer and Observable classes, Linked Lists, etc. It's all very possible. Just wish I had interfaces :(
Out of curiosity, what's the excitement about PHP? I have to admit I don't know much about it other than it appears to be along the same lines as ASP. Why would one choose that over JSP which gets JIT compiled? Why introduce yet another language rather than improving JSP if its lacking something that the PHP crew have come up with?
When the only tool you have is a hammer, everthing is a nail!
Yes, this is a paradox that I am also facing...whether to stick to Domino or move onto the open road with JSP/J2EE. Alternate path is the microsoft way, but since that is not the open road, expecting more acceptance for JSP and have already dived into Java. The best way for non Java programmers to learn is to go through the JSP/Java tutorials on java.sun.com Once through with that its all in applying what you have learnt. Easiest way is to start writing Java Agents and Servlets that access domino classes.
Believe me JSP/J2EE is not that tuff an egg. Integrate your domino with Tomcat and you can have a head start.