Looks like you can build almost everything with JavaScript from web apps, mobile apps with React Native and now with Electron.js we can build desktop apps too. What's your opinion on this?
What's your definition of "must learn?" Personally, I believe that to study JavaScript is also essentially to study web anthropology—it's incredibly useful for understanding the tech culture of today, regardless of whether you personally program for the web.
As a language that started client-side and expanded far beyond that, JS has become uniquely accessible to both sides of the experience graph as it's become more complex and multi-paradigm. Largely owing to its user base containing so many semi-technical professionals, the language has evolved specifically to provide simple APIs for all the most common paradigms.
Simultaneously, that is its biggest pitfall, from my perspective as someone who spends a ton of time mentoring newbies: it's so multi-paradigm that it's easy for an unexperienced developer to accidentally code using the worst features of each paradigm simultaneously, instead of the best.
On top of all that, the JS open source community is particularly diverse and interesting, what with the incredible versatility of the language.
So, yeah, just wanted to call attention to the fact that there's a ton to be learned from JS that doesn't even necessarily have to do with using it to code a thing. Whether that's relevant to your needs is your call. ;)
Is a shovel a must when you want to build now adays?
Well, it depends on the job. Probably not for a treehouse, but definitely for installing underground wiring and pipes.
It's the same way with languages. I laugh when I hear people asking about "What's the best language?" There really should be no plan to how you learn languages other than: What task needs to get done, and which language has the best support to solve that task?" The only exception to this in my book is when someone is so new that they just pick whatever language they can understand or learn at the time... This is the initial hurdle phase and in this instance, by all means, pick your "favorite" one.
For web development, JavaScript is a must. This is a fact right now. If you're a back-end developer and you know no JavaScript, I don't want to work anywhere near you because that means you don't care enough about your job to educate yourself on the tools necessary.
If your a front-end developer, well, I'm not even going to address that because that's obvious.
I will say though that people are often surprised at what can be accomplished with just HTML/CSS at times. I remember I made an entire form validation system using just CSS, and it worked like a charm (ofc I had a back-end one too, but no JS).
I'm not a JS fanboy at all, and in fact, I feel that the JS community is lacking in a lot of areas because from my experience many people who I've known who knew JS seemed to worship it... And generally, when someone worships their tool(s), that's a bad sign.
That said, JS is definitely a must if you're doing web, hands down. If you don't know this, Go get your hands dirty for a while and you'll soon see what I mean. Even PHP applications, Wordpress, C#, etc... All use JS.
It depends on your field. If you want to develop web applications, or anything related to that, then JavaScript is a must.
javascript is everywhere on the net and on the client and server. It has always been around.
if you're going the web dev route:
JS['fundamentals', 'Shiny New Buzzword Framework/Library'],Node,Mongo || Python __ or Ruby if you're nasty. :D
I'm an ecma fanboy since '98 so not really obvious. But now in '17, ecma (or js...) is, in my mind, a basic knowledge for a good start in many developments and projects in both platforms.
One thing is certain - JavaScript is eating the world. Every website - big or small, is using JavaScript. It was and still is the language of the Web. And because HTML5 as a standard is evolving with supersonic speed, more and more companies are embracing it. Take for example the gaming industry. Companies like Riot, NCSoft, Blizzard, EA, to name a few, are using HTML5 (HTML, CSS and JavaScript) for their game UIs. The reason - JavaScript is great for UI interaction and presentation. It's powerful enough to meet the needs of almost all companies and industries.
But JavaScript is not the almighty, use-for-everything and everywhere language. Like most of the people will tell you - use the right tools for the right job. Are you going for low level programming? Well, JavaScript in not even near to languages like C or C++. Looking for performance wise mobile application, where millions of users will interact with different parts of the app simultaneously? Swift/Object-C and Java would probably be a better choice than NativeScript, Ionic or Cordova.
Although I wouldn't use the word "must", I would still advice you to learn JavaScript, even if you are not going to use if extensively. Sooner or later you will encounter a piece of code written in JavaScript. That is inevitable. But don't stop there. Learn Ruby and understand how it handles Object Oriented Programming. Learn Haskell and see why more and more developers are embracing the functional programming paradigms. Try C++ or Rust to see the power and performance they have.
The more languages you know, the broader perspectives you will have about solving different problems.
It's at the top but it depends. For the web, yes. For IoT, yes. For low-level hardware, hopefully never. For me it's all about C, Javascript, and Python.
I won't comment for software developers, as I'm sure there are plenty of options other than JavaScript for that type of work. This comment is specifically for designers and web developers who work on websites and web apps:
Five years ago I would have said: "There is enough room in web development for designers who don't know code at all, people who only know HTML/CSS, and people who can use JavaScript to find work" but I'm not sure that's as true today as it was then. When I look at the market today, what I see is that if you're doing anything in browser, you need to be familiar with JavaScript.
JavaScript is the language of the browser. It was designed to work in the browser, and it does some pretty amazing things there. I think it will be increasingly hard for anybody who doesn't know JavaScript to keep finding work in web design & development, even if previously you only used Photoshop, or previously you only did HTML/CSS. It's not going to be enough in the market of today and tomorrow.
Personally I've been taking this advice to heart. 3 years ago I couldn't really do much with JavaScript on my own, but I've been focusing a lot of energy on trying to learn enough JavaScript to stay employed. Workers who don't pick up JavaScript soon may find their work options disappearing in the near future.
On the plus side, JavaScript is an easy language to learn, even if it's your first real programming language, and because you can write and test it in any browser, any time you have your smartphone, a tablet, a computer - basically anything with a web browser, you can be coding and testing JavaScript.
For example, right now, go up to your address bar and type:
javascript:alert( new Date() )
You'll see the current date and time displayed in an alert box. That's using JavaScript! Another way you can use it is as a calculator, right from any address bar:
javascript:alert(24 / 4)
I am going to say it's a must if you aspire to be a full stack engineer. You are definitely going to miss out on a lot if you don't get on the javascript bandwagon. Also, in my humble opinion, Javascript is to the web, what English is to the world.
As a rule, I'd want to know one client-side language and one server-side. With Node, JavaScript blurs those lines. But as others have said, it depends entirely what you're wanting to do.
Pretty much anything web-based, you won't go wrong knowing JavaScript. And even knowing a little will mean that you've a better understanding of what those jQuery libraries you're importing all over the show are doing for you - and how you can make them work more to your advantage.
Away from the web/desktop/etc, knowing JavaScript would help you with Node-based things, Tessel, that sort of lovely kit. But not a lot more that I can think of right now.
The big advantage of knowing any programming language is that it gives you a better idea of what most other languages are up to when you sit down and try to learn them. You're already thinking like a programmer. Unless it's WhiteSpace or some similar esoteric wonder, in which case all bets are off.
So, must-learn? No. Useful? Definitely. No knowledge is ever wasted.
If I just want to learn only one language for all of my life. I would pick JavaScript.
If two, I will choose Python and JavaScript.
If three, I will choose Rust, Python and JavaScript.
Definitely not a must. As always, it depends on what you want to do. If you want to program micro processors, you could do that with JS, but you are better off with a system language, like C or Rust. If you go into the industry and do I4.0 development, it's quite likely you will need ABAP (though SAP also uses JS for certain front-end stuff, like UI5, these days). Let's take number-crunching algorithms and machine learning. Forget about JS, you will have to go for a language which is actually good at processing.
JS is awesome when used for what it was intended for: UI and user interaction. It is great for IO and asynchronous tasks, but it will always fail when you need the power to calculate stuff. That's also the exact reason why we will get WebAssembly, which could introduce new features allowing us to create powerful number-crunchers for the web (for example a physics engine for a web game). WebAssembly, however, will not be written in JS. People will use Rust, C/C++ and other languages.
So should you learn JS? Probably, since it is a very universal language perfect for human interaction. Is it a must? No, in no way! Always use the best tool for the job!
"Learn single language build everything". Lets suppose you want to become mobile app developer and back-end as well. So should have following..
1-java (Front-end)
2-xml (Front-end)
3-Swift/Objective-C (Front-end)
4-php/node (Back-end).
5-mysql,json/NoSql (Back-end).
But If you have knowledge of JavaScript this is enough for all kind of development. React-native/Ionic/Node/NoSql/JSON all is the form of JavaScript.
Not really a "must", it really depends on what one wants to do. Low-level stuff (firmware, OSs), machine learning, data analysis, DBA, etc, are just some of the fields where JavaScript is almost completely unheard of.
From the platforms where JavaScript is actually used, the only one where it's a "must" is frontend web, for obvious reasons*. In web backend there are many alternatives and, in mobile, JS plays second fiddle to Java and Objective c/swift.
The desktop is a funny story, Gnome shell has been around for a lot longer than electron, and it's a better example of how well js can perform. That said, JS is still a rare presence there; could become more popular, though.
*And even there, transpilers are a thing, making supersets of JS viable options. WebAssembly can potentially make any other language an alternative as well.
Ara Melayn
full-stack engineer & autistic polymath — into JS, FP, AI
Software Engineer, Technical Consultant & Mentor
I'm not sure what area you work in but machine learning, data analysis, and DBA all frequently use javascript. Just google machine learning / data analysis / DBA + javascript. The data has to come from somewhere and js is frequently the way to interact with that data as well as display it.
I agree with your statements about the backend and desktop though.
Aboubkr Gasmi
devops, JavaScript, EmberJs, NodeJS
If you develop for the web or anything related, definitely YES, otherwise ! I personally don't see any reason not to learn JavaScript !