It is the most popular compiled strongly typed language, so they went for both market share and ease of implementing refactoring (vs a dynamic language, like Python)
Not sure I agree there. The language progresses with features that OP himself says he likes, and he also says that they DO maintain backwards compatibility, what more to ask for?
The author would be better or revisiting their code on a more relaxed cycle, for example every 18 weeks. Or whatever works for them, or just let go of the need to be using 100% of the latest best practices.
The idea of panels can be realized today on Linux using a tiling window manager, and is superior in my opinion because it allows you to slice your screen as you see fit, has workspaces and you can have multipe windows in a single slice snd switch between them using a variety of wsys (tabs, etc)
For your web apps / services / APIs, check Dropwizard, it is not what I would call "bleeding edge", but it provides a reasonable base and has always allowed me to easily work with the rest of the awesome JVM ecosystem. My Dropwizard projects are usually cruft/magic free, start in less than 5 seconds, consume predictable resources and is easy to reason about, troubleshoot and improve.
I used to be a big fan of Spring(-boot) with MVC, but since I tried Dropwizard I never looked back. I'd still do Spring but perhaps for non-mvc/web needs.
I don’t think it is ok to try and make service boundaries transparent and swappable. A service speaking to another service has to know the cost and overhead of the call it is making as otherwise it can’t provide an efficient interface
I find it best to be asked that kind of homework after I have done my first interview. It usually means we both got a chance to pass and that the effort I will put will be seriously considered.
In actual bread dough, yeast finds all it needs to activate in the flour itself.