1. 9
  1.  

  2. 5

    I’m fairly disdainful of capitalism (let’s establish a dictatorship of the proletariat!) but this is incorrect:

    The generation who grew-up programming their own computers figured out that they could sell the software they wrote, and the harder it was to write the software, the more money they could make selling it. So instead of finding ways to make it easier for regular people to write their own software, they made it harder.

    Computers got incredibly more complicated, incredibly quickly, and the things people wanted to do with them likewise got more complicated. Simple machines are simpler to program. And most people don’t want to learn how to write programs; they want to use programs that already exist.

    nothing as accessible as the BASIC of old existed any longer.

    Even back in those days, precious few “real” applications were written in BASIC. You wrote in assembly, which was neither simple or accessible.

    When the web came along there was a brief moment of hope that this new platform might be as accessible and compatible as the microcomputer of old, but it was quickly comoditized by commercial interests and followed the same path as all previous software, devolving into a labyrinth of specialists tools and “languages” in an endless parade of “fashionable” platforms, frameworks, etc.

    It has to be. Nothing’s stopping you from writing a simple HTML5-plus-plain-JavaScript app, but it’s gonna be pretty simple compared to what most users want. We have all those specialist tools because there’s an enormous amount of power and complexity that has to be managed to make a modern application that meets the needs and expectations of users.

    TL;DR: if you want computer programming to be as accessible as it was back on the C=64, it absolutely still is…but you’re gonna get C=64-quality programs.

    If you want to tinker, great. There was never really time (except on the Macintosh, which back then was very much a walled garden) where there wasn’t a BASIC-level programming language available for the system for free. MS-DOS/PC-DOS included BASICA and then GW-BASIC and then QBasic, the Amiga had AmigaBASIC and then AREXX, even NeXT had Bourne shell. QBASIC was included up until Windows 2000 and was a free download after that. You might not have been able to access all the features of the system from within the language, but that was true even of BASIC on the C=64 (see assembly, above).

    1. 4

      I don’t think what the author is talking about is professional-quality programs. Only professionals write professional-quality programs.

      Instead – well, professionals are only going to touch a task when there’s money in it. There are a hell of a lot of tasks that would benefit from being automated but are unusual enough that there’s no market. Giving the person who wants to automate it a simple language and letting them write a completely unprofessional tool that works for them is the ideal solution (and, indeed, developers do this for themselves all the time).

      Nothing’s stopping you from writing a simple HTML5-plus-plain-JavaScript app

      The simplest web-tech application is a great deal more complicated to write than the equivalent in BASIC, and (unlike on the home computers of the 80s) users are largely completely unaware that they already have a programming environment in their browser.

      Things like simple electronic automation (say, with relays on the parallel port) are harder with that setup now too – you need to buy a beaglebone or something (and know that such things exist), instead of it being a suggestion for a project in the back of your computer’s manual.

      The high end can take care of itself, and the low end can take care of itself. We don’t cater to the middle – the ‘power users’ who aren’t programmers & don’t know where to start but have specific non-computer technical tasks they would solve with computers if we made it easier for them than to solve by hand. Telling them to pay us for professional-quality solutions isn’t going to help them either: they don’t want or need professional-quality solutions, particularly if those professional-quality solutions aren’t going to remain responsive to their desires in ten years.


      Note: I’m pretty sure the title is a reference to a blog post going around about Mastodon & the ‘forkoff’ debate there, in which the argument is made that project maintainers as a class abuse the power given to them by their arcane knowledge to privilege the desires of the technorati over non-technical users, in much the same way that the capitalist class uses their monopoly access to the means of production to maintain their power over the proletariat.

      I have a lot of strong opinions about that article, & they are summed up well with the sentiment in this one: namely, we, as the technorati, have failed to make it easier on newcomers to get to our position than it was for us, and have failed to support people who want some small portion of our ability without buying into the whole culture, and addressing that makes more sense than building voting systems for features that privilege non-technical users or the various other mechanisms proposed for making sure the needs of end users get addressed in FOSS projects.

      We have the ability to expose the stuff end users actually want to control in ways that they already understand (or can easily learn). If we target non-technical users at all, we should prioritize that.

      (I’ll see if I can dig up that post, since it might provide useful context for this one.)

      1. 2

        Giving the person who wants to automate it a simple language and letting them write a completely unprofessional tool that works for them is the ideal solution (and, indeed, developers do this for themselves all the time).

        That sounds like COBOL, Excel, Visual Basic 6, and PHP. Lots of people that didn’t think of themselves as programmers like those slinging assembly, C, or whatever made piles of apps that got stuff done. Each of these was more approachable than alternatives for what they were trying to do at their experience level. So, I think they corroborate your point a bit. The 4GL’s, too, in their niches.

    2. 5

      I’m a bit dismayed by Cass’s blog post (the blog post that this one is retorting to) because they made a good point: free software has an accessibility problem and the people who need accessibility the most are also the ones with the least power to modify the software to suit their needs.

      While I’m not sure framing it as “capitalism” is adequate or not (maybe it is, in a way), Cass does bring a good point, in different words, that often comes up: free software isn’t very user-friendly.

      -isms aside, how do we fix that? Free software is supposed to be empowering and liberating but it’s so often not.

      1. 3

        Free software has elitist roots. Consider Stallman’s Free Software Song; every other line identifies the target audience as “hackers”. Speaking of that word, I recently read Steven Levy’s Hackers: Heroes of the Computer Revolution. Chapter 6 of that book, “Winners and Losers”, describes how the MIT AI Lab hackers referred to people who weren’t brilliant hackers as losers. See also the famous Rise of Worse is Better, which mentions that “loser” was MIT hacker slang for user. And of course, Stallman came from that culture; he even considered himself the last true hacker, as described in the appendix of Hackers.

        So if we want free software to serve all people, then it seems to me that developers of free software need to work to distance themselves from elitist hacker culture. I suspect that this kind of culture arises naturally, though, so that’s a hard problem.

        1. 1

          Yeah. I think in this case maybe we need a different kind of movement or current, though.

          A movement for creative freedom for programmers is valuable in of itself, and that’s the niche that free software inhabits. It does a lot of good for programmers to be encouraged to write tools for themselves & each other – it pushes the state of the art forward (slowly and mostly in ways that relate to developer-friendliness) and then makes that new state of the art available.

          Catering to users & having high-level ideas about reworking computing to make the line between user and entry-level developer fuzzy – well, that’s a different attitude, a different philosophy, and a different group of beneficiaries. I wouldn’t expect the overlap between that and FOSS to be 100% because FOSS caters primarily to people who are already developers (and primarily to people who think UNIX is good enough for everybody forever). The ‘humanist computing’ current (which we can identify with Alan Kay & Bret Victor) is meaningfully different.

          (Even Doug Engelbart, though he has related goals and ideas, can be distinguished from this current. His sense of the appropriate shape of difficulty curves is closer to Stallman’s: he figured it was reasonable to expect users to memorize some pretty complex stuff before even beginning to use the system, on the grounds that doing so would make the system easier to use in practice. In a way, this is further afield than the classic hackers with their hands-on imperative. Still, Englebart connects with Kay on one account: computers are meant to augment the intelligence of man for purposes other than computing itself.)

          1. 1

            Interesting. I wonder if proprietary software will always be the best thing for non-developers, because the profit motive is the only thing that can drive most developers to do the gruntwork to serve people that aren’t them. The perpetual failure of the GNU/Linux community to produce a usable desktop environment for non-technical users seems to suggest that. I’m trying to figure out if free software has any hope outside of developer tools, because as successful as proprietary software has been, the abuse of power (both real and potential) is obvious. Blurring the line between developers and users would also be nice.

            1. 1

              I consider it a major failure mode, but I also think the problem has been overblown.

              There are organizations that specifically cater to end users, and who use basically the same dubious UI/UX philosophy as the proprietary software makers & produce stuff that, taken in a vacuum, is not worse or more difficult to understand. Ubuntu, out of the box, is not harder to understand than Windows or Mac OS for somebody who has never touched a computer before. (I like to say “1998 was the year of the linux desktop” because I still think end-user-focused distros have basically kept up with proprietary OSes in terms of usability since then.)

              The issue is that the apparent ease of use of proprietary OSes is actually mostly path-dependence, and the UX philosophy of hiding everything that might look complicated caters to shallow first impressions while making more complex behaviors harder to understand and harder to learn.

              FOSS people who care about usability should think carefully about the philosophy behind it & consider leap-frogging over Apple by making the difficulty curve shallow all the way through (as opposed to making the trivial things easy and simple-but-nontrivial things impossible).

              I think it’s possible to balance this with making the high-end tools productive for professionals.

              1. 1

                the problem has been overblown.

                To clarify, are you talking about the usability problems with free software, or abuse of power in proprietary software?

                1. 1

                  I’m talking about usability.

                  (I’m not very familiar with abuse-of-power problems, and the ones I’ve seen have been more on the side of stupidity than malice, but I don’t doubt that there are serious issues I’m unaware of.)

                  I consider abuse of power in control hierarchies in proprietary software to be a strictly larger problem because forking is never an option & quitting is only relatively rarely an option. But, otherwise, I don’t think it’s structurally different.

      2. 2

        FOSS isn’t capitalism and capitalism is built on FOSS.

        It’s quite amazing how much free and open source software is being produced every day. People that aren’t even paid build amazing libraries, software, … Just look at GitHub and how much stuff there is! Obviously quantity isn’t everything but the power law needs a lot of crap software to produce something good :)

        Most companies are pretty much build on top of FOSS now. If you took all the FOSS, companies wouldn’t be able to operate and would have to invest huge sums of R&D to make up for all of this. Typically a company will only sponsor one project. At the same time, there are 10 concurrent experiments going on on GitHub. It’s really hard to compete with that.

        We should celebrate this.

        Take anyone in the street, they will have no idea that everything they use is built on top of free or open source software. For them, all they see is the end-product. Attribution is part of licenses but usually it’s tucked away in a 10 level deep menu. For them we are a bunch of magicians that make good money and they probably don’t see that selfless and passionate part that is in a lot of us.

        1. 1

          That would be an appropriate response to the article had the article been appropriately titled! (Instead, the title is a reference to an article that hasn’t made the rounds here, about class division created by technical knowledge & how it impacts the design decisions in Mastodon & Pleroma.)

          FWIW, I agree with you that the open source reframing has made FOSS a great boon for capital. (Whether or not this boon for capital has gone on to benefit the rest of us moreso than had capital retained their earlier disgust reaction to free software is hard to say. Being encouraged to make use of free software has made it possible for programmers within industry to do more in less time, but I suspect this was being done during the 90s with BSD-licensed software and just not discussed with management.)

          1. 1

            Agreed, I completely ignored the article content so I could celebrate the passion of developers :)