I want to begin an exploration into the world of software tools. Specifically, I care about tools built for one specific discipline, kind of like Photoshop was built to facilitate the manipulation of images. I haven't found many books that cover whatever this is called, though. I don't know what I should be looking for.
I have an intuition that great tools help both noobs and experts in equal proportion: by using them, noobs can accelerate their learning by becoming familiar with the problem space, and experts can speed up their workflow. In this sense, Vim is merely a good tool: it speeds up the workflow of experts, while offering little intuition to the noob. In reverse, oldschool Windows Movie Maker was a fantastic tool for noobs that quickly outlived its usefulness for experts.
In contrast to Vim and WMM, Photoshop easily and gradually introduces a noob to many useful abstractions for image manipulation, such as layers, hue/saturation/lightness color theory, Curves and Levels histograms, layer blend modes such as Multiply and Overlay, manipulating alpha channels.... Simultaneously, these abstractions are useful for experts to achieve their desired results much easier.
What fascinates me about tool creation is that it seems to be a field that's either stagnant or moribund. We have thriving ecosystems of developer tools and single-purpose noob-centric apps (mostly in the mobile space), but there doesn't seem to be much cross-pollination nor really much interaction. Even more disappointing, the most interesting tools I've found in this space are proprietary, and everything open-source is just copying one of these products with varying success.
I acknowledge that I don't know how much my impressions represent reality. I do know that I explore what feels like a significant number of tools and I've yet to be impressed.
I've watched a number of talks that make me super excited about tools... theory? But nothing that presently exists reflects these philosophies (with one exception I'll mention later). First, The Art of Code establishes the capacity of code to facilitate art and even BE art. The amazing The Future of Programming , and really all of Bret Victor's work, shows that the era of exploration in computing exemplified by (among other things) Doug Engelbart's "The Mother Of All Demos" has stagnated, and suggests ways in which we could return... by creating new great software tools. My long-time fascination with hypermedia, especially as captured in Broad Band shows that often the most elegant solutions to problems and years of knowledge in a lively field can become obsolete if we don't give them purpose (though keep in mind the book establishes the reason the web obsoleted better hypermedia technologies was because the web was free and open source). Kyle Simpson's great FOUC and the Death of Progressive Enhancement shows that as developers we often misrepresent the needs and desires of the people who use our software products, and thus deliver great tech that is only a crutch solution to a broader problem, much how progressive enhancement on the web fails to fix usability issues for people with bandwidth constraints. More dryly (but no less fascinatingly), Keeping Level Designers in the Zone Through Level Editor Design shows how there are a lot of great ideas for tools design, but we have a problem communicating these ideas (implicit in this talk is the need for open sourcing in-house technology, whether the speaker intended it or not).
The exception I mentioned is Inkle's scripting language Ink, as shown in Narrative Sorcery: Coherent Storytelling in an Open World. Ink is my favorite demonstration of a new quality tool that could easily come to dominate an industry. We've been writing game narratives for decades with unideal tools for the job like Excel, and here is an easy-to-understand scripting language written with the intention of being used as middleware. There's really no reason for noobs nor experts to begin with any other tool now (though they undoubtedly will).
I dunno. The reason for this blog is to help me exorcise my thoughts, but writing about tools only makes me more excited to delve into this subject. There is so much that can be done in this space.
I have an intuition that great tools help both noobs and experts in equal proportion: by using them, noobs can accelerate their learning by becoming familiar with the problem space, and experts can speed up their workflow. In this sense, Vim is merely a good tool: it speeds up the workflow of experts, while offering little intuition to the noob. In reverse, oldschool Windows Movie Maker was a fantastic tool for noobs that quickly outlived its usefulness for experts.
In contrast to Vim and WMM, Photoshop easily and gradually introduces a noob to many useful abstractions for image manipulation, such as layers, hue/saturation/lightness color theory, Curves and Levels histograms, layer blend modes such as Multiply and Overlay, manipulating alpha channels.... Simultaneously, these abstractions are useful for experts to achieve their desired results much easier.
What fascinates me about tool creation is that it seems to be a field that's either stagnant or moribund. We have thriving ecosystems of developer tools and single-purpose noob-centric apps (mostly in the mobile space), but there doesn't seem to be much cross-pollination nor really much interaction. Even more disappointing, the most interesting tools I've found in this space are proprietary, and everything open-source is just copying one of these products with varying success.
I acknowledge that I don't know how much my impressions represent reality. I do know that I explore what feels like a significant number of tools and I've yet to be impressed.
I've watched a number of talks that make me super excited about tools... theory? But nothing that presently exists reflects these philosophies (with one exception I'll mention later). First, The Art of Code establishes the capacity of code to facilitate art and even BE art. The amazing The Future of Programming , and really all of Bret Victor's work, shows that the era of exploration in computing exemplified by (among other things) Doug Engelbart's "The Mother Of All Demos" has stagnated, and suggests ways in which we could return... by creating new great software tools. My long-time fascination with hypermedia, especially as captured in Broad Band shows that often the most elegant solutions to problems and years of knowledge in a lively field can become obsolete if we don't give them purpose (though keep in mind the book establishes the reason the web obsoleted better hypermedia technologies was because the web was free and open source). Kyle Simpson's great FOUC and the Death of Progressive Enhancement shows that as developers we often misrepresent the needs and desires of the people who use our software products, and thus deliver great tech that is only a crutch solution to a broader problem, much how progressive enhancement on the web fails to fix usability issues for people with bandwidth constraints. More dryly (but no less fascinatingly), Keeping Level Designers in the Zone Through Level Editor Design shows how there are a lot of great ideas for tools design, but we have a problem communicating these ideas (implicit in this talk is the need for open sourcing in-house technology, whether the speaker intended it or not).
The exception I mentioned is Inkle's scripting language Ink, as shown in Narrative Sorcery: Coherent Storytelling in an Open World. Ink is my favorite demonstration of a new quality tool that could easily come to dominate an industry. We've been writing game narratives for decades with unideal tools for the job like Excel, and here is an easy-to-understand scripting language written with the intention of being used as middleware. There's really no reason for noobs nor experts to begin with any other tool now (though they undoubtedly will).
I dunno. The reason for this blog is to help me exorcise my thoughts, but writing about tools only makes me more excited to delve into this subject. There is so much that can be done in this space.