Earlier quoted context omitted.
Java has annotations, C/C++ has macros, every language from Lisp to Rust to Scala has some form of macros or annotations. These can often be very powerful, but of course debugging is more complicated.
Lisp macros are still just code, code that executes at compile time instead of run time. Code generated in response to an Java annotation is only loosely associated with the annotation itself. Annotation Oriented Programming arose out of Java's lack of powerful and general abstractions like first class functions. Lambda syntax for "single abstract method" interfaces has largely addressed that problem, but the use of…
Java call stack – from HTTP upto JDBC as a picture (2006)
61–63 of 63 posts
Re: Java call stack – from HTTP upto JDBC as a picture (2006)
#62The fact that Spring even exists should be a big red flag for the value of static typing. People routinely make mistakes using type systems. And when done correctly I see static type systems work very well solving problems that they themselves created.
How do you get from deeply nested method calls to "people routinely make mistakes using type systems"?
I'm saying that with all that overhead, people still routinely make mistakes using static typing systems. They get the compiler to tell them that they're correct but their code is still not working.
Re: Java call stack – from HTTP upto JDBC as a picture (2006)
#63Not sure it is any smaller today. Some additional layers not seen are the DTO transformations (not seen because they don't become part of the stack when it's hitting JDBC) but two more major subsystems. Many IDEs now automatically filter out these well known stacks from view. Personally moving from a mostly Java background to entirely typescript on the backend and front-end.