4 ms·
Triumphal progress! Tragic stasis. Perhaps an issue of interpretive context? Say you're handed a glass. Do you call it half full or half empty? :) What if the
by mncharity 4y ago
Triumphal progress! Tragic stasis. Perhaps an issue of interpretive context?
Say you're handed a glass. Do you call it half full or half empty? :) What if the level is because the hander (history? society? our profession?) always spills it? And keeps forgetting how to work the cooler? And the sink is turned off because the they're too cheap or can't be bothered to call a plumber? There's water in hand: joy! And sadness.
If someone jumps in a hole, do we count clawing their head back above ground as progress? If wheelbarrows are known, is a towering hand-carried mound inspirational or depressing? If an entire well-coordinated workforce has dysentery, and management has for years been refusing requests to fund more research on latrine placement, is it well managed?
Hole... A room of java swing devs stand in awed ovation for a rails demo - yay progress! And Java N+1 adds a long-looked-forward-to feature X! And yet... Java was originally, intentionally, feature stripped to cripple and down-skill programming for industry. "Java N+1 - Now with less cripple!" Jumping in the hole was even arguably the right call. And at least java meant my never having to do the "gc can be helpful" conversation ever again, for which I remain grateful. So yay progress, but of a wistful sort.
Aside... So much of these last decades seem a massive exercise in programmer education. Boston Python meetups with pre-covid hundreds, were once a half-filled little conference room. I once saw a project fail in part because highly paid and professional devs had trouble with the concept of hash table. Our vastly expanded community and resources and competence are greatly empowering. But so much of that education seems... remedial? And the pace of progress seemed to stall as focus and expertise was dispersed. So awesome progress! So little progress.
Wheelbarrows... An recent hn comment asked which language to best teach programming with. And I thought, maybe use multiple languages? Maybe for each concept, first show it in a language which handles it less badly, before getting bogged down in common cruftiness? A concatenative language for Tufte-esque no wasted ink. APL/J for eyeball abstraction. PureScript or an alternate prelude rather than haskell's historical cruft. On and on. And yet... how demotivating might students find that? To again and again see beauty and power, and then be told "and... you won't be allowed to live most of this... for years and decades, and much never before you retire". When each new thing is still so suboptimal in so many ways, it gets harder to see it as progress.
Hole... Picture an industry researcher giving a talk, describing the creation of a massive tool to analyze and find bugs in large C++ programs. And in Q&A is asked, "So, by dint of this extraordinary effort, you've managed to almost but not quite make up for C++ having such a poor type system?" And with a wistful smile, nodding yes. Progress? Or symptom of lack of progress?
Dysentery... A researcher with fun ideas on garbage collection burns years trying to frame it as security benefit in forlorn hope of DHS funding, having found none elsewhere. A researcher mentions having found a PhD student to explore a foundational functional programming idea, unstalling it after more than a decade of limited attention. A single person is the clear expert on X and keeps meaning to write it up, so let's fund that to avoid the waste of years of slower dispersion... woops, nope, politicians slashed our budget. The industrial policy of the United States is that critical bottlenecks in software progress, foundational for the economy and societal progress, are best pursued by individuals doing hobby projects in their spare time, and by research slow-mo stretched across decades. Progress and its absence, is judged in part, against what might have, could have been.
So the progress of these last decades has been gloriously breathtaking. And it's a pity that we as a profession have been so incompetently dysfunctional that the needle has barely moved in two human generations.
- rileyphone 4y ago> The industrial policy of the United States is that critical bottlenecks in software progress, foundational for the economy and societal progress, are best pursued by individuals doing hobby projects in their spare time, and by research slow-mo stretched across decades. Meanwhile VC pours funds into 'no-code' tools that represent unprincipled grasping in this critical problem space. Of course at some level of software sophistication you are going to need 'code', that is a medium of programming, and there isn't any real reason that a programming language in the tradition of Lisp or Smalltalk could provide those same end-user facilities, just stymied progress from lack of DARPA level follow ups and rapidly shifting business models. I blame, in equal parts, Java, the Web, and Ronald Reagan for where we are today, though that is no excuse for us hobbyists to keep trying to solve critical software bottlenecks. Who knows, maybe the next Big Thing in programming languages won't be yet another weekend project gone supercritical with a cranky BDFL, last second design, and toxic community - maybe it will get out of its own way and help people build the software that they need.