For a moment I considered working on a wiki engine written in Go (Oddµ), but then I remembered that Go belonged to Google and they might sunset it at any moment, or use it to deny access to their platforms like Java licenses being used against Google by a competitor, or the might add features nobody wants, or remove features people want, without a good process. Or perhaps there are safeguards against all that? The problem is my lack of trust. I don’t trust corporations any more.
Now I want to know what popular programming languages are controlled by corporations, or by people owing their position to a job at corporations, and languages controlled by individuals, coops, associations, or other more relatable forms of self-government. This is independent of the software license, I think. Even if a hypothetical language were 100% free software, forking isn’t free and so governance matters to me, now. I used to think differently, but not any more.
This trickier than I thought. I thought I might start with Perl 5. Who makes decisions?
@wim_v12e pointed out that The Perl Foundation is an alias for a non-profit organisation called Yet Another Society and their governance is explained on their legal page. I hadn’t seen that link when I went looking for something like it. These are the bylaws and their summary that I want. And yes, it is undemocratic: “The board is self-electing…” or take a look at article II of the bylaws: “There shall be no members.” I mean, in a way, I understand. It’s a meritocracy and they want to avoid all bureaucracy. But seen another way: I have no rights except for the benevolence of the board. I need to trust them and I will never be able to organise against them since I can’t ever get elected unless the board I want to change does in fact elect me.
@njoseph mentioned Nim but it’s weird. Their homepage mentions that the main sponsor is paying “+$19000/month” but regarding governance, all I can find is a statement on Wikipedia: “designed and developed by Andreas Rumpf.” Is there anything else? From my point of view, interested as I am in governance, all these homepages need a better explanation.
@takeonrules mentioned Ruby. I skimmed the Ruby Bylaws. One interesting aspect are the corporate members. They exist (👎) but are limited to one person per company (👍). I guess if it weren’t limited like that, a company could send tons of people to subvert the board. Basically this is to avoid regulatory capture! Sadly, this is also pretty self selecting: “The Board shall nominate no more than 12 candidates seeking board membership in any given election.” This sounds like a one party state to me. The weirdness is tempered somewhat by the mandatory representation rules: “at least: (a) 28% female Directors, (b) 28% non-Caucasian Directors, and (c) 14% from any categor(ies) of persons (e.g., race, gender, ability) …” This is pretty progressive, at least.
R fares much, much better. The R Foundation was mentioned by @g. The R Foundation is an association under Austrian law (”Verein”) and its statues (the bylaws) can be downloaded in English and German. Only people can be voting members (but corporations can be supporting members, i.e. sponsors). Commendable!
I assume that the Austrian laws governing associations are similar to the Swiss laws governing associations. Germany, Austria and Switzerland have a culture of associations: choirs, gymnastics, shooting, … everything is an association. I love it. For those of you interested in a short summary of what a Swiss association is (like FIFA, ugh! but bear with me…) I wrote a short summary of Swiss associations on the Corporate Membership page, on Community Wiki. The actual law is available in English although the Swiss government websites don’t seem to think that Cool URIs don't change. And worse: strangely enough I cannot open this link in Firefox. Open it elsewhere and look for “Chapter Two: Associations”.
@trechnex mentioned that the Python Software Foundation is a charity in the United States. Ah, Python! When I learned about Python I was already deep into Perl and it never quite seemed worthwhile to change. But now Python is still popular but Perl is not. I backed the wrong horse! But back to governance: As I explained above, however, a foundation guarantees no rights to users. In Switzerland, for example, you can take the leadership of an association to court for not adhering to the bylaws; all members get exactly one vote by default. That seem so much better than a foundation unless I’m misunderstanding. Also: is a mission statement like on the Python Foundation’s page legally binding? The problem is that programming languages aren’t fungible: if you’ve built a company on Python 2 and disagree with the changes made with Python 3, then what? You have the freedom to fork but that’s it. Perhaps it’s simply the Zeitgeist influencing me: if I trust an entity now that doesn’t mean I’ll trust them in ten years. And what happens then? Sure, democratic principles don’t mean things will be safe. But at least there’s hope…
@ed1conf chimed on the Python question and said that any corporate-owned language is a risk: Go, Swift, Dart, Kotlin, Java, Hypercard, VB, FoxPro, … and I agree. A language with “a formal & publicly-available spec, preferably with multiple implementations” (such as the various Python implementations) would seem like a boon. The Python question kept bugging me, however. Perhaps this is my age showing, having grown up in a time when many people felt “benevolent dictators for life” (BDFL) were a good thing, and Guido van Rossum was one of them. But then again, he retired and the Bylaws of the Python Software Foundation talks about members and votes. Sadly, it’s a bit more complicated:
Section 4.1. says: “There are five (5) classes of members of the corporation, denoted as Basic Members, Supporting Members, Managing Members, Contributing Members and Fellows.” Section 4.4. says: “Basic Members have no voting rights” – that makes me sad. But there’s another section that balances this out: Section 4.7. says: “Contributing Members … must commit to working at least five hours per month … where the work relates to the creation or maintenance of open source software available to the public at no charge. … have voting rights” – that seems like a very cool thing!
I still think simpler associations and coops are the true goal, though.
Later, @deshipu chimed in and said:
The PSF doesn’t control the Python language — they only handle funds, sponsoring, organization of events, promotion and such. They also hold the trademark for the Python name and logo. But the actual decisions about the technical shape of Python, which were done by the BDFL Guido Van Rossum, are now done by the Steering Council as described in PEP-0013.
What does it say? The council makes the decisions. The candidates for council elections are nominated and elected by core members. To become a core member, you need to demonstrate lots of good traits as listed and you get two-thirds positive votes from the core team and no veto from the steering council. Thus, it’s a form of self-selection. It sounds good, but also difficult to introduce change. After all:
Core team members are always looking for promising contributors, teaching them how the project is managed, and submitting their names to the core team’s vote when they’re ready.”
@wim_v12e brought up standardised (ISO/IEC/IEEE/...) languages like C/C++, Fortran, OpenCL; and tomasino @tomasino brought up Ada – “ISO/IEC JTC 1 SC 22 Working Group 9 (the group responsible for Ada Standards)” – so the question is, how does this all work?
@schaueho linked me to Kent Pitman’s Common Lisp: The Untold Story. It’s not about the ISO standards in particular, but about ANSI standards. It’s all about the role of chance and the role of finance (who is going to pay for the people doing the work?) – recommended reading, I think.
When the manual was done and it was time to publish it, I was asked to sign over the copyright to MIT as part of the publication process. This seemed wrong to me, since I had done the work myself without anyone paying me, but I wasn’t sure what option I had, so I eventually just said ok. The manual sold two press runs and I computed later that MIT had made about $17,000 in net profit (the equivalent of my first year salary after graduating). I saw none of that money—all because I didn’t realize I should say, “Wait a minute. You didn’t pay for it and I won’t sign it over.”
– Kent Pitman
Anyway, back to the ISO standards process. @tastytea offered a link to Consensus. I find it agreeable enough. It describes how things might work in a friendly environment. It doesn’t exactly sound actionable: it doesn’t describe any actual procedures one needs to follow; it just offers guidance on the interpretation of the procedures defined elsewhere. I offer the following example from Meetings and Participation, also a link put forward by @tastytea:
Consensus on changes: For every proposed change brought forward to full committee at the end of the week, it is the responsibility of the WG21 convener to determine whether there is consensus to adopt the change. First, to determine whether there is general agreement, the convener normally takes a poll of the individual national body-appointed experts in the room, not including observers who are not experts officially representing a national body; unanimity is not required. Then he also checks whether any national bodies have strong objections that need further attention before the change is adopted; again unanimity is not required, but we try to avoid proceeding with a change if there are sustained objections from several nations.
It’s all very much “soft power”: What is general agreement? What are strong objections? Is this process ever endangered? The procedures seem to handle how to change the standard, but how do you change the procedures themselves?
Most damning of all, however: you need to be an ISO member in order to vote. @tastytea had this covered, too: “Membership costs US$1,950 a year.” If you check WG21 (ISO C++ Committee), another link provided by @tastytea, you’ll see Google mentioned again and again. Is this regulatory capture? Is this simply how things work? Funding is important, after all. Kent Pitman also mentioned it up above. Where does that leave non-corporate users? The level of organisation required to get anything done without money seems prohibitive. Is this just the facts of life or is a different world possible? I mean, who are the stakeholders? Are stakeholders with lots of money on the line more important than other stakeholders? Should there be different languages with different governance models? How would this ever work without money, I wonder.
@tastytea had more links to share! If you’re interested in the process in general (for C++), take a look at The life of an ISO proposal: From "cool idea" to "international standard" and How To Submit a Proposal. Sobering! Anyway, apparently the formal procedures are managed at the ISO-level. Makes sense.
I think the question of copyright of a language specification, of an API (remember Java?), or even a constructed language (remember Klingon?) are super interesting. Suddenly copyright doesn’t just cover the thing you are saying but there is another layer of copyright governing the language you’re using to express yourself. This is related to my interest in Semiotic Standard. @deshipu said that these icons “are utilitarian, informative symbols by their function, and not works of art. Industrial design and such doesn’t fall under copyright protection.” That would be very cool. And it sort of makes sense. Where would we be if makers of media players had to license symbols ⏏️ ▶️ ⏸ ⏹ ⏪ ⏩ and ⏮ ⏭ – I guess? I have no idea, actually.
Anyway, we’re coming to the end of this exceedingly long blog post summarising the excellent discussion I’ve had with many people on Mastodon. Did I mention you should join Mastodon? You should!
If you write some software in a particular language, can you copy the compiled program to another computer and expect it to work? If the internet stopped functioning, would you be left helpless?
This matches the apocalyptic Zeitgeist we live in. “All hail Eris!”