programming(3/0)
Web development is both imperative and declarative
Jeremy Keith explores Imperative/Declarative web development and how team culture defines the paradigm a project chooses more than the language itself in this Youtube Video. It’s insightful and short: only 22 minutes. Jeremy defines imperative programming in terms of control. Imperative programs stipulate each step (instantiate this array, iterate over this collection, put items that meet this criteria into the instantiated array). Side-effects are minimized, but the code must also describe everything that must be accomplished.…
Choose your analogy carefully
The analogies one uses to describe their work disclose important aspects about how they view one’s craft. These analogies then shape the tools which are created and dangle on one’s toolbelt. Two of my favorite analogies, teaching and pottery share the same goal of undermining the development-as-bricklaying mindset around which many development tools have organized. The brick-laying analogy (and the managerial mindset that software is “built”) has created tools which don’t fit the work.…
Teach the computer with tests
Thanks to Mikel Evins' post Programming as teaching I realized that my favored programming style is at odds with common practice. I knew something was off from the kinds of conflict I’d have with other developers, but Mikel made the difference stand out to me. Early in my corporate programming career I became enamoured with testing. Unit tests, integration tests, component tests, you name it. It was strange to me at that time that I hadn’t cared much about testing until I joined a corporation.…