Also read fo.py, mighty Forth Lisp SmallTalk mix in Python.
There is three languages which amaze me: Lisp, Smalltalk and Forth.
I think Lisp rule “code is a data” had a great impact on development speed before invention of emacs (see below). No, no, no, not because of macros and meta-programming. Macros are just a tool to make syntactic sugar, really.
You always could look in code. This matters. Even in current GNU CLISP you still could say (car (get ‘f ’system::definition)) and get definition of f. They tried to bury this hardly so now f is not binded at all (really - try yourself). But they pleasantly save definition to property. So you need no source files. Store code in memory!
Both Lisp and Smalltalk has another great thing. Late binding. Amazing! You could change parts of program on the fly from embedded interpreter. What a pity! Nobody types code in this way. Everyone uses emacs. Everyone stick to boring edit-compile-run cycle. In Smalltalk world at least Squeak guys make programs by changing running system. Take your hat off!
Ok, your code is live and tweakable. What about data? Code is a data, you know. So data is live and tweakable too! Although code is not a data in Smalltalk you could tweak it too in inspector (at least in Squeak).
And my most favorite: Forth. It changes your mind. Really. Language with extremely terse syntax. Just two things - words and spaces between them. No brackets, no operators, no function calls and parameter passing. Only words, words, words. Forth runtime is very simple. No dynamic memory allocation, no garbage collection, no type system, no support for arrays, lists, vectors or hashmaps. Just a flat bytes of memory and stack. You could write your forth system from scratch easily.
Typing programs in Forth is just a typing words. And as syntax is very terse you could do this quite fast. Bugs are easier to catch because there is no countless pages of brackets, class definitions and control structures.
Forth programming could be done in runtime-tweakable style. Now pile of dirt: everyone uses editors. Yes, yes boring editors again.
So what i am dreaming of? Language almost without syntax. Easy to implement. No editor. No compilation, no execution. No debugger. No need to write logs or invent protocols to look up data kept inside of program. No types, operator overloading or class inheritance. No lambdas. No message passing, concurrency support and release handling.
I do not want a lot of ideas built-in like in erlang or factor. I just need a language to express my ideas easily.
PS: Do you know you could look up and tweak data in running C program too? man gdb!