What should the ideal
programming language (or languages) be like?
If I were to start building what I believe would
be the best programming environment for children I would make something like
ToonTalk with the following differences:
Programming would take place within a 3D
persistent shared on-line virtual world with an integrated physics engine.
Discussed here.
The kernel of the language would be as elegant
and powerful as possible. Mathematical elegance is discussed
here and the layering of a "user-level"
language upon such a kernel is touched upon here.
The model of concurrent and distributed
computation would remain the same but would have a very different implemented.
The model is discussed here and the
proposed implementation and further motivation can be found
here.
ToonTalk's support for programming with
concrete examples in an action-oriented fashion using metaphorical analogs of
computational abstractions would be augmented with corresponding static
pictorial representations (comic books) and a symbolic language. Briefly
discussed here.
ToonTalk's exact rational arithmetic could be
augmented with exact irrational numbers. Discussed
here.
Perfect or ideal geometry could be supported.
Discussed here.
A better version of time travel could be
supported. Discussed here.
Programs can run in mobile devices, web
browsers, and maybe more. Discussed here.
ToonTalk is rarely used by professional
programmers to accomplish their tasks. Perhaps the ideal language for children
and non-professionals should provide support for professionals as well.
If I were to start designing the ideal programming
environment for children, I would first try to start a discussion by writing
documents like this one.