Changeset d1d01c6 for content/en


Ignore:
Timestamp:
Apr 2, 2023, 3:20:19 PM (22 months ago)
Author:
w96k <w96k@…>
Branches:
master
Children:
962709f
Parents:
7dad22e
Message:

Update blog

File:
1 edited

Legend:

Unmodified
Added
Removed
  • content/en/posts/dev-anarchism.org

    r7dad22e rd1d01c6  
    55* Why libre software development is not an anarchism
    66#+BEGIN_abstract
    7 This short article is dedicated to explaining, why anarchism is not so
    8 revelant when we talk about libre software development. You might find
    9 some comments on the internet where people comparing free software to
     7This article is dedicated to explaining why anarchism is not so relevant
     8when we talk about libre software development. You might find some
     9comments on the internet where people compare free software to
    1010"communism ideologies". They share some common points, but they are not
    1111true in general.
     
    1313
    1414** What is anarchism
    15 We are not interested in a whole anarchist movement, but few crucial
    16 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 of
    18   classes, noone can rule the other, there is no state.
     15We are interested in a few crucial characteristics of the anarchist
     16movement [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.
    1919- Because everyone is equal there is no property, everything is
    2020  collective and freely available to everyone
    2121- 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.
    2728
    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.
     29I have used only points that are needed next in the article. Anarchism
     30is deep and old movement and I don't provide all details of it in this
     31article.
     32
     33[[../../public/images/BlackGnu.png]]
    3134
    3235To 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:
     36installing it on Debian-based systems:
    3437
    3538#+begin_src bash
    36   apt install anarchism
     39  sudo apt install anarchism
    3740#+end_src
    3841
    3942** Common
    40 - Libre software projects are trying to be self organized
     43- Libre software projects are self-organized
    4144- Libre software projects are against copyright (intellectual property)
    4245- Libre software projects can be cloned by anyone and anyone can
    43   contribute in it, so everyone can be involved (so it belongs to everyone)
    44 - Some projects are trying to be decentralized by using federated communications (so noone 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)
    4548
    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.
     49All those points have small problems, which we discuss next.
    4850
    4951** 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.
     52What differentiates intellectual property from a physical property is
     53the ability to clone the work. In the real world you can only transfer
     54an object from one person to another. In digital world you can copy the
     55object of person #1 to person #2, so they have two equal objects in
     56total. But it doesn't remove the problem of property and even creates
     57more problems.
    5558
    5659- Copyright :: Free software movement tries to use copyright to defeat
    5760  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
    6682- Private infrastructure :: Those owners might own crucial
    6783  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
    6986- Centralized infrastructure :: Many infrastructures of libre projects
    70   are centralized, so users are forced to be admins / moderators and so
     87  are centralized, so users are forced to be admins/moderators and so
    7188  on. Hierarchy partly is used because of that technical limitation.
    7289
     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
    7397** 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.
    83117
    84118** What limitations are on the way
    85 - Copyleft licenses are weak against illigal corporate usage. Public
     119- Copyleft licenses are weak against illegal corporate usage. Public
    86120  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.
    89150
    90151** Other articles on a subject
    91152- [[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
     156In general, we can see that free/open software contributors can share
     157same ideals, but because of the methods they use as developers, they are
     158sticked to the use of plain old vertical organization, when we hold all
     159information by ourselves and not trying organize horizontally.
    92160
    93 ** Conclusion
     161Nevertheless many projects try to eliminate vertical organization as
     162much as possible and allow anyone to contribute. They tend to have
     163strong community, that tries its best to self-organize the developing
     164process. Someday we will see totally horizontally way for software
     165development.
    94166
    95 Remember that I share my personal opinion on the subject and the topic itself is very subjective.
     167Even tho we as developers have an ability to do a fork of project, we
     168don't have a social mechanism for desicion making to help each other and
     169move the project in a common direction instead of competing making
     170similar project, but different in one or two details. Most of the
     171problems 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.