2019-12-21 Who controls a programming language?

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.

Oddµ

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?

perl.org links to perlfoundation.org. But if I understand it correctly, a foundation is not democratic. I’m trying to make sense of What is a foundation? Is there an easy answer?

perl.org

perlfoundation.org

What is a foundation?

@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.

@wim_v12e

their legal page

@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.

@njoseph

@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.

@takeonrules

Ruby Bylaws

regulatory capture

The R Foundation

@g

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”.

Corporate Membership

available in English

Cool URIs don't change

@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…

@trechnex

Python Software Foundation

@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:

@ed1conf

Guido van Rossum

Bylaws of the Python Software Foundation

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:

@deshipu

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.

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?

@wim_v12e

@tomasino

@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.

@schaueho

Common Lisp: The Untold Story

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:

@tastytea

Consensus

Meetings and Participation

@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

WG21 (ISO C++ Committee)

@tastytea

@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.

@tastytea

The life of an ISO proposal: From "cool idea" to "international standard"

How To Submit a Proposal

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.

remember Java

remember Klingon

Semiotic Standard

@deshipu

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!

join Mastodon

@takeonrules had one last input: Programming Language Fragility.

@takeonrules

Programming Language Fragility

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!”

​#Programming ​#Copyright

Comments

(Please contact me if you want to remove your comment.)

Thank you for the summary and whirlwind tour.

As someone that works in open source software for research libraries, one observation we’ve had is that we have come to need specifications more than implementations. The underlying languages can change but if things are built to specs, in theory we have portability.

My team is participating on a grant for the infrastructure of Emulation as a Service (with several other institutions across the globe) as well as software/data preservation. These two go hand in hand regarding the apocalypse.

Personally, I’m more interested in the artifacts generated than the processes used to generate them (e.g. I value my static website more than the scripts that generate it, though I appreciate them very much). So something like the Oxford Common File Layout (OCFL) is very appealing.

– Jeremy Friesen 2019-12-21 21:01 UTC

Jeremy Friesen

---

@holger also wondered about *Rust* and *Smalltalk*.

@holger

a big long page full of teams and working groups

ANSI Smalltalk Standard

– Alex Schroeder 2019-12-21 23:01 UTC

---

Good that you are making this summary. I was kind of lost in that discussion on Masto 🙂

Of course, there is still one more option - create your own language, make it popular a control it... You can also make an organization for standardizing it - something like ALIS - Alex Schroeder Institute of Standardization 🙂

– Peter Kotrčka 2019-12-25 10:30 UTC

Peter Kotrčka

---

Haha. 😀

The reason that kicked it all off was the general anti-Google sentiment I’m seeing everywhere extending to the programming language Go, which took hold of me because of the Java struggle in Oracle vs. Google due to Android, and then wondering: how justified is this aversion, actually? And how are other la gauges better or worse?

It’s been very enlightening because I had never actually taken the time to go and look for the information on governance.

– Alex Schroeder 2019-12-25 20:47 UTC

---

Yeah, but.. everyone is jumping to this “new languages” train, be it Go or Rust.. and 99% does not really care - although, I think there was a debate about a Google logo on the Go webpage...so, maybe I am just not seeing those antigooglers so often.

– Peter Kotrčka 2019-12-25 23:50 UTC

Peter Kotrčka

---

One theme of your post seems to be that in too many cases, there’s no formal guarantee of influence for many ordinary people – to make sure the future of some programming language is not simply decided on the basis of profit or the politics of some corporation.

You seem to assume that by means of a formal majority vote, the influence of corporations can be avoided easily. I agree that it can be avoided to some extent. However, only to some extent: A formal majority vote forces corporations to influence the people, i.e. to influence the decision indirectly by means of mass manipulation (which is what the really big corporations, like Facebook, Google, Amazon are specialized on, because this is an essential part of their business model).

Looking at e.g. the history of germany, it is obvious that there is no strong guarantee the majority vote won’t be used to give power to a few evil people in the end. Also, if I may judge that you favour simplicity, you will probably agree that the mainstream in programming culture is not always rational – it is heavily influenced by what the “best practices” of the industry are.

IMHO democracy doesn’t help when your culture is broken. The real focus must be on (re-)discovering and entering deeper into the truth (the “right culture”, whatever that is) itself (this also applies to our society in general).

– Anonymous 2020-01-06 19:51 UTC

---

Both aspects are true. The part I liked about the R bylaws for examples was corporate members – no matter how big! – seem to get just one vote. And don’t forget that lessons were learned by democracies as well. Many countries have the law, and a constitution, and changing the constitution takes a whole lot more. Germany, for example, has these fundamental rights, too. Changing them is harder. It’s not perfect by any means, and the trust in institutions, the *culture* around the legal frameworks is just as important (one of key points the What Trump Can Teach Us About Con Law podcast is trying to make).

fundamental rights

What Trump Can Teach Us About Con Law

So yeah, no guarantees, but still safeguards.

– Alex Schroeder 2020-01-06 21:23 UTC