In my personal experience I'd say there still is a widespread mindset in our industry that all "real" web development needs to be done in Java. I'd also say that whenever someone says that they usually mean "I'm most comfortable in Java so let's use that so I don't have to learn new things."
I've used both Java and Node professionally, and have in the past few years made recommendations for new projects to be started in both Java and Node depending on their unique requirements. I've even worked on projects migrating existing systems both from Java to Node, and Node to Java.
That said, I do strongly believe that Node is better suited as a language for web-scale projects that deal more with asynchronous requests (such as to DBs and APIs) than doing heavy data crunching themselves. If you need heavy data crunching, Java might be better for you, and there are a lot more available frameworks.
If you're looking for a job specific recommendation, it sounds like that might be partly regional. If you can't find Node jobs in your area, then maybe picking up Java is the right answer for you.
If you are looking for decent paying jobs then Java is probably one of best languages to choose. The JVM eco system is huge and tools are less to none. There are some comments mentioning web development, I would say that is not Java’s strongest area. There are 10x(just a guess) more backend work API, integration etc done in Java today. From what I see there still lot of new Java work being done, while the share has come down recently it is still quite large.
At least in finance domain Java has a quite a large presence and it is growing
I wrote a quick Node Proof of Concept for a high-throughput data processing pipeline before the "real" team came in and rewrote it in Java.
Not only did the "real" team try and gaslight me into thinking my implementation didn't work (It did, they copied it wrong), but it took 3 engineers twice the time it took to copy my work into Java as it did for me to do the original development. The kicker: The Java process was so bloated it took nearly 2x the compute resources to get the same throughput.
TL;DR I challenge every time someone says "This is complex/high throughput, so let's use Java instead of Node"
Yeah but don't you find digesting, creating a mental model, and then recreating someone else's work (esp in a diff language) to be more complicated than just writing something of your own from scratch? I kinda do.
Also, just curious, what things from a data processing pipeline standpoint does Node do well in? What does it not do well in?
Yes, like you said for PoC node is perfectly capable. When people say complex and high throughput then things like say Kafka or ERPs, banking software come into my mind. What are some of the biggest systems running on node? Sorry not challenging but curious to know. I have not heard of any popular big systems written in node.
I don't know what companies you've been working for, but even if you do zero product research and development, a company as tech-focused as Uber is still going to need a substantial engineering department just to keep the lights on. Not to mention a tech company that isn't developing new products and features, and isn't marketing, isn't going to remain profitable for long no matter how much they've cut labor costs.
I understand that they're investing in growth, but the key points still stands - money is flowing down the drain with the promise that it'll all be worth it "some day."
This is all speculative, of course, so you are entitled to your beliefs based on your views and experience.
In my case, I have often seen the case that companies have certain stable modes, and many unstable modes. It could easily be that after slashing 80% of their engineering workforce, and cutting their marketing, they subside into becoming a slightly higher-tech taxi company.
But what about the remaining 20% of engineering? Do they want to work for a company that has let go 80% of its engineers, and has given up on self-driving cars and drones and whatever else they were dreaming of?
Or will the rest of the talent head for the exits, their options hopelessly underwater forever, because investors have no interest in the faded hulk of a company that was once a Unicorn?
It could be that if they try to shrink to 20% of their engineering talent, they keep on shrinking involuntarily, shedding their best talent in all areas, not just engineering.
I don't know for a fact what will happen, but for the moment, if I had to bet, my bet is that if they try to cut 80% of their engineering and most of their marketing, they will keep on shrinking until they become a penny stock.
It would probably be easier for them to have Private Equity come in and take the company private first. If they have to cut that much flesh off the bones in public, it's going to be brutal.
I've done coding interviews for nearly 10 years now where I present a coding problem, but I never expect syntax correctness. I'll explicitly say I don't care if the function signatures are right or you remember the exact method to call on a given class or whatever; so long as I can tell what you're trying to make the program do. I have to look basic stuff up online every day anyway because nobody can remember it all, I'm not going to knock a candidate for that.
Other than basic filtering questions so I can see if someone is trying to fake their way through an interview, I never ask functional specifics. Even then it's usually just to make sure they at least basically know everything they claim to on their resume - if you don't claim to know JS, I'm not going to ask you about what bind() does, but if you rate yourself a 10/10 JS expert, you should probably have a good answer.
Interviews should be about your thought process and how well you can solve real world problems, not trivia about how well you've memorized an API. I don't understand why so many other interviewers (Even at companies I've worked for) ask coding "gotchas" and reject candidates because they don't remember the semantics of some obscure language feature.
To be fair most of the interviewers seemed to work along these lines that you describe. (That's why I managed to get quite close quite a few times - I was never big on memory so it's impossible get the details on WB).
Yet, if the string of interviews is too long (and it is) the probability of hitting a "reef" is really big. And it seems that either you get a unanimous "yes" or you fail.
Unless Cryptocurrency is as easy and safe to get & spend as traditional currency, "everybody uses cryptocurrency" ain't gonna happen. If someone steals from my online bank, I'm insured against loss. If someone steals from my online crypto wallet account, I'm out of luck (and a ton of money).
(insert "it's your fault for trusting other companies with your wallet!" comment from the crypto kiddies here)
Keeping your crypto wallet in off-network storage and having to dig it out to spend money or whatever is the digital equivalent of keeping stacks of cash under your mattress. Does it work for some people? Sure. But don't pretend it's what the average person wants to do.
We don't know how bad this will be which is exactly why we're acting like it's going to be bad - assuming that it'll be fine is irresponsible at a time like this.
And the worst part is, assuming it works and the epidemic curve is flattened out, people will still see this as "proof" that it wasn't necessary.
The problem is that failing now empowers Wal-Mart, Amazon, and Steam. There are no small chains that can seize the opportunity to fill the void. We're going to end up with defacto monopolies I think; maybe only Walmart for people to get new physical games.
I don't think Gamestop really qualifies as a small chain. Besides, the retail market for games will be dead here before too long, everything's going digital. It won't be Steam and Amazon, it'll be Steam and Sony and Microsoft and Epic.
Actually I think at this point there are more competitors in the digital space than physical...
"You were instructed to keep the store open, but were unable to perform your job-required duties because you got arrested attempting to do so, therefore you are fired. Request to pay your legal fees is denied."
What's that? Is that a thing people have in US? I'm honestly curious, never heard of such a thing, outside of a context of mortage insurance which can cover you temporarily if you lose your job.
i remember reading about this technology being developed in scientific american, mid 80s. there was an uproar as the suggestion was that fruit or vegetables could be engineered to carry a vaccine, it was about 2002 when i first heard serious consideration of such a product from a small laboratory in southern ontario. It was a wild ride.
I've used both Java and Node professionally, and have in the past few years made recommendations for new projects to be started in both Java and Node depending on their unique requirements. I've even worked on projects migrating existing systems both from Java to Node, and Node to Java.
That said, I do strongly believe that Node is better suited as a language for web-scale projects that deal more with asynchronous requests (such as to DBs and APIs) than doing heavy data crunching themselves. If you need heavy data crunching, Java might be better for you, and there are a lot more available frameworks.
If you're looking for a job specific recommendation, it sounds like that might be partly regional. If you can't find Node jobs in your area, then maybe picking up Java is the right answer for you.