Why is Java the Best Language?

I get questions like this fairly often both from people inside my organization, and acquaintances trying to make conversation. They find out I have spent most of my career working in Java, and have questions.

“If you have devoted your career to the language, you must think it’s the best one, right?”

The truth is that there is no best language. If programming languages are vehicles, then Java is a bit like a Honda Civic. Is a Civic the best vehicle? Well that depends. What are you trying to do? Every commonly used programming language has advantages and disadvantages. A language has situations where it is an ideal fit, and situations where it fits poorly, like trying to drive your family of 8 cross-country in a Civic.

A lot of what people talk about when they offer opinions about whether something is “a good language” or not have little to do with the language itself, the actual structure and syntax of the code, and more about the platform, the community, and the practices associated with that language. People say things like “JavaScript is garbage!” or “perl is the worst!” and when you press them on why, you get reasons like “because jQuery slows everything down” or “because people write in these languages and then no one else can understand it,” but if you look at these types of answers, the problem is not the language but how it is being used. You can write JavaScript without any frameworks. And you can write clear perl code. There is nothing intrinsic to these languages that make them bad.

For those things that are intrinsic to a language, I have still never come across something that makes one language uniquely good or bad. In Java communities you hear a lot of criticism of JavaScript for not being strongly typed. A variable can be an integer on one line and change to a string ten lines down. It can be confusing and frustrating. It can lead to errors in logic and behavior. However, it provides tremendous versatility. JavaScript is used differently from Java. It can transform data from one type to another without getting bogged down in type-checking and error-handling. To draw out the same metaphor, JavaScript might be an off-road SUV. It does not perform like a compact sedan because it is a different sort of vehicle. JavaScript does not work like Java because it fulfills a different purpose. That doesn’t make it a worse language, just one that does things strange and foreign to the Java dev community.

In my professional career, I’m language agnostic. I mostly work in Java because that’s the vehicle I already own, and there is usually work out there for Java developers. It has the advantage of a large community and a broad spectrum of frameworks and libraries and support options. That does not make it fit to every purpose and in every role in my career, I’ve worked in other languages alongside.


  • How I Got Here

    A lot of job interviews start with a question like “How did you get started in software development?” and I never quite know how to answer that question. Get started? Which time? How far back should I go? I originally started programming in high school. I took classes in Pascal and from there I taught…


  • A Remote-First Workplace

    I Have Been Working On Distributed Teams Since Before It Was Cool In 2020, the world changed and office work changed with it. We were all sent home and required to adapt to remote work. Development teams around the world changed their processes and workflows to this new business requirement with varying degrees of success.…


  • Why is Java the Best Language?

    I get questions like this fairly often both from people inside my organization, and acquaintances trying to make conversation. They find out I have spent most of my career working in Java, and have questions. “If you have devoted your career to the language, you must think it’s the best one, right?”The truth is that…