Sometimes People Just have Different Needs, Tastes and Preferences

There is a reason why it is called the art of programming and not the science of programming.

It does not exactly surprise me that we have very different opinions on Java. That kind of follows from our different views of IDEs. But again I must say you have somewhat of an arrogant attitude. You keep coming back to this line or reasoning that if somebody has a different preference from yourself, then they must simply not know that technology. You assume people who don’t like IDEs are unknowledgeable about them, and now you suggest that if one doesn’t like Java, it is again simply down to ignorance.

People have different tastes and preferences. If somebody doesn’t like pizza, do you also tell them that they haven’t eaten enough variety of pizza?

I learned Java over 20 years ago, and has used it on numerous occasions, along with countless other languages. I don’t think Java is a terrible language. It is okay. My issue with Java is more about the software culture around it and the complexity of it.

Just setting up something like Android development is ridiculously complex compared to say iOS development. I could train Java developers straight out of college in Objective-C and iOS development and get them up to speed, faster than they would with Android development despite it being a language they already knew.

Whenever I would look at people using different programming languages to solve a problem, you would be seldom wrong if the Java solution was the most complex one. But should anyone be surprised coming from a language, where hello world is written as:

public class Main {
public static void main(String[] args) {
System.out.println("Hello world");

Where quite a lot of other languages get away with simply writing:

print("Hello world")

I have talked to professors remarking on this problem with Java. That it is not a great teaching language as it force learners to deal with far too many different concepts from the beginning. A good approach to teach is to introduce one concept at a time. Even in a ridiculously complex language like C++, that is easier.

It is kind of scary how Java became this primary teaching language, even though in many ways in terms of ability to teach concepts it was a major regression from good old Basic we had in the 80s.

You cannot just wave away Java complexity with “You just don’t know it well enough.” That is like Trump going “fake news!” to anything he doesn’t like to hear. Whenever I need to do something in Java in find myself having to read up on Maven, Ant, Gradle and a ton of other stuff. And it is just crazy how complex they made a lot of these tools.

I don’t think I have actually used another language which has complex package/build tool as with Maven. It is just way easier to setup Go, Julia, Python, Objective-C, Swift etc projects.

The reason I don’t like Java, is pretty much the same reason why I don’t like IDEs. I value elegance, simplicity and ease of use. The Java echo-system and favored style of development is the anthesis of this.

That doesn’t mean that there aren’t a huge number of tools and libraries in Java with amazing features and abilities. There is a always a tradeoff. I am just willing to make very different tradeoffs from you. Not to mention we both seem to work on entirely different styles of software. So why should I like what you like?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store