The slow march of progress in programming language tooling
Tooling is extremely important. However there’s one thing I think is worth mentioning:<p>Java tooling (IntelliJ and Lombok) is incredible. Yet Java is still on the most dreaded list.<p>Why is that? Honestly I don’t know, and I actually think Java is a good language exclusively because of its tooling. That being said, current tooling doesn’t fix all of Java’s flaws.<p>- Gradle and maven are reliable like npm and cargo, but super verbose and confusing<p>- Standard library has some issues and quirks. Like URL#equals sends a network request, apparently that will never be changed. Some other packages (log4j, JAX) are similarly bloated<p>- The “billion dollar mistake” untyped null. People tried to fix this with @NonNull annotations but it’s not far enough.<p>- Java is in a lot of legacy software, which often cannot use Lombok and requires Java 8 or even Java 7.<p>- I just have to say, IntelliJ and Lombok really <i>do</i> fix Java’s verbosity. Both reading and writing. Indeed, tooling is the new syntax. But maybe some disagree.