Yep. It also suffers the same problem in practice as pseudocode programming -- that in complex applications, the really hard stuff is in implementation details that don't show up in pseudocode.
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.
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.
6 comments
[ 6.0 ms ] story [ 223 ms ] thread[1] https://en.wikipedia.org/wiki/Pseudocode
This pattern produces a simple interface and a complex implementation, e.g., the "MIT approach" (http://www.jwz.org/doc/worse-is-better.html)