# Newbie
The more I work with it, the more my 'sense' of systems architecture and appreciation for elegant design goes out the window.
Ask me to 'architect' a Notes system spanning multiple databases, throw together tens of LotusScript libraries to build huge agents that run for hours, and I can do it in my sleep. It's What I Do.
Ask me to get the same thing done in Java (accessing and manipulating relational data), and I realise just how much real-world experience counts. I don't believe that Java is 'harder' than Notes, it's just a completely different paradigm.
No, scratch that. It *is* harder than Notes. Not in terms of the language itself, not in terms of relational design, nor even the more comprehensive APIs, but in terms of just how many things Notes takes care of for you. Imagine you *had* to build an extra layer of abstraction before you could even work with Notes data. Imagine your Notes UI had to be built or patched together on the fly.
And it's not that taking care of your data access, or your UI/web display is impossible, either. It's just that the founding fathers have forged ahead and laid down the rules, and this inaccessible 'best practice' sits there leering at you, taunting you as being inexperienced and out of your mind if you opt for simpler Java roads to go down.
Nor is it the case that a solid Notes (LotusScript) developer is writing less complicated code, or even less worthy code than a Java developer, it's just that they're spending less time sculpting mountains of shite with gummed up interfaces to each other, and spending more time on solving business problems. The whole MVC thing (in modern-day terms; separation of data, presentation and business logic) is a shining example.
This is big in Java. MVC is supposed to be important because it keeps things separate and easier to understand, maintain, extend and re-use. These tie in very closely to Object-Oriented theory, but these goals were around waaaay before OO programming became vogue. I'm an OO fan through and through, but my completely uneducated opinion is that the separation is only a good thing if it doesn't fsck up your application to the point where you can't see the business logic for the trees. Too often I see the separation becoming more important than the original goals of having better code. The end result? Contrivance instead of elegance.
What I like about Notes is that within reason, you're able to keep your presentation, data and business logic in reasonably separate 'heaps' if you like, and you're able to find a happy balance between maintaining your 'piles' and focusing on getting things done. Java 'best practice', such as I'm discovering it, seems to carve these apart with a meat cleaver, seal everything in airtight boxes, and then encourages you to build mind-blowingly elaborate and theoretically-correct interfaces between them to the point of lunacy.
I know this is probably my inexperience talking. An experienced Java developer would probably tell me to get knotted. I know that in a year's time I could be laughing when I see posts like Spuggy's. I know that I can absorb these sorts of things, but the question is: do I want to?
File under: notes/domino, techie : {2004.01.20 16:57}