4 ms·
> Both are full of reflection. That's how it keeps being very generic at its core. Reflection is not a feature, but a kludge - to conceal how non-expressive th
by haspok 4y ago
> Both are full of reflection. That's how it keeps being very generic at its core.
Reflection is not a feature, but a kludge - to conceal how non-expressive the core language is. Add annotations to that, and you might start asking yourself, what value does exactly Java's static type system add here, compared to a dynamic language (say Javascript)? Most of your errors will remain undiscovered until runtime, so why bother?
Things are changing for the better with Java, of course, with the speed of a glacier, but I don't think we'll ever be able to get rid of Spring proxies, or annotations or reflection.
- kaba0 4y agoUnless your language is Coq or Idris, its type system will still be way way less expressive than what reflection can do — java’s type system is quite good, it only misses HKTs, and even where static types are insufficient, it has proper runtime types and error handling, so runtime exploration of dynamic data in a safe way is absolutely possible.
- tm-guimaraes 4y agoNew features makes lot of reflection use cases unnecessary. Spring already bumped base to java 17, and the plan is to improve the internals, but changing public APIs is a different story. Still, other options appear everyday so you don't have to use Spring. But yeah, glaciar speed, but with that comes low churning rate and old stuff needing very low maintenance.