4 ms·
I use the elements of programming from SICP[1] as a litmus test for this kind of frameworks. The main issue with these annotation hacks is that they fail in th
by diegof79 8y ago
I use the elements of programming from SICP[1] as a litmus test for this kind of frameworks.
The main issue with these annotation hacks is that they fail in the area of “means of combination” and “means of abstraction”.
For example if you have:
@X
@Y
class Something{}
You cannot tell if X & Y can be combined (or how it’s combined), or you cannot easily create an abstraction Z with X and Y (you may be able to do that but it requires framework support and usually is painfully impractical)
It seems to be a small issue compared to the added value, but to me is not.
As the code base grows the maintenance and debugging issues grow too... in the end probably is better to use Kotlin or Scala.
[1]: https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-10.html#%_sec_1.1 https://mitpress.mit.edu/sites/default/files/sicp/full-text/...
- jimbokun 8y agoThanks for that! Makes clear and explicit the queasy feeling I get from over reliance on Java annotations. Lisp macros, for example, fare much better in the "means of combination" and "means of abstraction" tests, I think.
- ajkjk 8y agoI agree, but it's helpful that the things Lombok abstracts away are very idiomatic and straightforward. I would never want to use it to take on anything more complicated.