Those interested in how prototypes and classical inheritance relate (and don't) may be interested in work I did on GNU ease.js, which works with ECMAScript 3+. I have since extended it to support Scala-like traits.
The `class' keyword in JS still leaves much to be desired; it's just syntatic sugar around the prototype model. There's nothing wrong with that model---it's just important to understand how it differs from what OOP developers traditionally expect.
No. You aren't being denied your freedoms on someone else's computer because you have no right to exercise them to begin with---it's not yours.
It's the same concept with the AGPL---I have no right to modify the source code on someone else's server; I'd need to install it on my own.
If you had to have access to the source code for everything you used, it'd be an almost impossible burden. rms takes public transportation in Boston, for example. Those terminals are interactive touchscreens, required for payment and printing tickets. He'd be unable to use the transit system.
From stallman.org:
> However, if I am visiting somewhere and the machines available nearby happen to contain non-free software, through no doing of mine, I don't refuse to touch them. I will use them briefly for tasks such as browsing. This limited usage doesn't give my assent to the software's license, or make me responsible its being present in the computer, or make me the possessor of a copy of it, so I don't see an ethical obligation to refrain from this. Of course, I explain to the local people why they should migrate the machines to free software, but I don't push them hard, because annoying them is not the way to convince them.
> Likewise, I don't need to worry about what software is in a kiosk, pay phone, or ATM that I am using. I hope their owners migrate them to free software, for their sake, but there's no need for me to refuse to touch them until then. (I do consider what those machines and their owners might do with my personal data, but that's a different issue, which would arise just the same even if they did use free software. My response to that issue is to minimize those activities which give them any data about me.)
> That's my policy about using a machine once in a while. If I were to use it for an hour every day, that would no longer be "once in a while" — it would be regular use. At that point, I would start to feel the heavy hand of any nonfree software in that computer, and feel the duty to arrange to use a liberated computer instead.
> Likewise, if I were to ask or lead someone to set up a computer for me to use, that would make me ethically responsible for its software load. In such a case I insist on free software, just as if the machine were my own property.
That's orthogonal to the issue. Of course you have the freedom to refrain from use of any technology, unless you're somehow being mandated by law to use it.
Well, since we are already orthogonal, lets turn this the other way round. Would you support the idea that any software that you are mandated by law to use, should be required to be open source?
And just like I won’t give you my source code unless you give me the source code of your laptop, I won’t give Google my source unless they give me the source code of all their products.
I have that very same right with any Service-as-a-Software-Substitute as well
The nice thing with using Automake is that it gives all the standard build targets with little additional effort (for example, `make dist` for producing the distribution tarball, and `make distcheck` for verifying that it's good).
Conventions exist in every language. `car', `cons', and `cdr' are also part of certain standards (e.g. RnRS). And, honestly, they compose a bit better than `first', and `rest' for combinations like `caddr' and `caaddr'. I suspect that you're going to be even more unhappy with those constructions.
The same can be said about older languages like C, which also have standardized notations.
Because it is broken. It's not broken if you've already learned it and internalized the terminology; it's broken for everyone else because it's needlessly difficult to learn (and actively dissuades people from wanting to learn it, hence all the articles evangelizing Lisp).
By that rationale every foreign language is broken, and, maybe more pointedly, every language but Chinese (or possibly Spanish) is broken and needlessly difficult to learn.
The trend of history since babel seems to be going in this direction. If there is eventually a universal common tongue this rational will be proven right.
I'm giving a talk in March at LibrePlanet 2018 entited "The Ethics Void". The lack of ethics in CS education is a core component of the talk. I'm neck-deep in my talk research right now, so if you are a, student, educator, or anyone else with thoughts on ethics in CS, I'd love to hear from you:
Unfortunately, the codes of ethics, courses, etc that do exist largely ignore user freedoms (in a software freedom sense) and the host of ethical concerns that come with it. If you have examples that _do_ address those issues, I'd really appreciate hearing about it.
> and I think it's important to remember that both want user freedom
As a free software activist, I haven't found that to be true. Remember that the term "open source" was created explicitly to sell the development methodology to businesses without talking about the ethical issues.
When developers write software under the umbrella of "open source", many aren't even aware of software freedom issues---they may be doing it because their peers are doing it; because they were told they should do it for a portfolio to get a job; or maybe because they like sharing their software with others. Some businesses liberate their code merely for contributions or press.
That's certainly not the case for all open source developers---there is, as you said, an overlap. But it's important to use the term "free software" and talk about software freedom to start those discussions and get people thinking about software freedom.
As a free software activist, do you think our effectual software freedoms would have advanced as far as they have without OSI's emphasize on the practical aspects of libre software? Do you think Eric Raymond and Bruce Perens could have made similar inroads with businesses if they had stuck to the (ambiguous, IMO) "free software" moniker?
I can't speculate what the norm might be today if businesses were talking about free software instead of "open source". It might have provided benefit to the movement, or it might have diluted the term. Ironically, in making the distinction between open source and free software, we have the opportunity to clarify its meaning and make a clear distinction between methodology and ethics/ideology.
Open source---regardless of whether history would have been different if the term had never originated---has contributed significantly to the dissemination of free software and the amount of software released under free licenses. But it's completely disproportionate to the amount it has advanced the principles of software freedom.
Is it good that more people are using free software? Is it good that there is so much of it available? Absolutely---I'm able to run a fully free system, down to the BIOS. But I'm among a small group that does so on principle, and will not abandon freedom for proprietary software that is more feature-rich, performant, etc.
> What is the boundary, in digital devices, between hardware and software? It follows from the definitions. Software is the operational part of a device that can be copied and changed in a computer; hardware is the operational part that can't be. This is the right way to make the distinction because it relates to the practical consequences.
> There is a gray area between hardware and software that contains firmware that can be upgraded or replaced, but is not meant ever to be upgraded or replaced once the product is sold.
> I'll believe it when I see it. We have become too dependent on core components that are not being properly maintained, lack funding or both. [...] more funding is put towards critical GNU components (instead of new bloated projects).
The GNU Project is a separate entity from the FSF. The FSF provides infrastructure and does provide fundraising / direct funds for certain projects, but otherwise, GNU projects are maintained by individuals with no connection to the FSF. To offer you program to GNU, you send it to GNU volunteers for evaluation (I am one of two active evaluators), after which it is sent directly to rms for final determination. The FSF is involved only if we need to get the sysadmins involved for something.
If you support a GNU package, donate directly to that project (or via the FSF's fundraising page, if applicable).
> I still support the idea of Libre / Free Software, just not the religion and church that popped up around it.
You criticize the FSF for "making compromises", and then criticize them for sticking hard to their principles.
I disagree that they are compromising on their principles.
https://www.gnu.org/software/easejs/manual/easejs.html#Imple...
I also wrote a paper on some of the concepts:
https://mikegerwitz.com/papers/coope/coope.pdf
The `class' keyword in JS still leaves much to be desired; it's just syntatic sugar around the prototype model. There's nothing wrong with that model---it's just important to understand how it differs from what OOP developers traditionally expect.