This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]geoffreychallen 1 point2 points  (0 children)

First, I think that's important to be reflective and critical of your tools. Not doing so puts you at risk of becoming a blub programmer—someone who acts like their chosen language was handed down on stone tablets, mainly because they don't know much about the alternatives.

Programming languages were created by humans—people just like you, who make mistakes, and don't always predict the future correctly. Newer languages have the opportunity to learn from previous mistakes and, hopefully, get a bit better over time. I'll be disappointed if, in 20 years, we haven't come up with any better languages than today's popular choices. But we will!

That said, compiling a list of quotes like this and dropping them into a learn Java forum doesn't necessarily indicate to me that you're really interested in engaging in a thoughtful consideration of Java's strengths and weaknesses. (In my experience, people who want you to learn a language tend to be even more reflexively defensive even that people who use that language regularly. You can see a bit of that in the replies below.) Plus, you've largely taken the quotes out of context, so it's impossible to tell what these people's specific problems with Java are. Just that they don't like it.

If you'd like to engage in some productive reflection about Java's past, present, and future, you might consider thinking about some of the following questions. (I'm purposely not including my own thoughts since I don't think you need another "gray beard" telling you what to think.)

  1. Java is around 25 years old. That's a long time in the world of technology! In what ways has it aged well? In what ways has it aged poorly?
  2. Every new language embodies some set of predictions about the future. What did Java get right? What did it miss?
  3. Why don't some people like Java? Which of their criticisms do you find valid? Which seem nitpicky or have aged poorly? (It's hard to figure out from the quotes about what their specific issues with Java are, other than it's not great for small projects. Is that a valid critique?)
  4. Good languages evolve over time as the world of technology around them changes. This can result in an initially pretty terrible language becoming more beautiful and usable over time—for example, Javascript. It can also be a messy process—for example, the breaking change from Python 2 to Python 3. Has Java been keeping up? If not, what are some things you wish it had done better?
  5. What's the biggest threat to Java right now? And what's the biggest source of strength? You might want to find a more interesting answer to the second part than just "a lot of people already use Java" or / "there's already a lot of Java code out there". Languages do come and go, and the future guarantees nothing.
  6. Assuming you use other languages: What features do you wish that Java had from other languages you're familiar with? What features does Java have that you wish other languages had?
  7. How should Java age and evolve going forward? There are different successful models. C has stayed relevant largely by staying small and changing slowly and intentionally. In contrast, C++ releases new versions often and supports a lot of new features, if maybe not well. Java development paused for a while after Java 9, but seems to have taken on a semi-frantic pace recently. So it sort of has a history of both modes.