4 ms·
Everyday we're getting closer to a toolkit that allows a novice to go from an idea to a working product with little more than natural language in-between. It's
by vagabund 4y ago
Everyday we're getting closer to a toolkit that allows a novice to go from an idea to a working product with little more than natural language in-between. It's still a ways off, but the trajectory is clear.
I have a working theory -- which I'm sure I didn't discover first -- that the broader the gap between the traits required for the process of creating a thing, and the traits which would make someone want to use the thing, the worse the design/product outcomes. It applies readily to a field like architecture, where a meticulous, granular attention to geometry and streamlined efficiency aids in the realization of a building plan but rarely coheres with the emotive, intuitive experience of a place by the people who use it. And I think it even better applies to the development of consumer software. To be a good dev you need, among other things, a high degree of patience, while the average user is defined by little else than their near nonexistent attention span. The best practitioners, like Nikita Bier, have fully internalized this -- "consider every tap by a user to be a miracle"[0]. But it's an easier lesson to rote memorize than to put into practice. Other incongruences between the process of creating and using abound: organization vs complexity, optionality vs usability, minimalism vs ornamentation, etc. They all create friction for the best version of an idea coming to fruition.
To borrow from the analogy of architecture again, we may be entering the era of vernacular software design -- the meta-discipline of development as such begins to fade away, and what counts is one's ability to find, articulate, and solve a problem, or to create a novel experience. Like their real-world architectural equivalents, the resulting designs will probably be maligned by the field for esoteric reasons, or regarded as unrefined and inferior. But also like real-world vernacular architecture, they'll probably be widely enjoyed by the people who actually use them. I'm excited for that future, and this service -- if it works as well as is showcased here -- is a big part of getting there.
[0] https://twitter.com/nikitabier/status/1608310890243444738 https://twitter.com/nikitabier/status/1608310890243444738
- TeMPOraL 4y agoI'm not disagreeing, but I'm also not fully convinced. My working theory is that it's less about the gap between traits of creators vs. users, but more about the users' ability to adapt and iterate on the thing they're using. In architecture case, people living in a building can't do all that much to adapt it or iterate on its design - but, together with their neighbors, they have much greater influence on the shape of the town or district they live in. As things are today, you can't tell architects to let the future tenants weigh in on the building plan and expect the building to actually be built - but you can get hands-off with the urban planning and let it happen organically (and AFAIK the common wisdom these days is that this is the right thing to do). Thing is, I feel the reason for the building vs. district difference has less to do with traits, and more with the substrate. Constructing a building is expensive in terms of labor, material and expertise, and is best done in a focused manner. There's hardly anything that's malleable here at our current technology level. Conversely, the buildings are only a part of what makes a livable area, and everything else - what kind of businesses and facilities open, where they open, which space is left for verdure and which gets paved - is something that happens over time, slowly, in a distributed and feedback-controlled way. Moving on to software: as things are right now, software is mostly built like buildings, with an extra kick that the developers are even more exploitative and abusive of their tenants. Not only software is not malleable, it's usually in an adversarial relationship with its users. Would adding natural language to the mix help? I'm not sure. Would giving everyone a 3D printer that can print you a multi-story building from a pile of SketchUp drawings help make buildings more coherent with "the emotive, intuitive experience of a place by the people who use it"? To some extent, maybe, but I feel the limiting factor here isn't the building or the software - it's the district and the software ecosystem. As any one of us who know how to code can attest, there's only so much you can actually do with code in practice: most of the useful and interesting things happen in the networks - the relationship graphs that, through computer systems, connect people who want something with people who can provide it - be it data, or product, or service, or experience, or impact on the physical reality. So the real limiting factor is society - the economy, the laws and the culture that constraint what any one of us can do. And before that, a software ecosystem that's increasingly locked down and hard to work with. (All that, plus I also think that programming via natural language makes as much sense as constructing buildings from napkin sketches: it works - but only when you're providing your input to a professional programmer/architect. To make it work without a human intermediary, you'd have to create AI programmers / AI architects - this, and not natural language understanding, is the limiting factor.)