For years Notes has made it possible to develop things quickly. And it's really quick -- 20x as fast as MVC designs is actually normal for Notes.
The drawback: it's hard to separate business logic from application design. I know, I know, most Java development has the same problem, and they don't really care. Should I mention that it's why most big applications fail? No matter, it's always been a concern.
Well, I got a chance to bone up on new features in Domino and was quite surprised, finding its remarkable prototype ability handed a whole new set of configurable features.
But here, let's talk turkey instead of pie in the sky.
Notes got profiles: check.
Notes got @Eval: check.
Notes can retrieve formulas to @Eval from profiles.
Notes got hide-when formulas, enable-field formulas, translate formulas, list selection formulas, validation formulas.
Now, all that means you can configure for someone else to write -- and admin or app power user -- anything you could write a formula for on a form.
Anything.
As a developer, this should tell you something. Your Notes app in the early days was built outta formula. It was easy, fast, and changed quickly. You'd give power users the ability to change stuff, it was so easy. Now essentially any part of formula design can become a playground for power-users. You can separate development from power use. You control where that point separates, too.
Or take business rules, those nasty things that change about every six months. You used to have to rewrite apps to handle business rules.
Now You Don't.
It can all be profiled.
Oh, there're also views. Okay, *some* view features still need to be designed: particularly column styling and sorting. But let's not punt the baby with the bath water. There're now "user-defined columns" that ... what else? ... allow the user to define them.
That can be profiled.
If y'think about it, the split between development and configuration can be defined by the developer in so many places -- it's likely you could modify a Notes application to where it never becomes obsolete.
Think about that, next time your Java app needs to be redesigned due to a management change.
The drawback: it's hard to separate business logic from application design. I know, I know, most Java development has the same problem, and they don't really care. Should I mention that it's why most big applications fail? No matter, it's always been a concern.
Well, I got a chance to bone up on new features in Domino and was quite surprised, finding its remarkable prototype ability handed a whole new set of configurable features.
But here, let's talk turkey instead of pie in the sky.
Notes got profiles: check.
Notes got @Eval: check.
Notes can retrieve formulas to @Eval from profiles.
Notes got hide-when formulas, enable-field formulas, translate formulas, list selection formulas, validation formulas.
Now, all that means you can configure for someone else to write -- and admin or app power user -- anything you could write a formula for on a form.
Anything.
As a developer, this should tell you something. Your Notes app in the early days was built outta formula. It was easy, fast, and changed quickly. You'd give power users the ability to change stuff, it was so easy. Now essentially any part of formula design can become a playground for power-users. You can separate development from power use. You control where that point separates, too.
Or take business rules, those nasty things that change about every six months. You used to have to rewrite apps to handle business rules.
Now You Don't.
It can all be profiled.
Oh, there're also views. Okay, *some* view features still need to be designed: particularly column styling and sorting. But let's not punt the baby with the bath water. There're now "user-defined columns" that ... what else? ... allow the user to define them.
That can be profiled.
If y'think about it, the split between development and configuration can be defined by the developer in so many places -- it's likely you could modify a Notes application to where it never becomes obsolete.
Think about that, next time your Java app needs to be redesigned due to a management change.