Follow

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

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

Show thread

@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

Show thread

@eliasr Scratch is aimed at children.

Bash would be as confusing and frustrating as it is for me, and I have used it for more than a quarter of a century.

#scratch #bash

@eliasr I really love #Python because it has a nice standard libary with a lot of goodies. Because of that, it is well documented and you can build nice things without even depending on 100 of packages like #NodeJS

@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)
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 @eliasr javascript. yes, I know, everyone hates it. whatever. browsers ship with a built in IDE at this point. you can literally just point and click and your source code runs

@eliasr, I’d go with the uncanon Snap! It might look childish but it’s actually a full-fledged language for event-driven and functional 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.

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml