Sunny with a chance of tweetstorms: 32 opinions about Java

Whether it’s about open source, Java, or even the intractable debate over stateful design vs. stateless design, Java Champion Lukas Eder has a lot of thoughts about the current state of the programming world.
Lukas Eder thinks about programming a lot. To be fair, as a Java Champion and head of R&D at Data Geekery GmbH, the company behind jOOQ, he talks about coding all day every day. But sometimes, you just have to get a bunch of things off your chest. And when Lukas Eder does it, it’s a hilarious tweetstorm with a few shots fired and a lot of truths told.
OK, I have to get a couple of things off my chest. Buckle up, 32 opinions about programming coming up.
— Lukas Eder (@lukaseder) 1. Juni 2017
1. Polyglot is overrated. If you let new concepts / paradigms / languages leak into your legacy without control, what you get is a mess.
— Lukas Eder (@lukaseder) 1. Juni 2017
2. There is no such thing as a prototype. It will always ship to production sooner than later.
— Lukas Eder (@lukaseder) 1. Juni 2017
3. Do we Java developers really deserve to still be punished with the version 1.2 collection API?
— Lukas Eder (@lukaseder) 1. Juni 2017
4. How can Java still not have multi line string support?
— Lukas Eder (@lukaseder) 1. Juni 2017
5. You don’t need inheritance. Especially not entity inheritance.
— Lukas Eder (@lukaseder) 1. Juni 2017
6. Why don’t language popularity indexes include SQL?
— Lukas Eder (@lukaseder) 1. Juni 2017
7. TDD is overrated.
— Lukas Eder (@lukaseder) 1. Juni 2017
8. JavaScript wouldn’t be bashed as much if type coercion was less lenient. It’s actually quite cool.
— Lukas Eder (@lukaseder) 1. Juni 2017
9. XSLT is underrated and misunderstood. It’s one of the best ideas out there, perhaps with a rather poor syntax.
— Lukas Eder (@lukaseder) 1. Juni 2017
10. JSON is just XML with less syntax and less features.
— Lukas Eder (@lukaseder) 1. Juni 2017
11. Programmers will endlessly bikeshed syntax.
— Lukas Eder (@lukaseder) 1. Juni 2017
SEE MORE: 10 tips on how to be a great programmer
12. Programmers will endlessly bikeshed operator overloading.
— Lukas Eder (@lukaseder) 1. Juni 2017
13. JPA is not a standard. It’s a mess whose mistakes cannot be fixed because it pretends to be a standard.
— Lukas Eder (@lukaseder) 1. Juni 2017
14. How could we let JavaBeans (including getters and setters) happen?
— Lukas Eder (@lukaseder) 1. Juni 2017
15. Not every type should have identity (let alone a monitor).
— Lukas Eder (@lukaseder) 1. Juni 2017
16. Static methods are perfectly fine. They’re pure functions disguised in an awkward syntax and clumsy namespacing scheme.
— Lukas Eder (@lukaseder) 1. Juni 2017
17. Full stack development means being mediocre at everything.
— Lukas Eder (@lukaseder) 1. Juni 2017
18. Java needs first class union type support. In hindsight, we won’t understand how we could have lived without them.
— Lukas Eder (@lukaseder) 1. Juni 2017
19. If you need annotations, it means your language / library is not good enough.
— Lukas Eder (@lukaseder) 1. Juni 2017
20. FP is a hype. There will always be room for imperative style programming.
— Lukas Eder (@lukaseder) 1. Juni 2017
21. Learn to think in paradigms. Especially the set-oriented paradigm (e.g. SQL, XPath, etc.) is extremely rewarding.
— Lukas Eder (@lukaseder) 1. Juni 2017
22. Set, List, Stream, Array, etc. shouldn’t be types. They should be implementation properties of a single Iterable type.
— Lukas Eder (@lukaseder) 1. Juni 2017
23. The nominal typing and the structural typing folks will never agree.
— Lukas Eder (@lukaseder) 1. Juni 2017
SEE MORE: The Java ecosystem’s obsession with NonNull annotations
24. The stateful design (pro OOP, DDD, etc.) and the stateless design (pro SQL, XSLT, FP, etc.) folks will never agree.
— Lukas Eder (@lukaseder) 1. Juni 2017
25. Programming is not maths.
— Lukas Eder (@lukaseder) 1. Juni 2017
26. The occasional GOTO is fine.
— Lukas Eder (@lukaseder) 1. Juni 2017
27. Open source is overrated.
— Lukas Eder (@lukaseder) 1. Juni 2017
28. Option(al) is a poor approach at tackling the “NULL” problem (see union types).
— Lukas Eder (@lukaseder) 1. Juni 2017
29. Databases are computation engines which happen to also support boring persistence features.
— Lukas Eder (@lukaseder) 1. Juni 2017
30. The idea that AI will eventually code by random combination of assembly instructions must be a punch in the face to any clean coder.
— Lukas Eder (@lukaseder) 1. Juni 2017
31. We might never satisfactorily solve the modularity problem.
— Lukas Eder (@lukaseder) 1. Juni 2017
32. In reasonable languages, this would be opinion[32].
— Lukas Eder (@lukaseder) 1. Juni 2017