Mainly:
> Certainly things like I/O are still problematic for the novice programmer in these languages.
Poor I/O basically killed my interest in programming in most languages when I was a novice. BASIC was great for this. QuickBasic was, and probably still is king. People new to programming want to do fun stuff, and it's very hard to do without I/O. Me and most of my peers spent a fair amount of their hobby programming writing very simple games, or doing fun graphics stuff (drawing lines, circles, etc).
After doing this for a while in BASIC and QB, "serious" languages like C/C++ were pure Hell. I could literally do none of the cool things I used to with only a rudimentary command of the language. Did not know about Perl/Python until much later.
In my opinion, if you want learning languages to be fun, provide one where:
- Text I/O are no-brainers
- You can easily respond to keypresses (i.e. detecting if a button was pressed and not having to wait till the user hits Enter).
- Rudimentary graphics: Plotting a point, drawing a line and circle. Coloring it as desired.
- Easy way to generate random numbers.
Teach people these things, and they can have a lot of fun with loops, conditionals, and functions.
https://play.rust-lang.org/?code=fn%20main()%20%7B%0Amatch%2...