here's a take that'll please no one: the belief that computers are difficult to use—especially foss and tools related to programming—is mostly constructed by politics and marketing, not by any inherent characteristics of the software. reasoning: (a) people master very complicated and user-hostile processes *all the time*. knitting, driving a car on the interstate, playing a musical instrument, being a baseball fan, using the subway—all just as complicated imo as (e.g.) learning the command line
(b) this is totally anecdotal, but as someone who has been teaching computer programming to adults for ~20yrs or so, the biggest obstacle that students face is not that the material is difficult (even when it *is* difficult), but that students are *culturally predisposed to a belief that they're not smart enough to program*, which acts as a permission structure for giving up. (this is peculiar, because no one having trouble in a knitting class thinks "i guess i'm not smart enough to knit")
(c) programmers are predisposed to convincing others that programming is too complicated for "normal people" as a means of job security and achieving social status; computer manufacturers and their software-making friends are predisposed to a marketing message that states: computers are too difficult for normal people, so buy this new machine/software, which is finally the computer/software that normal people can use! together both sides form a kind of mutual ratchet imo
(the trope of the "computer nerd" in media is such an effective embodiment of both sides of this rhetoric that its prevalence almost seems like a conspiracy imo)
@aparrish agreed, although I would also analyze the teaching of programming. I always use compare with symbolic differentiation and integration of mathematical functions.
I learned symbolic differentiation easily; it's mostly a straightforward process. However, I struggle with integration as it seems like learning to identify so many patterns that are much more complex.
As they are "opposite" processes I feel they compare well with understanding execution and programming.
@aparrish I think understanding how most programs execute is relatively easy to learn, yet just like with integration, I feel we don't know well enough how to teach how to put the pieces in the right order so that when your program executes it will do the right thing.
This might be just another manifestation of gatekeeping; maybe we just haven't invested enough in figuring out how to teach programming, although there are many visible efforts to do so.
@aparrish but then we should also separate pure programming and programming in the real world; the former might be a smaller part than we think. And it's the latter where everything is hostile!
I've had many conversations that amounted to "everything is broken and our job is more about learning how to work with broken things than about building stuff". A kind interpretation would be that market pressure impedes doing things properly, another would be gatekeeping.
anyway, whenever someone says something like "LLMs have finally made programming accessible to normal people!" I try to remember that the Silicon And Fossil Fuel Pyramid Scheme Industry has spent literally hundreds billions of dollars in an effort to convince you that computers were *already difficult to use* (a grift that computer programmers are largely in on!) and to politicize LLMs as being "easy to use" in contrast
(to develop/clarify my thoughts here: i am NOT trying to say "actually computers are secretly easy!" i'm trying to say that people successfully engage with difficult, sometimes learner-hostile practices *all the time*, and politics/economics have an outsized influence in maintaining the understanding of computers as being *uniquely* difficult in comparison to other practices)