Hacker News new | ask | show | jobs
by pjmorris 832 days ago
"What does society need? It needs information that is truly available to its citizens—for example, programs that people can read, fix, adapt, and improve, not just operate. But what software owners typically deliver is a black box that we can’t study or change. Society also needs freedom. When a program has an owner, the users lose freedom to control part of their own lives."

- Free Software, Free Society: Selected Essays of Richard M. Stallman

1 comments

"But what software owners typically deliver is a black box that we can’t study or change"

I think a lot about how RMS's view on software freedom was warped by the highly intelligent and intellectual peer group that he must have been involved in at MIT.

It strikes me as endearing, but naive, to believe that most people would be able to treat software as anything but a black box simply if the source code were available to them.

Certainly, for most people using computers at MIT, when RMS was writing, this was true. But it is definitely not true that source code would have any use to most computer users (smart phone users, really) today. They simply would not have the ability to do anything with it.

I have never looked at the source code for vim, but I have used features that people other than the original developers have created.

I have however looked at the mod_proxy_wstunnel module in apache and edited it to suit my needs. I never expected to do this, I'm not a developer -- certainly not a C++ developer, however running

   sed -i 's/WebSocket/websocket/g' ./modules/proxy/mod_proxy_wstunnel.c
Means it works for my use case. In a world without free software I would not be able to do that simple thing.

Likewise I have changed some custom filters on ffmpeg for my own build. Again that's C, and my C is horrible. I don't need to deal with the somewhat opinionated views of the ffmpeg developers to fold them back upstream - I can just have my 2 or 3 changed files to use them for my purpose.

Just because I don't look at the code for 99% of the software I use, it doesn't mean I don't benefit from it being free software, and for the 1% of cases when I do need to change something, I can. That's freedom, and I'm happy that the GPL ensures my freedom.

> It strikes me as endearing, but naive, to believe that most people would be able to treat software as anything but a black box simply if the source code were available to them.

I don't think end users modifying software is a realistic scenario, but that doesn't mean there aren't realistic scenarios enabled by Free software.

Having (appropriately licensed) source code available means people can pay others (with the necessary skills) to adapt software to their needs. Closed source software greatly restricts or removes that possibility.

I don't think that's fair. There are a lot of instances where people go out of their way to experiment with systems despite limited literacy. The example that seems most salient is PSP homebrew, something I was doing at the age of 13 without a single hint of how anything computer related functioned.

The question becomes one of community and accessibility, and community begets accessibility. Opening source allows for easier access to fundamental aspects and lowers the "activation energy" of the whole process to develop and thus invites greater participation. Like how many man-hours get spent probing for vulnerabilities that enable jailbreaking? And note that these are specialized rarefied man-hours, and the whole system is also adversarial in that those seeking to crack the code are in competition with those trying to conceal it.

Pull all that out and make it all accessible and perhaps 13-year-old me would've tried to recode that 64x64 limit on the icons and learned something in the process, enable, iterate, participate...

I think Free software encourages exceptional end users to participate as you're describing. I didn't mean to imply differently. Encouraging this kind of development is definitely good.

The bigger win that I see, though, is enabling communities of users to band together and work together or finance development of software with the community's common goals in mind. That's not something that proprietary software has historically done much of, and proprietary software doesn't permit that community to fork the software when goals don't align.

> programming new editing commands was so convenient that even the secretaries in his [Bernie Greenberg] office started learning how to use it. They used a manual someone had written which showed how to extend Emacs, but didn't say it was a programming. So the secretaries, who believed they couldn't do programming, weren't scared off. They read the manual, discovered they could do useful things and they learned to program.

https://www.gnu.org/gnu/rms-lisp.html

It doesn't really need to be them doing the studying, making the code viewable allows end-users to choose who to trust or to get second opinions, instead of only having the word of the company producing the software.

One or multiple people who can study the software, even in small numbers, are still adding more information, and so more potential trust, than the alternative.

Free software is not just about having the technical means to modify the software (access to the source code and not being impeded by technical measures against running modified versions instead of the original software) but also the legality to do so. Free software grants any users a legal right to modify it. That many users won't modify free software (because they lack the motivation/time/money/need) is not a strong argument against the usefulness of free software, because the users who would modify free software can do so without worrying about being sued. Additionally, the end users who won't modify free software can still benefit from the freedom because copyright is two-sided. Not only is it legal for people to modify free software, it's legal for end users to use other people's modifications of free software.

Free software is especially important in cases where the developers of proprietary devices use DRM as a secondary legal barrier (provided by 17 U.S. Code § 1201, section 1201 of the DMCA, in the US [1][2]) against otherwise non-infringing actions such as inspection (which is why access to source code remains a crucial requirement of free software alongside the freedom to modify) and repair. (Tangent: The EFF is arguing in Green v. Department of Justice that the anti-circumvention portions of DMCA 1201 violate the First Amendment [3].)

[1] https://en.wikipedia.org/wiki/WIPO_Copyright_and_Performance...

[2] https://www.law.cornell.edu/uscode/text/17/1201

[3] https://www.eff.org/cases/green-v-us-department-justice

Yeah, I was recently reading the history of smalltalk and some of it's creators goals was to make it possible for everyone to be "computer literate". That is everyone being able to make their own programs without specialist programmers doing it.

In that book it seems that Kay eventually gave up that idea. Noticing it seemed that people would take years to be capable of doing interesting stuff with computers.

Which I think might be why his later research was more about just making code smaller and more comprehensible by domain experts.

Edit: It is worth noting that the idea seems to have been picked up by Dynamicland via their Realtalk protocol. Though I suspect they have ways to go before achieving that goal.

> But it is definitely not true that source code would have any use to most computer users (smart phone users, really) today. They simply would not have the ability to do anything with it.

It seems like GitHub and other sources of open source software offer an opportunity to test your hypothesis empirically. I am biased to think that its existence demonstrates that source code is of use to at least many users.

Consider the situation where people bring their car to a mechanic other than the manufacturer to have changes or maintenance done to it. Imagine a world where the same thing is both possible and encouraged with software. That is the Free Software vision.