Guest matthew180 Posted January 28, 2011 Report Share Posted January 28, 2011 I learned to code way back in 1983 during the golden age of coin-op arcades and "personal computers", i.e. Apple, Commodore, TI, etc. There was something really fun about programming back then, very "magical" really, a sense of adventure and discovery. Computers these days just don't seem to capture that same feeling, and they are definitely harder to "get into programming" on. You have to understand an OS, filesystem, download an IDE, understand some complex graphics subsystem, etc. before you can even get something on the screen. Heck, I can't even get a machine configured for graphics and sound development in less that a few hours, and I have a good idea about what I'm doing. To me, it seems all that is a huge barrier to a lot of would-be programmers, or at least people who would like to just tinker a little. Back in "the day", the computers were instant-on, and if you didn't have a floppy disk in the drive, or a cartridge in the socket, then all the machines had BASIC in ROM and you would be dumped to the interpreter. So in a matter of seconds you could start programming a computer. No booting or waiting, no OS to get in your way, no libraries or IDEs to worry about, etc. For a while I have thought it would be cool to have a small (a few inches square), inexpensive computer platform that would have the qualities of those old computers, but modern specs. Kids (and adults ;-) ) could write their own programs, games, etc. and easily share them with others. There have been a few platforms that I was hoping would fill this niche, but for some reason or another they either died, or are too complicated like modern computers with graphical OSes. The MSX-One was such a platform. They sold out the first batch and I was on the waiting list for the second batch, but it never happened. Then there is the GP2X (and now Wiz), but like a modern computer, it is running Linux and you have to really know what you are doing to program on it. I suppose you could run a C64 emulator, but then you have the limitations of the original C64 to deal with. The "handheld" units are also very geared towards gamers, which is not bad, but not very accessible to those who want to learn to write their own programs. What I keep imagining is a small platform that has USB jacks for keyboard, mouse, controllers, thumb drives, etc., VGA, svideo, composite, and maybe HDMI video out, stereo headphone and line out, SD card slot, ethernet jack and wireless. The CPU would be a softcore in an FPGA, along with a video core and possibly an audio core. The networking, USB, and video distribution would be external chips. Main memory would be 4MB or so of SRAM, with nonvolatile storage being provided by SD cards and USB thumb drives. Since MP3 and sampled music is so popular, I'm thinking maybe a dedicated MP3 chip too? But there also needs to be an old-school programmable sound generator (in the FPGA) available to mess with. The "OS" would consist mainly of three pieces: 1. Configuration settings. Commands, a menu, or whatever, to set up things like the network setting, IP address, etc. 2. A "disk" subsystem to make the SD and USB disk devices available, manage files, etc. 3. An interpreter. The guts of the user's interface would be the interpreter, which would implement the main programming language that you would use. The language needs to be easy to use, like BASIC, but without the bad traits like line numbers, GOTO, etc. Something like a cross between Python, BASIC, Pascal, and Assembly. ;-) The main language would expose and have access to all the hardware, so there would be standard and easy to use graphics, sound, network, and disk commands. This is really they key to making this easy to use, and one of the traits of the old-school computers that made software a lot easier. Even with a modern language like Java, Python, .NET, or whatever, none of those languages have "standard" graphics or sound components, instead relying on the user to decide and find / use a complicated library (Direct X, OpenGL, etc.) Obviously this type of platform would not appeal to everyone, but for someone who has spent their life programming (and who now has kids that they want to expose to programming), I think it is needed and would be fun to do. I recently found an open source "build your own game console" project called UzeBox, and it is amazing how popular it is and how many people have written games for it. Even with the limited sound, graphics, and CPU power, people are apparently having fun with it. This platform would be similar, but have a lower barrier to entry. I'm sure I forgot something, but I wanted to get this out and see what others think... Link to comment Share on other sites More sharing options...
This topic is now archived and is closed to further replies.