Live data from Hacker News

A Modern Programming Operating System

slakinski.com

11–20 of 34 posts

Re: A Modern Programming Operating System

#11
post #6

What's wrong with learning kids Shell scripting? I think most Unix-like OS's are good for learning, behind the complex layers of abstractions lay the simple command line. Excellent for programming without any distraction.

What's wrong with learning kids Shell scripting?

Assuming you mean bash-like shells on Unix boxes, quite a few things:

1. Commands have arbitrary, hard-to-remember names.

2. Destructive commands tend not to issue warnings.

3. Mass destructive commands still tend not to issue warnings.

4. Did I mention that destructive commands don't tend to issue warnings?

5. Destructive commands typically can't be undone.

A system where you can do a lot of permanent damage without warning and where the names of things are mostly guesswork is a terrible environment for experimentation, and experimentation is often the best way to learn a new technology.

Re: A Modern Programming Operating System

#13
I have similar fond memories of using Acorn and Sinclair systems when I was younger: turn it on and start hacking away.

Of course, in those days, everything was simpler, and for all the benefits that the modern, heterogeneous technology landscape offers us, I do think we’ve lost something by trying to make everything do everything for everyone while talking to everything else.

The people best placed to fix that are the ones who control both the hardware and the software foundation running on it, but sadly, the most obvious examples like Apple and the games console makers seem to want just about the most locked-down, developer-hostile environments in computing history.

That all said, today’s kids have the benefits of the Internet and the vast potential it offers for teaching, learning, sharing and collaborating, all on a scale we couldn’t even dream of when I was first learning to program. I wonder whether that ecosystem combined with recent hardware developments like the Raspberry Pi might offer enthusiastic youngsters a very different experience but one that ultimately encourages their interest as well or better than what we had in my generation.

Re: A Modern Programming Operating System

#14
post #6

What's wrong with learning kids Shell scripting? I think most Unix-like OS's are good for learning, behind the complex layers of abstractions lay the simple command line. Excellent for programming without any distraction.

What's wrong with learning kids Shell scripting? Assuming you mean bash-like shells on Unix boxes, quite a few things: 1. Commands have arbitrary, hard-to-remember names. 2. Destructive commands tend not to issue warnings. 3. Mass destructive commands still tend not to issue warnings. 4. Did I mention that destructive commands don't tend to issue warnings? 5. Destructive commands typically can't be undone. A system w…

To be fair, Python's shutil.rmtree() won't give you any warnings either. Nor will any other programming language that I know of.

And there's a limit on your ability to destroy stuff if you're not running as root.

Re: A Modern Programming Operating System

#15
post #6

What's wrong with learning kids Shell scripting? I think most Unix-like OS's are good for learning, behind the complex layers of abstractions lay the simple command line. Excellent for programming without any distraction.

What's wrong with learning kids Shell scripting? Assuming you mean bash-like shells on Unix boxes, quite a few things: 1. Commands have arbitrary, hard-to-remember names. 2. Destructive commands tend not to issue warnings. 3. Mass destructive commands still tend not to issue warnings. 4. Did I mention that destructive commands don't tend to issue warnings? 5. Destructive commands typically can't be undone. A system w…

I meant that you should setup a simple environment, setting up a partition and chroot into it. Learn the kid to use man(1) and ed(1) and after that let him/her play around. I heard someone doing this with his 5 year old kid on the OpenBSD mailing-list, that kid will probably be able to write quite useful scripts in a few years.

Re: A Modern Programming Operating System

#16

Earlier quoted context omitted.

What's wrong with learning kids Shell scripting? Assuming you mean bash-like shells on Unix boxes, quite a few things: 1. Commands have arbitrary, hard-to-remember names. 2. Destructive commands tend not to issue warnings. 3. Mass destructive commands still tend not to issue warnings. 4. Did I mention that destructive commands don't tend to issue warnings? 5. Destructive commands typically can't be undone. A system w…

To be fair, Python's shutil.rmtree() won't give you any warnings either. Nor will any other programming language that I know of. And there's a limit on your ability to destroy stuff if you're not running as root.

To be fair, Python's shutil.rmtree() won't give you any warnings either.

Sure, and that's why I don't think modern general-purpose programming languages like Python are a particularly good substitute for the BASICs of old as a default environment.

If the idea is to encourage kids to learn more about the technology they're using, one of the most basic requirements is a safe system they can use without any danger of causing serious damage.

And there's a limit on your ability to destroy stuff if you're not running as root.

That assumes your system has a concept of root, which in turn assumes your system has a concept of users at all and a robust security model. I'm not sure any of those things is necessary, or even desirable, for the kind of system we're thinking about here. I think the correct requirement is "User can not cause any permanent damage", and if things like Linux or Windows or Python or Ruby can't meet that requirement, then they simply aren't the tools we're looking for in this particular context.

Re: A Modern Programming Operating System

#17
post #3

Instead of vanilla Python shell, I'd use IPython instead. It has all the run/save/load stuff you mention, and tons of other things to make Python nicer to use interactively. IPython also has Qt-based console, which has the ability to display rich content inline. I think the ability to interact with graphical subsystems is important, look at C64 demoscene to see what idle kids can do with even with primitive graphics…

booting into an IPython QT shell in full screen, with a custom help message explaining how to save hunks of code to file, would be great. Being able to Alt+Tab to a browser (even one pointing at a local copy of the python and ipython docs) would be essential, though.

Re: A Modern Programming Operating System

#18
Biggest problem for this issue today is: kids don't know what a command line is, and are unfamiliar with the classic "terminal" interface.

When teaching an intro to programming, my curriculum still uses this "command shell" form. Of late, nigh unto no students have seen it, and I have to teach it as a new concept - a problem as it's more obsolete than new. Soon we'll have to give up on it as a starting point, saving it for more advanced students. GUIs rule now; beginners don't grok a text prompt.

Re: A Modern Programming Operating System

#20

Earlier quoted context omitted.

To be fair, Python's shutil.rmtree() won't give you any warnings either. Nor will any other programming language that I know of. And there's a limit on your ability to destroy stuff if you're not running as root.

To be fair, Python's shutil.rmtree() won't give you any warnings either. Sure, and that's why I don't think modern general-purpose programming languages like Python are a particularly good substitute for the BASICs of old as a default environment. If the idea is to encourage kids to learn more about the technology they're using, one of the most basic requirements is a safe system they can use without any danger of ca…

You could just set up an isolated system with nothing you care about holding onto for them. Destructive commands would, at worst, require a full wipe and re-image and probably a short conversation about what the fuck just happened.
Post reply on HN