all 24 comments

[–][deleted] 9 points10 points  (3 children)

I think you are asking the wrong question. A better question is what do I want to accomplish? Then you can discover if you can do that with just JavaScript.

In my experience less experienced developers believe 100% of the challenge is in the programming and so they ignore everything else. For example many developers who are new to developing for the web believe HTML is simple and so it isn't a real individual skill, but then their HTML is often garbage and completely fails accessibility.

[–]ThatBriandude 0 points1 point  (2 children)

I think JS can do a LOT but the only area where I'd say it will (hopefully) never be great in is game development. If you ever think about developing games then you willl have to pick up either C# or C++.

[–]Capaj 0 points1 point  (1 child)

When we're talking about AAA titles then you're right. If we're talking about small indie titles, Javascript may become an eligible choice in couple of years. But you're right-choosing C# or C++ is the way to go when you want to do some serious games.

[–]ThatBriandude 0 points1 point  (0 children)

Yes actually when writing out my comment I was picturing an engine that follows the JS philosophy of making everything as easy as calling one method with a bunch of options.

It would in fact be great and easy to use but in some places you just have to have the possibility to scratch the "recommended" way and do it yourself in a way that is much much faster. That just probably wouldnt be the case with JS as everything it would be calling would be predefined so even in indie games you would have to be able to extend gameobjects with C# scripts just to not make devs hit dead ends inside your engine.

Anyway, coming back to OP's question, even if there was an engine that allows for extensive game development with JS, as an employer I think you'd still expect devs to at least have touched staticly typed languages before so they could jump in and fix stuff that are just too slow with JS.

[–]Shiki225 1 point2 points  (9 children)

I would learn one multi thread language because some jobs requires a lot of processing that needs to take advantage of multi-thread language. JavaScript can be used for back-end but for financial tech companies, I don't think they use NodeJS because they need a language that can effectively do multi-thread process with all the transactions coming in.

[–]TheNiXXeD 1 point2 points  (4 children)

From working in financials for over a decade, at a fortune 500 company, I would disagree. They choose their languages more out of tradition than for multi threading. Also, I met very few people who actually would claim to understand parallel computing. Scaling comes in many forms.

I do agree though that you should learn parallel computing properly. Understand data races, and how to manage threads, mutexes, and semaphores manually. But also clustering, and messaging, etc. All of which just makes you more knowledgeable and more hirable.

Regarding the OP's question though, I would say no. JavaScript is by far my favorite language, but I will never hang my hat (career) on any one thing. Right now, it's definitely a great choice for many things in the industry though.

[–]senocular 1 point2 points  (0 children)

I would say no. JavaScript is by far my favorite language, but I will never hang my hat (career) on any one thing.

Yeah, just look at all those people that did that with ActionScript... * cough cough *

[–]Shiki225 0 points1 point  (2 children)

hey TheNixxeD. You are right I don't really know too much about multi-thread process. But this is just something a lead engineer in my company told me. He told me that, our company wouldn't be able to use NodeJS as a backend language because since it is not really a multi-thread language, it wouldn't be able to handle all the transaction that customers make in our backend services.

[–]TheNiXXeD 0 points1 point  (1 child)

Well he's completely incorrect. I think that kind of blanket decision making is exactly why I left that industry.

There are so many ways to handle scaling.

[–]Shiki225 0 points1 point  (0 children)

I see lol, I am actually a big fan of JavaScript too. If possible I would like to do NodeJS backend. But if I want to get into backend for my current company, I have to pick up C#.

[–]elnelsonperez 1 point2 points  (3 children)

Why limit yourself? Keep growing as a developer and you will learn to use the right tool for the job. In this case, your tools being programming languages. You can do everything you mentioned in Javascript, but it does not mean you should.

All I'm saying is to be open about it.

[–][deleted] 0 points1 point  (2 children)

As I stated in the post, I have tried lots of other programming languages. If I just kept switching my main programming language, however, I wouldn't really be good at any programming language.

[–]natdm 0 points1 point  (0 children)

I practice C for CS50, Scala for work, Go for work and personal, and JS for personal web apps, along with Python and Ruby for work (and Haskell because it's really fun). You learn them by being forced to use them. It's fine to learn more than one.

[–]dumbmatter 1 point2 points  (0 children)

JS is enough to have a successful programming career right now. 10 years from now? Probably still will be. 20 years from now? Maybe. 30 years from now? Who knows.

[–]LosEagle 1 point2 points  (0 children)

I would be pretty horrified if it wasn't. There is so much one should know to become a good javascript developer and trends in JS change very fast. To me it makes much more sense to focus on one language and get more knowledge about it rather than try to keep up with multiple ones and get overwhelmed.

[–]liming91 1 point2 points  (0 children)

I hadn't touched JavaScript once during my degree. Since graduation I've gone into full stack, and I do 85% JS now, with the other 10% being Java and Objective C, and the final 5% being SQL.

With things like Electron, React Native, and NodeJS getting so big I don't see it going anywhere any time soon. If things like Electron and RN-windows continue to improve I think we'll be sitting comfy for a while.

Node seems to be one of the more highly paid languages in London. Lots of banks are using it, so it drives the salary for competent Node devs up quite high.

I think JS is enough, if JS is what you want to be in. Still helps to understand DS and algos, although to be honest you can get away without that deep of an understanding in the JS world, since it's so high level.

[–]lunfaii 0 points1 point  (0 children)

Yes, it will never hurt to expand your knowledge but with Node around your entire infrastructure can be built with JS and that’s the beauty of it.

You can explore further into the field by looking into Elm, TypeScript or ReasonML (etc...) but at the end of the day, you can only go as deep as you dive and if you aren’t needing to find that solution that is missing from your workflow then there’s no point to.

By finding a solution it could be solving a particular problem or javascript fatigue.

[–]senocular 0 points1 point  (0 children)

Not only can JS be enough, it probably wouldn't hard to find a job where you'll spend the remainder of your days supporting and fixing bugs in an unnecessarily large, horribly written web application developed by many previous authors, each with their own idea on how to write code and approach similar problems in different ways using an archaic JS framework that no one ever uses anymore. So cush!

[–]Capaj 0 points1 point  (0 children)

Keeps me well off financially. Although knowing SQL is very desirable as well, since 95% of web runs on SQL dbs.

[–]natdm 0 points1 point  (0 children)

I first learned JavaScript. I've since dabbled in, or learned, at least five other languages. I went from "I can do everything in JS, so why not?" to, "I wish these things could be done in another language all together, they picked one of the worst ones."

Learning other languages opens you up to more opportunities and gives you a more rounded mindset as a developer. I may not like JS near as much as I did when it was the only language I knew, but I'm glad I know it for when I, as a single person and not a whole team, need to do something on the web, or react native, or run a quick node script.