I recently came across a post entitled “Why I love everything you hate about Java”.
I love it.
I would say that the Decorator Pattern is an important pattern in CS for modularity. In the comments there is a lot of to and fro from people, but I think I can encapsulate what it got at.
Make your code modular.
That really is it: Verbosity, etc. are all attributes of what language you are using. The basics of, for instance, function chaining or the decorator pattern, are what is important. People often get confused.
Frameworks are not the same as patterns, for instance Spring != Dependency Injection. I think we can all agree that DI is a good idea. However, some people don’t like Spring– perhaps preferring Guice. That is fine. The important thing is that the pattern is used.
Frameworks can be stupid. I have just rolled back from using some Spring transactional annotations to code because it needed better transactional control flow and @Transaction is not suitably expressive. For me. For many use cases they are fine, but they are stupid and require some being with intelligence to decide when to use them.
by Matthew Painter, CTO