Uh yeah probably shouldn't jump into the tiny Linux debate, but I recommend looking into Rich Shingledecker's attitude towards desktop distribution bloat even on versions considered "tiny" vs the 6 to 12 MB distro that he turned into Core Linux. Divergent philosophies, and I found it best to leave the desktop world behind when approaching Linux education. Best not to confuse what's being worked on to compete with iOS, Android, OS X and Windows with the education that will serve you best on servers and embedded systems. Even Puppy and SliTaz are large-ish desktop versions of Linux in comparison.
"Code for life" is a big part of my philosophy. Over the years, I've found that one of the biggest obstacles was code-loss due to various causes, not the least of which is just losing interest and forgetting where everything is.
The only defense against this seems to be the two-fold approach of getting your code into more than one place, and being able to rapidly reproduce your code execution environment. For getting it into more than one place, I take many lines of defense: making Levinux so small that it's easy to copy, partitioning the hard drives so that syncing an entire virtual machine over Dropbox is still fast and efficient... and finally, distributed version control.
I've found in my work with git and Mercurial, workflow is totally transformed always for the better. And while neither git or vim are technically part of the code execution stack, they are both fundamental to what I'm trying to teach. I'm taking some creative license in how I define a stack :-)
Believe it or not, I considered Minix for this project, as I did BSD and BareMetal OS. In the end, "some Linux" won, and at this time only Tiny Core Linux roughly estimates the ease of a Debian-like repository system to support server-building scripts, while still being a minute distro (under 10MB without the Levinux parts) and not being a hard drive install while still offering persistence... well, the list goes on. It was a very tall order I was trying to fill, and at the time, the QEMU+Tiny Core Linux combo nicely fits the bill.
I'd also propose that the motivation is that some sort of short stack will be all that's available on the tiny embedded processors that are being increasingly built into things. If you want to get under the hood, you're going to have to be able to connect by terminal or serially. Not everything has a screen or keyboard, and this more primitive way of working is a lowest common denominator. It also doesn't hurt that it is a viable approach on bigger hardware and the cloud as well. Back to the Swiss Army Knife analogy.
Hi. Levinux creator here. More modern platforms will always offer developers speed-to-productivity advantage, but the platforms themselves are constantly moving targets. If you invest yourself wholly into them, you're caught in the cycle of what Joel Spolsky calls fire-and-motion. But if you also learn a good terminal-oriented old-skool in a way that will work on most (but not all) embedded systems, you'll always have a fallback plan. The short stack is ideally Unix, C, a ubiquitous text editor, and the compiler tool chain. But we're not in an ideal world and I want it to be approachable by newbies. So, Python comes before C for the sake of positive initial experience and movement towards C, and vim is the text editor choice because of the ubiquity. I know tons of arguments can be made different ways, so I'm making a my flavor of Levinux, then making it as spinnable in different ways as possible. Forth versions should be no problem, and I anticipate a node-oriented version and such. But time and imagination constrained as I am, I'll be focusing my tutorials and server recipes on my idea of an newbie-accessible short stack.
Wouldn't it make sense for levinux to ship with a C compiler then? It wouldn't make much difference to the file size and would let people start with C if they wanted to.
(Please correct me if I'm wrong - I just started levinux, ran the initial download, then sshed in and tried 'cc', 'gcc', 'clang', and 'tcc' before giving up).
The distribution zip is under 20MB. Even with vim, git and Python, it's still just 60MB. The GNU toolchain pushes it much larger, and it's not part of the early education curriculum I'm proposing. C compiling is something I'll be working people to after several positive experiences with Python. Also, it's just one repository command away from being installed, so I figure I'll add it as one of those menu options that you get presented with after startup.
Hi, Mike Levin here. Sorry, can't help following my Referrers (HitTail habits die hard). The "knowing where to start" problem is exactly what I'm trying to address with Levinux. Something I didn't get into in the interview was how I actually started out on the Amiga computer, and had the carpet pulled out from under me, and then moved to Active Server Pages in Windows, and again had the carpet pulled out from under me. The short stack is a fool me twice, shame on me reaction to the state of dev-tech. If not your main dev platform, then at least a safety net.