

Modal Programming - jewel
http://stevenjewel.com/2014/04/modal-programming/

======
greenyoda
I think this article has rediscovered the very old technique of writing
pseudocode[1] and given it a new name ("modal programming").

[1]
[https://en.wikipedia.org/wiki/Pseudocode](https://en.wikipedia.org/wiki/Pseudocode)

~~~
jewel
Thanks for the feedback (I'm trying to improve my writing, so I really
appreciate the comments.) You're right, it's not a new technique by any means.
The difference between this and psuedocode is that when I'm done, about 90% of
the code is already written and working.

------
tantalor
A similar approach is used in TDD. Before implementing a library, you first
write a test case which uses the library and invent the necessary function
names & parameters. Then you implement the functions to make the test work.
This way the test drives the development of the library.

This pattern produces a simple interface and a complex implementation, e.g.,
the "MIT approach" ([http://www.jwz.org/doc/worse-is-
better.html](http://www.jwz.org/doc/worse-is-better.html))

------
briantakita
Start with a low resolution and iterate to higher resolutions.

