Because I’m in my very early 20s I missed out on the huge Java craze. Everything was Python when I started getting a more formal education and before then all my work was in C++. Knowing more languages would obviously look better on a CV but I mean if I would benefit in a practical sense? I have two friends who are long time Java devs. And recently another friend who generally works with legacy C++ based systems from the early 2000s late 90s period had to work on a bunch of stuff in Java. Java is clearly still in large scale use among older systems. So would it be likely that eventually I would need to work on Java systems myself when my job is mostly JavaScript currently?
If you go down the Java route you will probably end up working with enterprise/legacy software. If you are fine with that, do it. But what’s wrong with focussing on JavaScript as your main language?
Sorry if I worded it strange. What I meant was that I’m going down the JavaScript path. But that doesn’t mean I’ll only ever do JS. I’ve already had to work with some PHP and Ruby. So would Java also be likely to come up eventually?
In my experience, you learn a language and then you apply for a job that requires that language. So, if you don’t learn Java, you won’t apply for a Java developer position. You can go a whole career without touching Java.
Unlike PHP, which has the tendency to sneak up on you (never met a PHP programmer who chose to become one) Java will most likely not just come up if you don’t go looking for it.
The opposite actually happened to me. PHP was my first non-intern position. That company eventually started working with Java, so I made that transition when they did.
Fascinating. It has been a running joke in my bubble that no one ever picks up PHP voluntarily. It’s just everywhere.
I wouldn’t overthink it. Learn the languages you like. Learning an OOP language in depth is a good idea, but it doesn’t have to be Java. C# or even modern PHP also work fine.
I used PHP voluntarily. 22 years ago there wasn’t much choice. Java hosting options were expensive, Perl options were more expensive than PHP, C# didn’t exist (this was the same year it came out!), Python 2 wasn’t commonly installed by default on Linux distributions etc. No cloud, no Node.JS. If you had access to Windows server you could use VBScript - if you targeted Internet Explorer (versions 4 and 5 were dominant, 6 was new, it was the most popular internet browser at the time) you could use VBScript for both server-side and client-side scripting. Java applets were a thing. But if you didn’t need that, PHP was the most accessible option. And since many hosting providers gave you similar versions of PHP and its libraries, you knew what could work and what not and that you could move your website from one hosting provider to another.
I was choosing at the start of my career between C# and PHP, and I chose PHP. I love the simplicity of the language, as it does everything I need, and it’s very quick to prototype basic funcionality in no time.
It was less voluntary to use Perl, but they pay a lot, and it always ended in PHP anyway.
I’m a full-stack web developer. I mainly focus on frontend TypeScript/Angular at the moment, but we still support older products made with JavaScript/AngularJS. Across different projects I have had backends using php, Python/Django, Java/JSP, C#/asp.net, JavaScript/Express. Some languages have features or frameworks that make them easier for certain use cases, but sometimes I don’t have any choice and one type of server is required to interface with external code or applications.
I don’t know how likely it is that you will encounter a situation where Java is required, but that situation did arise for me and I am still forced to use it to support one of our products. If I had a choice though I would always pick C# over Java, since C# is pretty similar, but in my opinion every change is an improvement, and I feel like it has a lot of extra features.
Your preferences might be different though so I agree with the other sentiment that you should give everything a try, and see which languages/frameworks appeal to you and you want to learn more about.