Here are the most important news for Java developers from last month — in my opinion, at least.
| 2022 | Aug | Jul | Jun | May | Apr | Mar | Feb | Jan |
James Ward is a Java Champion and Kotlin Product Manager at Google. He hosts the “Happy Path Programming” podcast with Bruce “Thinking in Java” Eckel. In one episode, Eckel spoke of “people who are still trapped in the Java world.” Ward agreed and called default mutability in Java the “trillion-dollar mistake” (referencing the “billion-dollar mistake” of NullPointerExceptions). That got me curious. So I interviewed James for InfoQ. Here are the key points:
And what about the “trapped in the Java world” business? His answer was that it means “using old programming paradigms”. He wiggled out of that one well! 😁
The “Spectrum” magazine of the Institute of Electrical and Electronics Engineers (IEEE) has an annual ranking of programming languages. The good news: Java’s doing well. And SQL is doing surprisingly well.
The IEEE uses the following data sources: Google searches, mentions on Twitter, questions at Stack Overflow, posts on Reddit, mentions in the IEEE Xplore Digital Library (over 3.6 million conference and journal articles), stars & pull requests on GitHub., the IEEE Jobs Site and the CareerBuilder job site. Here are the highlights:
So Python leads overall, and Java is holding its own. Interestingly, Scala is the #2 JVM language here, not Kotlin.
No matter whether SQL is a programming language in the same league as Java or Python, it’s #1 in jobs and #6 in the other data sources. The IEEE thinks this is a real trend, and SQL is indeed becoming more important. They argue that even for data science and machine learning experts, knowledge of SQL is beneficial.
How do you decide on architecture in your projects? Do you have architects deciding that for you? Are you deciding this in isolation? Or does the loudest voice in the room win?
Here’s another approach — the “Advice process”. It’s decentralized! Here’s how Andrew Harmel-Law from Thoughtworks describes it:
Anyone can make an architectural decision.
But before making the decision, the decision-taker must consult two groups: The first is everyone who will be meaningfully affected by the decision. The second is people with expertise in the area the decision is being taken.
The “decision-takers” are the developers who implement the software. They don’t have to agree with the advice they get, but “they must listen to and record it”.
Now, doesn’t that devalue software architects and other experts? Won’t developers ignore their advice and “do what they want”?
Well, they already do! At least, that’s what the article claims. It quotes Alberto Brandolini, “it is the developer’s assumptions which get shipped to production”. And if it’s the “developer’s version of the architecture” that ships anyway, letting developers decide the architecture makes that plain to see for everybody.
The article describes the four supporting elements:
James Ward and Bruce “Thinking in Java” Eckel interviewed Andrew on their podcast. It’s a good introduction and discussion of the topic.