Changeset d1d01c6 for content/en
- Timestamp:
- Apr 2, 2023, 3:20:19 PM (22 months ago)
- Branches:
- master
- Children:
- 962709f
- Parents:
- 7dad22e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
content/en/posts/dev-anarchism.org
r7dad22e rd1d01c6 5 5 * Why libre software development is not an anarchism 6 6 #+BEGIN_abstract 7 This short article is dedicated to explaining, why anarchism is not so8 revelant when we talk about libre software development. You might find 9 some comments on the internet where people comparingfree software to7 This article is dedicated to explaining why anarchism is not so relevant 8 when we talk about libre software development. You might find some 9 comments on the internet where people compare free software to 10 10 "communism ideologies". They share some common points, but they are not 11 11 true in general. … … 13 13 14 14 ** What is anarchism 15 We are not interested in a whole anarchist movement, but few crucial16 characteristics of that movement ([[https://en.wikipedia.org/wiki/Anarcho-communism][ancom]] to be precise):17 - Anarchism is about equal rights of everyone. There is no hierarchy of18 classes, noone can rule the other,there is no state.15 We are interested in a few crucial characteristics of the anarchist 16 movement [fn:anarchism-type]: 17 - Anarchism is about the equal rights of everyone. There is no hierarchy 18 of classes, no one can rule the other and there is no state. 19 19 - Because everyone is equal there is no property, everything is 20 20 collective and freely available to everyone 21 21 - Anarchism is about helping each other instead of competing 22 - Anarchism is about decisionmaking process. Instead of bosses/owners or 23 different sort of democracy processes, anarchists propose making 24 different desicions by a consensus. Consensus means that desicion will 25 be applied only if everyone voted "yes" for it, one "no" is enough to 26 not doing something. 22 - Anarchism is about the decision-making process. Instead of 23 bosses/owners making decicions or different sorts of democratic 24 processes, anarchists propose decision-making by a 25 [[https://en.wikipedia.org/wiki/Wikipedia:What_is_consensus][consensus]]. Consensus means that decision will be applied only if 26 everyone voted "yes" for it, one "no" is enough to stop the voting and 27 discussing process. 27 28 28 I have used only points that needed next in the article. Anarchism is 29 deep and old movement and I'm not so involved in it, but I do share its 30 ideals in general. 29 I have used only points that are needed next in the article. Anarchism 30 is deep and old movement and I don't provide all details of it in this 31 article. 32 33 [[../../public/images/BlackGnu.png]] 31 34 32 35 To learn more about anarchism you can read [[https://theanarchistlibrary.org/library/the-anarchist-faq-editorial-collective-an-anarchist-faq-full][An Anarchist FAQ]] by 33 installing it on debian-based systems by:36 installing it on Debian-based systems: 34 37 35 38 #+begin_src bash 36 apt install anarchism39 sudo apt install anarchism 37 40 #+end_src 38 41 39 42 ** Common 40 - Libre software projects are trying to be selforganized43 - Libre software projects are self-organized 41 44 - Libre software projects are against copyright (intellectual property) 42 45 - Libre software projects can be cloned by anyone and anyone can 43 contribute init, so everyone can be involved (so it belongs to everyone)44 - Some projects are trying to be decentralized by using federated communications (so no one owns infrastructure)46 contribute to it, so everyone can be involved (so it belongs to everyone) 47 - Some projects are trying to be decentralized by using federated communications (so no one owns infrastructure) 45 48 46 All those points have a small problems, which we discuss next. Also some 47 things are not common at all and differs from anarchism. 49 All those points have small problems, which we discuss next. 48 50 49 51 ** Difference 50 What differs intellectual property from physical property is an ability 51 to clone the work. In real world you can only transfer the object from 52 one person to another. In digital world you can copy the object of 53 person #1 to the person #2, so they have two equal objects in total. But 54 the problem of property it doesn't remove and even creates more problems. 52 What differentiates intellectual property from a physical property is 53 the ability to clone the work. In the real world you can only transfer 54 an object from one person to another. In digital world you can copy the 55 object of person #1 to person #2, so they have two equal objects in 56 total. But it doesn't remove the problem of property and even creates 57 more problems. 55 58 56 59 - Copyright :: Free software movement tries to use copyright to defeat 57 60 copyright as intellectual property defense mechanism. That is wrong 58 from anarchist point of view. To defeat copyright you just don't use 59 it or try to minimaze its usage, making it less legitimate. There is 60 Public Domain licenses to note, that you don't want to hold copyright 61 anymore, the only problem here is that such code can be privatized by 62 others. 63 - Vertical organization :: Libre software projects is organized 64 vertically, so there is the owner(s) that have more priveleges than 65 others. 61 from the anarchist point of view. To defeat copyright you just don't 62 use it or try to minimize its usage, making it less legitimate. There 63 are [[https://en.wikipedia.org/wiki/Public-domain_software][Public Domain]] licenses to note, that you don't want to hold 64 copyright anymore, the only problem here is that such code can be 65 privatized by others. 66 67 - Vertical organization :: Libre software projects are organized 68 vertically, so there is the owner(s) that have more privileges than 69 others. Users directly don't take part in a decision-making process 70 (the owner desides what to do with a project), but everyone can at 71 least clone the code. For example, you can't just push your changes, 72 you wait till main code maintainers will aprove your code. 73 74 Moreover when you write code you use other people work and often there 75 is the situations where you can't be involved in decision-making 76 process of the libs you use. Authors (intellectual right owners) can 77 remove all of their contributions from a software, so everyone else 78 will be forced to rewrite it. For example, such situations happen when 79 the project maintainers try to switch a license and not everyone agree 80 with such desicion or just not available for a contact. 81 66 82 - Private infrastructure :: Those owners might own crucial 67 83 infrastructure, that they don't share to public like the code. Also 68 some projects don't share database data. 84 some projects don't share database data. 85 69 86 - Centralized infrastructure :: Many infrastructures of libre projects 70 are centralized, so users are forced to be admins /moderators and so87 are centralized, so users are forced to be admins/moderators and so 71 88 on. Hierarchy partly is used because of that technical limitation. 72 89 90 - Competition over helping :: Because there are not many projects that 91 use consensus for decision-making, you can encounter a situation when 92 someone does not agree with the project direction, so they make a fork 93 of a project. That creates unnecessary competition, you can see it 94 when you try to find a library or free source project and there are 95 many similar variants that already exist. 96 73 97 ** Examples 74 - gnu.org :: The project and its website is centralized. There are 75 members, there are anonymous users and there are owners of website and 76 a non-profit company fsf. They decide to do something or not to do not 77 by consensus or even democracy process. 78 - Many web-based free software projects. 79 80 ** Why anarchism in software development is real in a future 81 - You don't need a lot of resources to contribute. Computers are very affordable, programming can be learned by anyone. 82 - People are motivated to self-organize horizontally, but we don't have right technology for it yet. 98 - gnu.org :: The project and its website are centralized. There are 99 members, there are anonymous users and there are owners of a website 100 and a non-profit company fsf. They decide to do something or not to do 101 not by consensus or even democracy process. 102 - [[https://w96k.dev/en/posts/php-review.html][symfony]] :: Many web-based free software projects don't share database 103 information, have ads or other information and shares only 104 maintainer's points of view instead of all devs. 105 - 3rd party language implementations vendors :: Oracle, Microsoft, Zend, 106 Google and so on. They have the power over "their" open-source 107 languages like Go, PHP, Java, C#, Typescript and so on. You can 108 contribute, but you don't know which direction will be choosen by 109 owners of the project. 110 111 ** Why anarchism in software development is real in the future 112 - You don't need a lot of resources to contribute. Computers are very 113 affordable, programming can be learned by anyone. The problem is 114 social organization. 115 - People are motivated to self-organize horizontally, but we often don't 116 have right technologies for such organization over the internet. 83 117 84 118 ** What limitations are on the way 85 - Copyleft licenses are weak against ill igal corporate usage. Public119 - Copyleft licenses are weak against illegal corporate usage. Public 86 120 domain like licenses can be privatized. 87 - Programming language vendor tries to limit a programmer in 88 expressiveness. 121 - Programming language vendor (like Oracle, Zend, Microsoft or whatever 122 company that stays behind the language implementation) tries to 123 artificially limit a programmer in expressiveness by not implementing 124 some features. 125 - Some limitations are presented by tech-stack we use. For example, C 126 language have no reflection support, you can't understand what is 127 going on in runtime without recompiling something with debugging 128 symbols and using external tools such as GDB. 129 130 Moreover if you want to change ls command and add a new flag, you will 131 need to go through many steps. You will need to clone coreutils repo, 132 find exact command, add your flag, recompile it, install it instead 133 presented coreutils in your systems and somehow maintain it alongside 134 with coreutils updates recompiling it every time. It sucks, but there 135 is a better tech for free software. 136 137 For example, Common Lisp have excellent introspection and reflection 138 tools, so if you use a program you can change anything while it is 139 being running without losing any state. It might be hard to understand 140 if you haven't learned Lisp, I recommend give it a try. [fn:common-lisp] 141 - Closed hardware. Even tho hardware became cheap, but understanding of 142 what's going inside became even more complex than before. There is 143 lack of hardware documentation, that usually present for internal use 144 at a company (for example Intel hides processor docs inside their 145 company). 146 - Closed software. There is closed bios and technologies such as Intel 147 ME, AMD PSP, closed processors and GPU drivers and other hardware 148 firmare stays closed. If you want to understand how exactly your 149 hardware works, you will encounter different problems. 89 150 90 151 ** Other articles on a subject 91 152 - [[https://applied-langua.ge/software-and-anarchy.pdf][Software and Anarchy]] 153 - [[https://events.ccc.de/congress/2005/fahrplan/attachments/572-SoftwAnarchyShort.pdf][Free Software and Anarchism - does this compute?]] 154 155 ** Conclusion 156 In general, we can see that free/open software contributors can share 157 same ideals, but because of the methods they use as developers, they are 158 sticked to the use of plain old vertical organization, when we hold all 159 information by ourselves and not trying organize horizontally. 92 160 93 ** Conclusion 161 Nevertheless many projects try to eliminate vertical organization as 162 much as possible and allow anyone to contribute. They tend to have 163 strong community, that tries its best to self-organize the developing 164 process. Someday we will see totally horizontally way for software 165 development. 94 166 95 Remember that I share my personal opinion on the subject and the topic itself is very subjective. 167 Even tho we as developers have an ability to do a fork of project, we 168 don't have a social mechanism for desicion making to help each other and 169 move the project in a common direction instead of competing making 170 similar project, but different in one or two details. Most of the 171 problems lies in social domain, but some is made by technologies we use. 172 173 [fn:anarchism-type: [[https://en.wikipedia.org/wiki/Anarcho-communism][Ancom]] to be precise] 174 [fn:common-lisp: [[https://youtube.com/watch?v=6pMyhrDcMzw][REPL power demonstration video]]. You don't need to setup compiler to specially recompile the project, it is built in into the language]
Note:
See TracChangeset
for help on using the changeset viewer.