I surveyed developers about why they don't respond to recruiters, I'll give you a direct quote here:
Recruiters probably should have industry experience. There’s too much of a disconnect.
Java was originally released by Sun Microsystems in 1995, and it was accompanied by a large marketing push and many collaborations. One of these was with Netscape. I am just going to quote this whole passage from WikiPedia which explains it (skip ahead if you want):
It is bad to confuse the two because they are often employed in such fundamentally different ways (although this is less true than it once was).
It's useful to know and understand these terms but most of them are outside of the scope of this small blog entry, I want to call them out anyway in case you want to do more research.
Java is statically typed, object oriented and multi-threaded.
Just skip this if you don't care, but here is the list of terms and links if you want to read more:
Check back later, I will write a post explaining how most programming languages fall into these major categories and what that means.
Java is also heavily used to run web servers, for example when you visit a site like Google, Twitter, or Amazon, you are probably connecting to an application server running Java and the information coming back to your web browser passed through a server running Java at some point.
Java is also the language of Android. So every time you run an Android app, you are using Java.
So all of a sudden now, backend developers started to use Node to write application servers.
For recruiters I think it will be really helpful to explain a lot of these terms and shed some light how they evolved.
Again, skip these if you want. I will just give a one sentence description for each:
MEAN stack is a specific set of technologies that accomplish this. Here is what it stands for:
So instead of having a language on the frontend, another language on the backend, and another data storage format, everything is all the same language. Now you could easily write a utility library (a re-usable chunk of code to do repetitive tasks) and use it both on the client and on the server. That is a big productivity win.
MEAN grew in popularity because you no longer had transform the data multiple times - just represent your data in JSON format - ship it to the server, and put that directly into the database without having to do additional data transformations like you would using a traditional RDBMS (relational database management system).
And of course when React came out, we got MERN stack, where the "R" stands for React.
Let's switch back to talking more about Java go into more depth.
Java is probably the most popular enterprise server side development language. Arguably PHP is the most popular server side language, if only because of WordPress, but many more significant programs are written in Java which is why I used the "enterprise" qualification. And if you look at many programming language popularity indexes Java is still number one or two.
One way to understand why this is the case is to explain the JVM: the Java Virtual Machine runs Java Bytecode and as long as you have a JVM for the computer you want to run the common Java Bytecode on you run your Java program. The flexibility and robustness of the JVM is a huge draw for the Java ecosystem.
Okay let me explain this another way:
So when you install Java on your computer, you are actually installing a JVM. Then you can run Java using this. You don't actually have to get the details here, but just know that the JVM underpins Java since people may talk to you about it. There is a whole industry of people that optimize, tune, and do monitoring and instrumentation for the JVM.
Another reason Java / JVM has become popular is the amount of optimizations and work that have gone into the JVM. The Oracle JVM has had an enormous amount of optimization and research put into over the years to make it fast and safe. So people who may not like Java as a language have written other languages that compile to the common bytecode that the JVM runs.
Here are a couple of other JVM languages. You have probably seen these on resumes already:
So hopefully if that was overwhelming I either left you with a thirst for more information (and you can come back and join me next time for more!), or I left you enough bread crumbs to keep researching on your own.