Suppose that a child, about 10 years old, is about to start playing around with programming. Which language would be good to start with? Please explain why in comments.
@cnx @roboneko @residuum @bonifartius @dylanvanassche @farnerup
I would like the feeling to be "wow, now I Just learned how to use an if-statement! And I can nest them! Wow, I can do so much with this!"
Having said that, I will look closer at Scratch and Snap and similar. Admittedly, I don't know them and it's very possible that I was above just arguing against them to avoid having to learn something new myself. 🙂
2/2
@eliasr
not python. it has a nice flat learning curve for the first few things and then becomes hell. the ecosystem is shit, you get errors for combining spaces and tabs, etc. those are things which seem completely bullshit and increase the "computers are magic" feel.
bash is better but maybe a bit crazy? on the other hand there are nice things like heredocs which are pretty useful. the idiom of piping things around and combining small tools is something nice to learn.
maybe TCL? it got Tk going for it. Tkinter in python just doesn't cut it, it's too complicated and crufty. kids like to see something graphical. TCL is pretty arcane though.
maybe something from the pascal family? wirth had good ideas for languages _and_ pedagogy. at least you'd have a sane language the kids learn then, without cruft and accumulated hacks like python.
mainstream languages are just horrible for this.
@eliasr I would go with Scratch as a beginners programming language, because it teaches logic and basic concepts without the need to switch between the meaning of words in everyday life and programming (and other things like syntax, brackets and/or indentation)
https://scratch.mit.edu/
If I had to choose between python and bash, then python would be my choice, because it will be easier to get simple GUIs, which is what most people will think of as "real bad-ass programming".
@eliasr @cnx @roboneko @residuum @bonifartius @dylanvanassche I think it is important for the first programming language not to have too many features. E.g. basic is a terrible language for doing serious development, but I could learn it in a day and then I felt like I was only limited by my imagination.
You get a taste of what programming is like and then move on to a "real" programming language.
@cnx
@roboneko
@residuum
@bonifartius
@dylanvanassche
@farnerup
Thanks for all the suggestions!
Scratch and Snap are interesting but there is something making me skeptical to things with lots of graphics. Very possible that this is just me being old-fashioned but my feeling is anyway that, I fear that too much "wow, cool colourful explosions on my screen, I want more of that!" risks taking focus from the programming itself.
I mean, programming is not actually about graphics.
1/2