4 ms·
I like the ideas behind the app inventor programming language. It has a lisp-ey look and feel to it. The language is made out of blocks that look like puzzle pi
by exDM69 15y ago
I like the ideas behind the app inventor programming language. It has a lisp-ey look and feel to it. The language is made out of blocks that look like puzzle pieces. The shape of the piece stands for it's syntactic meaning, there's a distinct shape for expressions and statements. The color of the piece is it's type, e.g. red for boolean.
So an "if" statement is a statement piece that has places to plug in a boolean (red) expression piece and two statement pieces. That's structure and interpretation of programming languages for you.
The weakness of the language is the difficulty of representing recursion. I think there was another MIT project that did this well, their program representation was a visual graph where recursion was represented as back edges. This is similar to how the Haskell compiler stores programs internally as graphs. An interesting feature of the visual graph programming language was that all variable and function names are optional (but useful) comments.
I feel that researching and experimenting with non-text representations of computer programs is worth the effort.
- wladimir 15y agoAn interesting feature of the visual graph programming language was that all variable and function names are optional (but useful) comments Do you perhaps remember the name of the project? This is mightily interesting. I've thought about this many times, that if you represent a program as a graph (instead of a tree) you don't really need 'names' or 'symbols' as such (except to make it understandable to humans), just connections. This allows for a cleaner separation of syntax and semantics, and would make it easier to manipulate programs without having to type.
- exDM69 15y agoI wish I remembered it, but I have forgotten the name and can't find it with google. If you find it, please reply to this thread.
- andyjohnson0 15y agoMy seven-year-old son has recently been getting his first experience of programming using the Lego Mindstorms visual programming environment [1]. It uses a similar 'jigsaw puzzle' representation, and he just found it instantly intuitive. It has similar limitations to App Inventor, but I don't see support for recursion as being too important for this type of programming. [1] Example: http://www.techno-stuff.com/AirPressure.htm http://www.techno-stuff.com/AirPressure.htm
- exDM69 15y ago>> but I don't see support for recursion as being too important for this type of programming. That is a fair point, recursion is not directly used very often in conventional programming. However, to me, recursion is the missing link that makes a language a programming language (Turing complete). There is still work to do to find a better structured representation for computer programs than a string of characters is. PS. I think your son is old enough and motivated enough to get an Arduino or a Python book and start learning ;) That's about the age I started programming after seeing my dad stare at a blue text-filled screen all night trying to make ends meet as a freelancer.
- andyjohnson0 15y agoFor the time being I'd like to keep the programming he does related to something physical - like the lego robot you program using the mindstorms environment. At his age I think he could become bored with just shuffling bits or putting text onto a screen, and anything sophisticated enough to impress him and hold his interest (probably graphical) might be to complex. Also the challenge of physically building a controllable robot is a nice contrast to the abstract programming task. I'd like to try him with Scratch (http://scratch.mit.edu/ http://scratch.mit.edu/) before moving on to text-based programming (if he wants to). Python is a good idea: we could learn it together... I do have a netduino, and he's seem me working on that, but C# requires a lot of up-front knowledge. Arduino and wiring might be in his range. He's a bright kid and I've learned a lot just by seeing how he conceptualizes these ideas.
- nl 15y agoHe might be interested in the Mindstorm components in App Inventor
- andyjohnson0 15y agoThanks! I didn't know about that. Unfortunately we are using the older RCX mindstorms system, and the app inventor components only seem to work for the newer NXT system.
- muyuu 15y agoIIRC Hal Abelson used Kawa Scheme as a base to implement it.