PIC Smalltalk does much of this. But it translates everything to assembler. http://www.huv.com/uSeeker/smalltalk/pic.html
Karl
On Sat, Nov 30, 2013 at 12:19 AM, Jecel Assumpcao Jr. jecel@merlintec.comwrote:
Tim Rowledge wrote:
On 29-11-2013, at 1:18 PM, Doug Jones wrote:
http://www.kickstarter.com/projects/214379695/micro-python-python-for-microc...
The microcontroller is clocked at 168MHz and has 1MiB flash and
192KiB RAM,
which is plenty for writing complex Python scripts.
Umm, not really. That's a bit tight, rather slow, and likely to
disappoint. At least, for
anything we currently think of as Squeak. Now, a simple (it would have
to be very
simple to save space) vm running a tiny Spoon based image *might* be
possible
and even useful. The smallest machine I've ever run a "normal" Smalltalk
system
on was the Active Book, which had a whole 1Mb or Ram, though that did
have to
serve the OS, provide the screen buffer, and host a Fax storage filing
system. And
it *was* only a 8MHz ARM2 cpu.
It would probably be possible to squeeze Little Smalltalk into such a tiny computer. While it wouldn't do much, it would be comparable to this Python interpreter. It would also work just fine on a text terminal while non graphical Squeak is rather painful to use (I played around with two implementations). A framebuffer for 640x480 pixels with 256 colors takes up 300KB, so having a VNC client on the PC side wouldn't help.
I am always interested in finding out how small things can be. The original 1972 Dynabook paper proposed a machine with just 8K words of 16 bits, but that was supposed to be a cache for a tape based virtual memory system and if the display were persistent and readable (like the plasma terminals from Plato) you could do without a frame buffer. The Alto was a 128KB machine, on the other hand, and this ARM microcontroller is was more powerful than it was.
-- Jecel
Karl Ramberg wrote:
PIC Smalltalk does much of this. But it translates everything to assembler. http://www.huv.com/uSeeker/smalltalk/pic.html
This is a cross developement system (where you create the program on a "host computer", like your PC, and then upload it to a "target computer", like a microcontroller board, in order to run it). The interesting aspect of the micro Python is that it is a native environment. The PC just acts as a dumb ASCII terminal.
You can also have a mix where the application is developed on the target machine while most of the development environment runs on the host. That was the case for Palm Smalltalk and OOVM which used Squeak and Eclipse respectively on the PC side.
-- Jecel
On 11/30/2013 11:18 AM, Jecel Assumpcao Jr. wrote:
Karl Ramberg wrote:
PIC Smalltalk does much of this. But it translates everything to assembler. http://www.huv.com/uSeeker/smalltalk/pic.html
This is a cross developement system (where you create the program on a "host computer", like your PC, and then upload it to a "target computer", like a microcontroller board, in order to run it). The interesting aspect of the micro Python is that it is a native environment. The PC just acts as a dumb ASCII terminal.
You can also have a mix where the application is developed on the target machine while most of the development environment runs on the host. That was the case for Palm Smalltalk and OOVM which used Squeak and Eclipse respectively on the PC side.
-- Jecel
What drew my attention to this project is its high level of openness. Open source hardware, and open source software. And it's reasonably inexpensive.
It's true that it's not well suited to uses that require a sophisticated GUI or lots of RAM, but there are lots of other kinds of uses. Think of the Arduino and its many derivatives: It's being used for a huge variety of things, and that's largely because it's inexpensive and the software and hardware are open. Anybody can download a hardware design, tweak it a bit if needed, and send it off to a PC board house to be manufactured in any quantity (or just make it themselves in the garage). Or just buy hardware off the shelf if that's all you need.
But to program the Arduino, you're basically writing in C. With this Micro Python board, you program it in a high-level language.
The hardware portion of the project, of course, is language-agnostic. Anybody can take the same hardware and implement any language that the hardware can support. And this is where it gets really interesting.
If you read the entire Kickstarter proposal, including the FAQs and the Updates, he provides a very detailed description of the software he has written. When I read that, I see a comprehensive reference implementation that would be invaluable to anyone wanting to port another language onto this platform. (And he put it all under the same MIT license that Squeak uses!)
The hardware has lots of GPIO pins, and USB, so it can talk to other hardware. He is now adding wifi, and shortly he should hit his second stretch goal for adding Ethernet. He will have Python libraries for interfacing with all this hardware. And the board has an SD card slot, so gigabytes of storage are available (virtual memory?).
Moore's Law, which still somehow seems to be in effect, guarantees that the price difference between the Arduino platform and next-generation hardware platforms like this new one will gradually drop to near zero. (I think the high-volume cost of the processor chips now differ by no more than a dollar or two.) So we should expect Arduino-like projects to gradually shift to higher-level languages. I think it would be awesome if Squeak was one of the languages readily available on these kinds of platforms.
I don't see any reason why something like Little Smalltalk couldn't be ported to run on a 32 bit ARM7 type chip. The one running Micro Fortran has 192 KB of RAM, and a megabyte of FLASH. Of course, the real stumbling block is people seem to want to be able to run an IDE on the chip, which I think is silly. Having a command line interpreter like python has, and the ability to push source (maybe using Git or Monticello or whatever) from your development machine to this chip over wifi/ethernet would make it really useful for robotics. It would especially be useful if you could run the command line version of this Smalltalk on a desktop, as the guy does with Micro Python. I would love to have an instant-on Smalltalk system, which is one of the reasons I am supporting Micro Python.
I'm currently working on Roz, my quad walker robot, and I've got a Beaglebone Black running Ubuntu 13.04 onboard, but it feels like overkill, and dealing with Linux is painful, not to mention having to keep power to the board all the time once its booted up. If I had something like Smalltalk-on-a-chip, I would definitely be using it for Roz.
- Jon
On Mon, Dec 2, 2013 at 3:33 AM, Doug Jones djsdl@frombob.to wrote:
On 11/30/2013 11:18 AM, Jecel Assumpcao Jr. wrote:
Karl Ramberg wrote:
PIC Smalltalk does much of this. But it translates everything to assembler. http://www.huv.com/uSeeker/smalltalk/pic.html
This is a cross developement system (where you create the program on a "host computer", like your PC, and then upload it to a "target computer", like a microcontroller board, in order to run it). The interesting aspect of the micro Python is that it is a native environment. The PC just acts as a dumb ASCII terminal.
You can also have a mix where the application is developed on the target machine while most of the development environment runs on the host. That was the case for Palm Smalltalk and OOVM which used Squeak and Eclipse respectively on the PC side.
-- Jecel
What drew my attention to this project is its high level of openness. Open source hardware, and open source software. And it's reasonably inexpensive.
It's true that it's not well suited to uses that require a sophisticated GUI or lots of RAM, but there are lots of other kinds of uses. Think of the Arduino and its many derivatives: It's being used for a huge variety of things, and that's largely because it's inexpensive and the software and hardware are open. Anybody can download a hardware design, tweak it a bit if needed, and send it off to a PC board house to be manufactured in any quantity (or just make it themselves in the garage). Or just buy hardware off the shelf if that's all you need.
But to program the Arduino, you're basically writing in C. With this Micro Python board, you program it in a high-level language.
The hardware portion of the project, of course, is language-agnostic. Anybody can take the same hardware and implement any language that the hardware can support. And this is where it gets really interesting.
If you read the entire Kickstarter proposal, including the FAQs and the Updates, he provides a very detailed description of the software he has written. When I read that, I see a comprehensive reference implementation that would be invaluable to anyone wanting to port another language onto this platform. (And he put it all under the same MIT license that Squeak uses!)
The hardware has lots of GPIO pins, and USB, so it can talk to other hardware. He is now adding wifi, and shortly he should hit his second stretch goal for adding Ethernet. He will have Python libraries for interfacing with all this hardware. And the board has an SD card slot, so gigabytes of storage are available (virtual memory?).
Moore's Law, which still somehow seems to be in effect, guarantees that the price difference between the Arduino platform and next-generation hardware platforms like this new one will gradually drop to near zero. (I think the high-volume cost of the processor chips now differ by no more than a dollar or two.) So we should expect Arduino-like projects to gradually shift to higher-level languages. I think it would be awesome if Squeak was one of the languages readily available on these kinds of platforms.
On 02-12-2013, at 7:01 AM, Jon Hylands jon@huv.com wrote:
I don't see any reason why something like Little Smalltalk couldn't be ported to run on a 32 bit ARM7 type chip.
I did that back in 1987. Well, it was an ARM1, but still.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Oxymorons: Alone together
Doug Jones wrote:
What drew my attention to this project is its high level of openness. Open source hardware, and open source software. And it's reasonably inexpensive.
I would call $10 "reasonably inexpensive", but at £25 it costs *exactly* the same as the Model A of the Raspberry Pi. You get more I/Os, but 192KB of RAM instead of 256MB. But I do like the project.
One thing that would be interesting would be to combine Squeak with Internet-0 (http://cba.mit.edu/events/04.09.I0/krikorian.pdf). In the future we could have a $1 computer controlling your light with some 128KB for a headless Squeak image that you program from your desktop machine.
As Jon Hylands wrote in another message in this thread, sometimes you don't want a GUI and sometimes you don't want a Linux between your language and your hardware. I find it amazing that some people running C code on a 200MHz ARM can't toggle a pin at more than a few thousand times per second. Having seen how much more usable the old Basic Stamp boards (native development) were to most people than traditional microcontroller programmed (cross) in assembly or C (even with a system as nice as Arduino sketches), I agree with both of you that this is a good direction to explore.
Tim Rowledge wrote:
I did that back in 1987. Well, it was an ARM1, but still.
Was it really an ARM1 (BBC "tube" board) or an ARM2? In any case, you did Smalltalk-80 and Jon asked about Little Smalltalk, which would be a far simpler project..
-- Jecel
On 12/02/2013 01:28 PM, Jecel Assumpcao Jr. wrote:
I would call $10 "reasonably inexpensive", but at £25 it costs *exactly* the same as the Model A of the Raspberry Pi. You get more I/Os, but 192KB of RAM instead of 256MB. But I do like the project.
True, but comparing with the Raspberry Pi isn't really fair ;-)
Literally millions of Raspberry Pi boards have been shipped. If this Micro Python board were made in such quantities, its price would drop substantially. When he set that price point, he was assuming quantities in the hundreds, and presumably he added some margin to compensate him for his design time (all his spare time for the better part of a year so far).
And the Pi is entirely closed-source hardware. You can't make your own, and you can't redesign it or otherwise evolve the hardware. (And it cannot boot without a proprietary binary blob that outsiders cannot modify or audit.)
Things like Arduino and this Micro Python board can evolve independently of any central control, and anybody can make them. We should expect to pay a premium for this advantage, at least at the beginning.
Once the design files are released, if the hardware becomes popular we should expect many players to enter that market and the price will start a race to the bottom, just as happened with Arduino and its descendants.
BTW, I neglected to mention earlier in the thread that this hardware is fully capable of driving a graphical display and supporting a GUI. His early videos show it driving a low-res LCD, but I'm curious to find out if it could drive something like a 512x342 pixel monochrome display.
Because if it can, that means it could conceivably support a GUI as good as that of the original Macintosh. (Remember how good that was?) This board has 50% more RAM than the first Mac, more than twenty times the speed, thousands of times more storage, and thirty years' worth of further software development to tap into. (Not to mention networking, which the first Mac had no inkling of.)
The first Mac was inspired by that legendary visit to Xerox PARC. They saw a GUI there. And Alan Kay showed them Smalltalk.
I'm getting one of these boards...
Doug Jones wrote:
True, but comparing with the Raspberry Pi isn't really fair ;-)
It is unfair from the seller's viewpoint, but totally fair from the buyer's viewpoint. Note that I develop such boards and so am very familiar with the issues you mentioned. If I try to buy the Zynq 7020 chip present in the $99 Parallela board, for example, Xilinx wants me to pay $150. And the fact that I am using FPGAs to implement my Smalltalk processors while these ARM SoCs are full ASICs make it hard to compete. But as a buyer you shouldn't have to care about any of that.
Since you are interested in open source, you might find these boards interesting:
https://www.olimex.com/Products/OLinuXino/open-source-hardware
About the 128KB Macintosh, I had one for a couple of months. MacWrite was limited to at most 7 pages while Word swapped like crazy. I opened it up and expanded it to 512KB and it went from being an interesting toy to a usable tool.
The first Mac was inspired by that legendary visit to Xerox PARC. They saw a GUI there. And Alan Kay showed them Smalltalk.
Not quite, though this is the most popular version of the story. Jef Raskin worked on the idea of a graphical computer that would be user-friendly for his PhD project which he called "QuickDraw". After he became a professor, he spent some time at Xerox PARC as a visiting researcher and became very familiar with all the projects being developed there. After that he joined Apple to write their manuals and was later tasked with creating "Annie", a very low cost game machine. He renamed it Macintosh and proposed to combine his QuickDraw ideas with a "computer as an appliance" design to avoid the complications he had faced trying to document the very flexible Apple II.
http://www.digibarn.com/friends/jef-raskin/writings/millions.html
Steve Jobs didn't like the project and kept trying to kill it. Jef felt that if Steve could see the stuff at PARC he would leave him alone. Mike Markkula agreed and sent Steve (and, later, the Lisa team) to see a demo of the Alto by Adele Goldberg and Dan Ingalls.
-- Jecel
squeak-dev@lists.squeakfoundation.org