

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

Over the last few weeks I have been working on implementing a programming language to teach myself more about how they work.<p>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?<p>I like the last option personally, but I am curious about what others feel is needed in an educational language.<p>My thoughts are:<p><pre><code>  * 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
</code></pre>
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...<p>I would love to hear what everyone has to say about this...
======
protomyth
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?

~~~
aarongough
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..

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

