I like the idea of a lightweight programming language/environment dedicated to entry level learners. Perhaps what would also be interesting is having a basic-esq L/E for whatever programming paradigm that is useful (procedural, oop, functional, etc.)
The "about" book implies that you should have some experience in programming language first. However, there still exists something called qbasic, however, to replace the old gwbasic from days of old.
EDIT: passage from book/site:
"As far as programming skills, we assume you have had some exposure to computer programming using some language. If that language is Small Basic, great!! We offer two beginning Small Basic tutorials that could help you gain that exposure (see our website for details). But, if you’ve ever programmed in any language (Visual Basic, C, C++, C#, Java, J#, Ada, even FORTRAN), you should be able to follow what’s going on."
I have taught JS in higher education to complete beginners for three years now and have been very successful doing so. The secret is that you teach how to program, not how to JavaScript.
How to program is entirely different. It involves breaking down problems, creating abstractions for those problems, and turning them into code. And JavaScript is the one language that gets out of your way and lets you create programs that give new learners immediate feedback in a web browser.
Python and Ruby are great and all, but this is 2015 and new students are not that interested in black and white terminal applications. JS and HTML make it easy to make things closer to what they experience.
People my age learned to program while playing text adventure games. People now want to make mobile games, XBox games, or, at least, web things. And JS makes that easy.
In full disclosure, I don't much like JS. But I know it quite well.
I agree with this sentiment. We don't need new, simpler languages to teach programming concepts; we just need a better approach to teaching. We don't skip teaching the English language to toddlers in favor of a simpler one. I learn "cat" before "encyclopedia" and "hungry" before "enlightened". Programming languages have similar levels of abstraction so one can start with basics and allow the growth/understanding/grok to come from exploring the depths of abstraction inherent within.
I think the intention here is to somehow reach a point where the understanding is complete. As if one can say "There, now I understand all of [insert programming language]." and tick off some item on their career progression or bucket list. It's simply not like that.
as a result of which I still (5 decades later) sometimes have to stop and think about the spelling of quite routine words. So I agree - toddlers get a subset with a restricted vocabulary and simple grammar but one that is actually a subset of English.
Now - if I wanted to learn enough Javascript/CSS/Canvas stuff to make a series of 'drag-gable diagrams' for use on an interactive whiteboard (e.g. area of trapezium or pythagoras' result) where shall I start? I have the head first book and I sort of like their approach.
I think if you want people to enjoy what you build, JS is probably the quickest route. And I think you see it being used in "intro" programming courses to teach middle school or high school kids for that reason -- it quickly shows something visual where platforms, dependencies, and complex libs have made that harder elsewhere.
It's unfortunate it's a mess of a language and evolving too rapidly.
GWBasic, QBasic, and later TI-Basic were some of my first major forays into software, and I worry a bit when there's not a super easy way to get a game out there - however simple, because those are great gateway drugs.
For BASIC, this meant easy access to graphics modes, and some basic "BEEP" and noise playing ability.
These were all installed by default -- something that's not true of most programming tools today (well not entirely, OS X does have them! But not game/graphics libs), and having the source code to things like gorillas and snake helped. Many people could discover them completely by accident and boom, you're a programmer!
And that's all you need.
JS has a bit more learning curve.
OT: I think the glossy production of games these days may also be a negative factor, for those that know they can take millions of dollars, people trying to reproduce this result at a young age (or even as older hobbyists) may get disllusioned, give up, and not build something.
Just as DevOps culture has encouraged sharing how tools works at meetups, I wish this happened more for indie/homebrewed game development.
Javascript is a mess even programmers don't seem to understand at times, I never understood why people would want to teach it to people without any programming knowledge.
Not sure about the jobs (3) thing. It's a bad idea to focus on language popularity when starting out programming, because that changes rapidly. Javascript has only been really popular in the last few years. Who knows what will be popular five years from now.
Learn to program. Don't worry so much about the language.
I think JS is perfect choice for first language. Sure, there are many rough edges and dark corners. On the other hand, it's fun, it's safe to experiment (because it's sandboxed), very easy to deploy and show friends, and it's quite usable language for all sorts of applications.
There are more elegant languages (lisp, lua, scala, python) but they fall short at some of mentioned points.
I don't think it's a perfect choice. I think it's a choice that makes it the "least bad" of a range of languages for a given set of assumptions and compromises. If I could waive a magic wand and make the perfect beginner language, it would not be JavaScript.
Having interviewed quite a number of self-proclaimed JavaScript developers over the course of my career, my experience is that this is debatable at best.