A devastated Software Systems student, libre software promoter. Sometimes I draw pixel art. Very fond of classical Computer Science and Touhou project.

Autism® Inside™

  • 1 Post
  • 36 Comments
Joined 2 years ago
cake
Cake day: March 28th, 2023

help-circle
  • Hi. I understand your rant. Yes, the quality of most frameworks in the wild is pretty low, especially if it is one of the more niche algorithm nobody takes care to audit, or the programming language lacks safety syntax, like C++, which allows writing mixed C and C++ code and only few people understand the necessity of idiomatic C++. And of course, inexperienced devs go the easiest way.

    Don’t give up and take this as a challenge. It is a skill to understand what the other guy wrote. And this skill takes years to develop.



  • It’s more efficient for memory until you start working with different data. Threads also rely on the same syscall on Linux, clone(2), but they don’t share the entire context by default, so they’re more lightweight. It is recommended to use pthreads(3) API instead of fork(2).














  • The goal of FOSS has been evolving since.

    Let’s start from Richard Stallman, the first promoter of Free Software (that’s the original naming of FOSS, free means not at no-cost but as of freedom to share and modify the software).

    In 1970s, there has been little-to-no protection of sharing the software (examples of then-important software was: code compilers (C, FORTRAN), interpreters (LISP, also FORTRAN), mathematical tools, hardware drivers, shell utilities and the operating system itself). The main consumers of software were the U.S. Department of Defense (DoD), DARPA (a military experiments lab, creator of the ARPANET that then evolved into the modern internet), university researchers (like MIT Artificial Intelligence lab) and the computer manufacturers (like IBM). There used to be no difference between computer users and programmers, in contrast to the present time. Instead, all of them were hackers (until it became a buzzword by mass media to denote bad actors). They were the people who were striving to push the limits of computation. The software was viewed as common good everyone can reuse, modify and share. It all was so until the 1976 U.S. Copyright Act when software became copyrightable and lots of software manufacturers began developing proprietary software. Stallman was one of the first Free Software fighters. He founded the GNU Project and the legal basis for the copyleft software (that forbids embedding it to the proprietary software). It also coincided with absurd pricing of the influential UNIX operating system, that skyrocketed to thousands of dollars per unit. So the GNU Project managed to write its own C compiler and many shell utilities.

    Stallman, and most of the first wave of Free Software supporters, wanted to ensure that computers are used for freedom and that proprietary software was banned. Although he pointed out there must be a method programmers have to be paid, he couldn’t provide a scheme about how programmers could be rewarded, leaving the development of Free Software to very few fanatic developers that see the development of Free Software as lifelong satisfaction.

    The second wave started in the late 90s, after Linus Torvalds had already created his own kernel, Linux, that allowed computers to run the complete operating system without dependence on any other proprietary software. The newer generation started acknowledging the fact that 1) private companies are not necessarily evil; 2) free software developers should focus on inclusion, rather than rejection of anyone who don’t conform to their standards (private companies, again). This lead towards a schism among developers, and a new wave of Open Source software began to appear. Open Source software aims to broaden the userbase of people using FOSS, attract new developers, improve code quality of FOSS, etc., instead of de-proprietarizing the whole world.

    TL;DR: There are two directions of FOSS:

    1. Free Software strives we don’t live in a proprietary dystopia;
    2. Open Source software aims to maximize the userbase of FOSS.

    Now, about your concerns about software quality are legit. But there is a paradox. The more devs and users are working with the software, the better quality it is. But users don’t want to work with the software that is of poor quality => less users => less feedback from the users (bugs, feature requests and the general idea on how the software is used and should it should be used) => lower quality. And there are factors on devs, depending on who makes the software. Volunteer devs, in general, are more pleasant with making new stuff instead of maintaining the old software. Even worse, they don’t want to maintain software that is poorly maintained and/or unpopular (doesn’t have a catching perspective). This is how FOSS programs die.

    Further watching: Revolution OS (2001 documentary about FOSS)


  • I do write Rust projects

    EDIT: Well, it depends. If you statically compile everything with C build systems, in that sense, the speed should not differ from generic cargo workload. Although, in most cases, projects written in C are dynamically linked due to several reasons, one of which is code speed. In practice, even huge projects written in C (30k to 10k LOC) build quicker than C++ or Rust.

    I’m not pooping on generics, either. Generics is a saviour for correctness and performance. Yet, I want to point out the type creep is still a thing, even though there’s little we can do about it.

    Anyways, this thread should be better interpreted with humor, instead of technical accuracy.


  • Rust v3: “It’s three hours and I’m still compiling dependencies”

    EDIT: Also, “What does Option[Arc[Mutex[BTreeMap[String, Box[RefCell[Box[amp mut F>>>>>>> where F : Fn(T) -> U in your essay mean?” (srry, I didn’t come up with a better obscure data type, it’s probably gibberish)

    EDIT2: Lemmy deletes ‘less than’ sign for some damn reason (time to build Lemmy at home?)




  • ~ $ adware
    (...ncurses ad featuring blockchain shows for 10 seconds...)
    
    Sorry, internet connection is required to run adware.
    Aborted
    ~ $ 
    
    (plugs in ethernet cable)
    
    ~ $ adware
    (...ncurses ad featuring Threads displays for 10 seconds...)
    (...ncurses ad featuring next-gen Android displays for 10 seconds...)
    Press CTRL+C to skip the ad
    [^C[^C
    Got tired from ads? Buy Adware Pro for $5.99/mo [Y/n] n
    
    ADWARE SHELL
    (C) 2023 Buy-n-Large Corp. All wrongs reserved
    ---ad---
    How much do YOU think this advanced operating environment is worth?
    Just press F1 to get the answer!
    ---ad---
    
    Activate Adware
    Go to Settings to Activate Adware
    % exit
    Please watch all the ads to be able to exit.
    (...ncurses ad featuring alt medicine displays for 30 seconds...)
    (...ncurses ad featuring ad-blocker for 30 seconds...)
    [^C
    Interrupt rejected. Please watch all the ads.
    [^C[^C[^D[^X[^Z[^Z[^Z (unplugs ethernet cable)
    Interrupt rejected. Please watch all the ads. Buy Adware Pro for $5.99 to allow interrupts.
    

    The last step I leave to you.