Will Domino Ever Be Boring?
In my current stint as an office-based developer I am working for/with/under an ex-COBOL programmer turned analyst. He loves to remind me, at least daily, how he too was once a developer (albeit in times gone by). Today he told me a story about a program he'd once written. After he moved teams and lost responsibility for it, another developer had to make a change. Apparently she came to see him afterwards and paid him what he said was the greatest compliment any programmer can receive
, which was to say that:
Updating your code was boring.
He'd written it in such a structured modular way that it was easy to update and a doddle to figure out. Can you imagine? We went on to talk about Domino (of which he claims to know nothing) and he joked that working on the database we are currently involved with must be really interesting
.
He's right. Domino might be structured in as much as we've got certain design elements for doing certain things (Forms, Views etc), but look at the different ways of achieving the same thing in Domino (JavaScript Library or Page?). It's great in that it gives us huge flexibility, but can be a pain for another developer to come in and work out what's going on. Such is the double-edged sword that is Domino, which I love about it!
I think "updating your code was easy" might have been more complimentary.
I got this in response to my web calendar on OpenNTF:
"I appreciate the simplicity of the design you posted it did not take me a hour just to figure out what design element was embedded in another."
I guess that's as close as it can get in Domino.
I know what you mean. I am currently working on a database which has 216 views and 36 forms and 30 agents. The "developer", who wasn't really a developer, left the client's company and nobody knew anything about the database. Now I have to figure out which views to throw away and which to keep, to simplify the design and get some performance back into it. Nice job! :-( This is when you regret being a domino developer..... Cleaning up the mess somebody else left behind. No compliment for the original designer! ;-)
Actually I think this is Domino's greates weakness. The sheer utter mess you can (and must) navigate yourself into in order to get anything sensible done. Lucky those that (like me) have had the opportunity to grow with each new release -- I date all the way back to Notes 2.1 and have learnt to love each new possibility we have been given.
But someone who is relatively new to Notes/Domino development will feel the pain of trying to wade through levels and levels of indirection, different technologies, pass-thru HTML, computed text, JavaScript that is computed on the fly by entries in a view, tables that are created by views, dirty tricks to make Domino generate sensible HTML, LotusScript, OO-Script, an IDE that is so early 90's. etc. Needless to mention the problems you have to version your stuff (CVS, Subversion? - no, you have to continually buy TeamStudio CIAO).
I have played quite a bit with Ruby On Rails {Link} Oh boy - what a difference. The same technology (RUBY) used throughout everything. Everything in plain text files. Very, very productive - after some getting used to - at least on par with Notes.
I have worked with Notes/Domino for over 10 years ..and I still love it! :-)
well...that is if I get to code it from scratch..my way :-)
I have been on some large Domino projects that others had worked on for years. That was not exactly fun!
Right now i'm working a Notes/Domino project which have had 10-15 IBM consultants working on it from time to time. It is really ugly ... and no fun at all.
..But when you do get acquainted with all the ugliness and start to put your own ideas and wonderful code into it ..things start to lighten up ! :-)
Still can forget what Notes/Domino could have been if IBM had not taken all the stuff out of RNext...
regards
Jesper Kiaer
Well, for everyone who says the way Domino works makes development interesting, there is another who calls it frustrating, annoying and byzantine.
I used to love the giddy thrill of pitching to clients, saying "Of course we can do that!", knowing that in one form or another Domino/Notes would be able to do it, it was just as matter of sitting down and thinking through all the many ways to use Domino to skin the cat and figuring out which was best for the given situation.
jase
Maintainability is hopeless in Domino. The main thing I have an issue with is hide-when formulas.
There's no indication that they're there, these days if working with a Notes apps I go through every cell in a table to check whether anything is there before making changes. Especially as in certain versions of Designer the formulas jump around!
On a web app, I simply don't use them. Computed text (coloured in say blue) is far easier, and the logic is then going into code rather than the presentatation. Well sort of!!
Now I'm working on a database where ALL is inside a big lot of LotusScript libraries containing a deep hierarchy of a few hundred classes with NULL documentation, and a bizarre naming convention!! And all the guys there say "I didn't do it"...
The mysterious developer built a Notes-like system around the Notes system. What for? I don't know!!
Leaf classes in the hierarchy mimic documents or views, and ALL application document fields are shadowed by get/set properties, and ALL view events are redirected to empty routines in the base classes.
It's so interesting that I'm thinking about quitting this job! (just joking: I need this money :'()
Jens-Christian Fischer, you are completely right when you say "an IDE that is so early 90's". It needs a rewrite!
Jason Reid, it's true: if you really want to get something in Notes, almost always you can.
Andrea, sounds like you have had the opportunity to work with an ITF or xArc application, or what do you think Jesper Kiaer?