Thanks for your reply. We won't know what is needed until we land on a job that requires these. But before they offer a job, they will look at whether u have the language they are looking for. So it is a chicken and egg case, once u have chicken, u will have eggs. No chicken means no eggs, no eggs means no more chicken.
Since you understand it is a chicken and egg problem, why don't you think out of the box and not get trapped in this dilemma ? You ask a different question, you get a different problem solving approach and you get a different answer
You are locked in the thoughts that learning between any programming languages really makes the differences in your prospect. If I tell you it doesn't really matters, will you think differently ?
To me it doesn't matter, because what I considered what really matters are "Aptitude" and "Attitude".
You focus on these 2 As, you will see that programming languages are just one of the many tools you will need to know in your line of work. When you see a job ad with a certain set of requirements, with the right attitude, you will know what you need to do. Your aptitude comes helpful passed down by your parental genetics. Ultimately you need to learn how to pair up these 2 qualities in your life to make things work the way you want. With less aptitude, you make up with better attitude. With good aptitude, you can climb even higher and reach out even further with good attitude. That is how I will measure one's prospect, not which programming languages you need to learn. You need to learn what you need to learn, there is no shortcut.
The company I am working with are mostly Java developers, but that doesn't makes them all having good prospects because each of them have their own aptitude and attitude to work. Even so, Java is just one of the many tools we use in our work and it would be narrow minded to consider it any more important than simple unix tools like "tcpdump" and "find".
Throughout my career I have an arsenal of tools at my finger tips and this is not limited to just programming languages I know ranging from Java, C/C++, Perl, Javascript, Groovy, Lisp and some casually touched on Python, Ruby. There still some less usually touched on programming language and I can tell you I haven't even master Java, which I have learned since year 2004. I have to learn how lambda and closures are implemented and designed in Java despite I already knew about them in other programming languages like Lisp, Javascript and Perl. Have I touch on a lot more other tools which you can easily find when you list out the binaries under
/usr/(local/)?s?bin [
if you understand regular expression]
With that, programming languages only comprise of less than 20% of the knowledge I need to function in my job. So when you come across job requirements listed, be aware what you know and what you are expected to know. Measure your prospect in the way you approach problem, not what you knew. What you knew are just skill to let you do your job. How you do your job is where it really matters in your prospect.
I learn Scala because i was learning an execution engine called Spark. Ya, functional programming is good. In the course, they showed us codes for Scala, Python and Java side by side. Scala codes are much shorter and simpler than Java. As to whether it is useful, I won't know until i embark on a job, so again it is chicken and egg.
Simple often comes with cost. Streams introduced in Java makes writing a number of codes easier on the eyes and elegant but comes with a cost of roughly 30% slower than a simple longer looking for-loop. Scala also suffer from similar issues. One can write Scala running faster than Java, but one can also write Scala working much slower than Java.
https://dzone.com/articles/benchmarking-scala-against
Still there are good use for Scala just like there are good use for Groovy. Your knowledge around things enable you to make the most suitable decision in your assignments to choose one over the other. This choice is beyond just technical aspect of things, they involves human and commercial side of things too
Everything seems like Chicken and Egg, but if you have heard about connecting the dots, you will realise that it is all a matter of perspective. Sometimes you just need to look things backwards from the future, and the way to do it is to believe in yourself.
