Family man, musician, illustrator, software developer, and Microsoft MVP living in North GA. Runs on a high-octane mixture of caffeine and JavaScript, and is made entirely of bacon.
I can't argue those are real challenges in the JavaScript ecosystem. I submit Node.js provides an environment with most, if not all, of those important features.
Regardless, I believe the language, itself, is easy to learn. You don't need a compiler or special tools. You can use your own browser, or one of the many online editors, such as JSFiddle.
My 11-year-old son is learning JavaScript/Node.js and PHP. He's having a blast learning core programming concepts, while blissfully unaware of all the complexities that exist.
Yes, I believe JavaScript is a good place to start. And, there are many other languages that are a good place to start, too :)
Your son isn't a valid argument. He's doing fine because he has a Javascript programmer showing him the way. Most people, even adults, don't have that.
I feel like Javascript is too quirky to be a learning language, but I do consoder Async a very important concept that other languages such as Java and Python don't have at their core.
So yeha, Javascript is great if you have someone that already understands those quirks to guide you.
Im just some random 16 yr old guy from the internet, and ive started like 2 and something years ago. Js was a very easy to learn lang (without someone teaching me / paid courses) , just by googling "how to do x in js", i know this doesnt happen for everyone, just sharing my learning story thing:)
If using javascript in a specific environment and in a procedural manner, then yes, it's as good a place as any to start. But you will hit a ceiling, and once you have a desire to do more, you'll inevitably run into issues that overwhelm even experienced developers.
Also, the intent isn't to evangelize any particular language. I would easily recommend languages that I'm not fond of to beginner programmers—PHP, Python, or Ruby—over javascript. The concepts learned from these languages will apply more generally to others, while also being generally more sane.
With all that being said, the world still needs javascript developers, so learning it is not without merit. It's more a question of whether or not it's a good introduction to programming, which is where I suppose we disagree.
The point was to "introduce programing", not the dificulties of becoming an expert on it: "but you will hit a ceiling".
JS is so easy to use for a beginner, that you can invoke a repl with a hotkey 80% of the time, and test core programing concepts with lots of variations.
I absolutely hate PHP's syntax and standards, and for a beginner it doesn't just look daunting with all the $ signs, but visually it looks quite ugly.
"But you will hit a ceiling, and once you have a desire to do more, you'll inevitably run into issues that overwhelm even experienced developers."
Used to be true, but it isn't anymore with ES6. I am yet to run into any ceilings or issues and I've been using it to develop extremely complex systems with large code bases.
Bar none, it is my number 1 choice for introduction to programming. Nothing comes close in terms of user-friendliness and ease of use.
Opening a browser console and typing "x=2+3" and getting an immediate response with any complications allows for an easy introduction to programming concepts without showing the student a bunch of class declarations and voids everywhere and asking them to ignore it for now.
If you could teach someone programming entirely in a browser console window, you may have a point. But you can't. Eventually, you will end up having to explain the many intuitive javascript quirks that have built up over the years. Including with ES6.
New developers will marvel at the simplicity and ease-of-use of javascript while they struggle to understand why this doesn't refer to the thing they expect it to, depending on the syntax they use to declare a function.
I dont think your "this" example is viable since every language has its parts which seem normal to everyone except begginers (like how a lot of starters i know asked me why 9 / 2 equals 4 when they try to do some random stuff in python).
Also, i think most people start wondering about what "this" means after they learned the basics (at least i did, idk about others)
I think almost any popular language is okay for starters, and just saying one of them isnt because of some quirks doesnt make that much sense since u can sya that about any other:)
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
I can't argue those are real challenges in the JavaScript ecosystem. I submit Node.js provides an environment with most, if not all, of those important features.
Regardless, I believe the language, itself, is easy to learn. You don't need a compiler or special tools. You can use your own browser, or one of the many online editors, such as JSFiddle.
My 11-year-old son is learning JavaScript/Node.js and PHP. He's having a blast learning core programming concepts, while blissfully unaware of all the complexities that exist.
Yes, I believe JavaScript is a good place to start. And, there are many other languages that are a good place to start, too :)
Your son isn't a valid argument. He's doing fine because he has a Javascript programmer showing him the way. Most people, even adults, don't have that.
I feel like Javascript is too quirky to be a learning language, but I do consoder Async a very important concept that other languages such as Java and Python don't have at their core.
So yeha, Javascript is great if you have someone that already understands those quirks to guide you.
Im just some random 16 yr old guy from the internet, and ive started like 2 and something years ago. Js was a very easy to learn lang (without someone teaching me / paid courses) , just by googling "how to do x in js", i know this doesnt happen for everyone, just sharing my learning story thing:)
If using javascript in a specific environment and in a procedural manner, then yes, it's as good a place as any to start. But you will hit a ceiling, and once you have a desire to do more, you'll inevitably run into issues that overwhelm even experienced developers.
Also, the intent isn't to evangelize any particular language. I would easily recommend languages that I'm not fond of to beginner programmers—PHP, Python, or Ruby—over javascript. The concepts learned from these languages will apply more generally to others, while also being generally more sane.
With all that being said, the world still needs javascript developers, so learning it is not without merit. It's more a question of whether or not it's a good introduction to programming, which is where I suppose we disagree.
The point was to "introduce programing", not the dificulties of becoming an expert on it: "but you will hit a ceiling".
JS is so easy to use for a beginner, that you can invoke a repl with a hotkey 80% of the time, and test core programing concepts with lots of variations.
I absolutely hate PHP's syntax and standards, and for a beginner it doesn't just look daunting with all the $ signs, but visually it looks quite ugly.
"But you will hit a ceiling, and once you have a desire to do more, you'll inevitably run into issues that overwhelm even experienced developers."
Used to be true, but it isn't anymore with ES6. I am yet to run into any ceilings or issues and I've been using it to develop extremely complex systems with large code bases.
Bar none, it is my number 1 choice for introduction to programming. Nothing comes close in terms of user-friendliness and ease of use.
Opening a browser console and typing "x=2+3" and getting an immediate response with any complications allows for an easy introduction to programming concepts without showing the student a bunch of class declarations and voids everywhere and asking them to ignore it for now.
If you could teach someone programming entirely in a browser console window, you may have a point. But you can't. Eventually, you will end up having to explain the many intuitive javascript quirks that have built up over the years. Including with ES6.
New developers will marvel at the simplicity and ease-of-use of javascript while they struggle to understand why
this
doesn't refer to the thing they expect it to, depending on the syntax they use to declare a function.I dont think your "this" example is viable since every language has its parts which seem normal to everyone except begginers (like how a lot of starters i know asked me why 9 / 2 equals 4 when they try to do some random stuff in python).
Also, i think most people start wondering about what "this" means after they learned the basics (at least i did, idk about others)
I think almost any popular language is okay for starters, and just saying one of them isnt because of some quirks doesnt make that much sense since u can sya that about any other:)