Ask HN: What would you like to see in a new educational language?

1 points by aarongough ↗ HN
Over the last few weeks I have been working on implementing a programming language to teach myself more about how they work.

The point has come where I need to decide on a direction for the project. Now that I know how it all works do I abandon the project? Work toward making it a production language? Or build it into an educational system for teaching people how to program and how programming languages work?

I like the last option personally, but I am curious about what others feel is needed in an educational language.

My thoughts are:

  * Imperative
  * Simple data-types (Int, Float, String, Array, Hash)
  * First-class, anonymous, functions only
  * Single-threaded
  * Simple STDIO-only io
  * Local variables only
  * Unit testing baked-in
  * REPL
Finally, my main requirement is that the language implementation itself be very accessible. The VM, parser and compiler are all already partially written in Ruby and are concise and clear. The goal is to make a language that you can crack open and understand in less than a week...

I would love to hear what everyone has to say about this...

3 comments

[ 2.6 ms ] story [ 19.2 ms ] thread
Given the dominance of multi-core processors, why would a teaching language be single-threaded. Shouldn't you train people to think in terms of multiple processes?
Well personally I think it's a matter of 'walk before running'.

All of the basic programming paradigms still hold true when you move to multi-threaded coding, they just get executed concurrently... People new to programming generally have enough trouble understanding the basics without concurrency thrown into the mix..

If your truly trying to setup peoples thought process, then thinking in parallel from the start would probably be a good thing.