Firstly, apologies if this is the wrong forum for this idea; it's not so much about the language itself, but what surrounds it. If you have any ideas for better forums, please let me know. Also, if there is any work started on anything like this, let me know
Now to the idea:
PythonOS - a (likely linux-based) OS built specifically for python.
I've been working in the education space as well as with embedded systems for quite a few years, and am really excited about tiny affordable standalone computing devices as a computing and science educational tool. At the moment however, there are two options for python in this space:
- micropython, which, despite its awesomeness, lacks many library possibilities, doesn't have a debugger, and is restricted to a handful of devices. The learning curve for getting this up and running can be quite steep
- A full linux setup on an SBC - let's take the raspberry pi. This has access to (just about) everything, but beyond just programming the python code, you need to have some (basic) system administration training to get it running. For someone new to programming, this can be quite intimidating (recent developments with drag-and-drop Pi configuration notwithstanding).
In the latter category, there seems to be a lot of newer, cheaper hardware appearing - for example the Pi Zero, C.H.I.P and VoCore2, and these are already at very affordable price point; I think that before long the rationale for micropython will be lost, and $2 hardware will be running a fully capable linux setup. However, micropython has the advantage of simplicity. Upload main.py, and press reset. That's it.
My proposal is a Linux distribution that has the simplicity of micropython, but the power of full python. Drop a file (let's call it main.py) on an SD card from your laptop, plug it into the device, and it boots and runs that file straight away. Or drop an entire project. If the device has USB device capabilities, then just drag the file across, or even edit it live. Easy SSH setup could allow more advanced users remote development and debugging options. Maybe jupyter could be leveraged to provide other network-based dev options (
pynq already has a working linux distro like this). Connecting to a console would give you a python prompt.
Ideally, key OS functions should be able to be controlled from within python, so that the user never has to leave the python prompt. For a start, things like network config, and possibly cron.
What do you think? I'm not in a state to do all of this myself, but could give it a start if there is interest in the concept.