Contemporary Computing kinda sucks
- Anmelden oder Registrieren um Kommentare zu schreiben
Let's imagine if I could get a dual Epyc system with dual Nvidia RTX 2080 TIs and it had all libre drivers, firmware and microcode and all of Adobe's and Microsoft's software became libre and every game was on GOG with a libre licensed engine and scripts, it would all still suck, but it would be less bad.
The problem we have with software is it's so damn complicated these days, even if it was all free software, it's so complicated it might as well be a black box. If you've heard of the 30 million line problem, software has become so bloated. In order for just blogging to work, you need at least 60 million lines of code at a conservative estimate. So many resources are wasted and if you have to build something on our super complicated software infrastructure, you just have to pray every link in the chain works. It feels like software bureaucracy, there are so many resources wasted and instabilities in every link of the chain.
I think we need to re-invent the wheel, like design the 80's mindset of a home computer based on lessons learned with modern parts. Something like the original IBM PC, it was like the cheaper home computers in a sense it came with a bootable BASIC ROM, but it supported more memory and had a big expansion bus, so it was designed to be the most versatile computer. But the reason why computing devolved into the way it did was the culture around it devolved. In the 80's,there were magazines that had source code in it and the code so streamlined, it could be typed in manually. Today, we have DWM and their project goal is to not exceed 2,000 lines of code, but there's also Monsterwm that goes further that only has 700 lines of code and I bet those users don't complain about instability.
Maybe something like the color maximite 2 or TempleOS would be a step in the right direction.
The 60-million lines of code for "just blogging" certainly include everything down to the kernel. The latest release (5.7.7) of Linux precisely has 19,089,544 lines of code, according to 'sloccount'. You do not need to read any of them to write a program that runs on top of Linux. In fact, you almost do not need to read any of them to write a driver, because Linux, like any good large piece of software, is modular with documented APIs.
Large modular programs are not "software bureaucracy". Most of Linux is drivers. Users want all their hardware to work. Do you use Ed (the latest GNU version has 2,733 lines of code) to edit your text file? Like GNU Ed's author (see the introduction of 'info Ed'), I prefer GNU Emacs and its 1,425,766 lines of code. Although I only use a tiny portion of all its features, it has many I want, unlike Ed. And the features I want are not the features somebody else wants. Writing one text editor per desired subset of features would mean much redundant work, more lines of code overall, with more bugs.
You may consider that the additional features that compositing window managers provide are useless eye candy. First of all, it is not necessarily the case: a screen magnifier is essential to people with visual impairments, a notification area is useful, so is previewing the windows where to switch, etc. Even if it was pure eye candy, many users desire that feature.
More lines of code do not necessarily mean "many resources wasted" either. Efficient algorithms, requiring less time and space to run, are rarely the simpler algorithms. If you received some education in programming, you certainly studied algorithms to sort. Most probably, the most efficient one you were presented is quicksort. Quicksort remains rather simple, although there are low-level technicalities for an efficient implementation. However, quicksort is not what is implemented in efficient libraries nowadays. Introsort and Timsort are preferred. Significantly more complex, they are hybrid algorithms. For example, introsort combines quicksort, heap sort and insertion sort. It does not require more space than quicksort but is faster, especially in worst-case scenarios. And for tiny collections (up to ~15 elements), optimal solutions, taking into account all the machine details, were found. They are huge, in number of instructions. Quicksort, introsort, ... all divide an conquer. As a consequence they end up sorting many tiny collections. Switching to the optimal algorithm for the reached number of elements is beneficial.
Considering again compositing window managers, I imagine that getting 3D acceleration from the video card requires more lines of code, but certainly enhances performances.
Finally, notice that the "80's mindset" gave us the X Window System. The first sentence on the website of Wayland, which will soon replace it, is:
Wayland is intended as a simpler replacement for X, easier to develop and maintain.
I'm sure in the 80's, X was stable because they didn't keep on band-aid things on top of it to do what it wasn't designed to do.
The Ford Model-T is still a marvel of engineering to this day, it was very well designed, the thing had 30 horsepower and drives on dirt roads better than a Honda Civic and it was designed to be so simple, the goal was to be user maintainable.
This was written in the early 90s: http://www.art.net/~hopkins/Don/unix-haters/x-windows/disaster.html
> Today, we have DWM and their project goal is to not exceed 2,000 lines of code, but there's also Monsterwm that goes further that only has 700 lines of code and I bet those users don't complain about instability.
I've started testing dwm, and I'm really surprised at how well it works, how stable it is, and how easy it is to change to my liking. I think that everything that they are doing at suckless.org is worth looking into, including dwm, dmenu, the st terminal, and all their minimalist tools. I think you are right, that minimalism may be very important going forward. I'm going to try to learn as much about it as I can and as time allows. I think that the philosophy behind minimalism allows a much better opportunity to run a truly libre system that is more completely under the user's control.
> The latest release (5.7.7) of Linux precisely has 19,089,544 lines of code
What a bloated piece of crap! I don't want to hear any excuses about hardware support. I only want *my* hardware to work. If Linus wants to include code to support hardware I don't own, he should at least have the decency to consilidate it into a single line consisting of millions of characters to avoid running up the line count.
> Maybe something like the color maximite 2 or TempleOS would be a step in the right direction.
TempleOS has the right idea. It only supports one screen resolution. Unforunately, the resolution it supports is 640x480, and my monitor is 1920x1080. Support for my monitor resolution is an important feature, so TempleOS sucks because it doesn't respect my freedom of choice to use my monitor at its full resolution, but at least it's not bloated because it doesn't support other people's monitor resolutions either.
> If you received some education in programming, you certainly studied algorithms to sort.
Sorting is an academic exercise, so that code can and should be removed. Good data is already sorted the way I want it. Other data should be avoided because it is too complicated to understand.
> I imagine that getting 3D acceleration from the video card requires more lines of code, but certainly enhances performances.
Only if you use your computer for pointless crap like editing videos. I only use my computer to take screenshots of my empty desktop. If you need 3D acceleration to take a screenshot you are probably using GNOME, and good distros remove GNOME from their repos in order to respect user choice.
> a screen magnifier is essential to people with visual impairments
So you're telling me that software *I* don't need should be available to *other* people? I DON'T NEED IT, AND I DON't WANT IT ON MY MACHINE. Other people are bloat. Empathy requires too many lines of code.
Lol.
> I've started testing dwm, and I'm really surprised at how well it works, how stable it is, and how easy it is to change to my liking.
How are you liking dwm's tiling workflow? I've never tried dwm, but my understanding is that it uses preset container layouts so that rearranging windows is a one-dimensional task, as opposed to i3 which is two-dimensional. If so, I imagine that that dwm would require fewer keybindings, which could make for a simpler workflow than i3 with less manual rearranging and resizing of containers.
> How are you liking dwm's tiling workflow? I've never tried dwm, but my understanding is that it uses preset container layouts so that rearranging windows is a one-dimensional task, as opposed to i3 which is two-dimensional. If so, I imagine that that dwm would require fewer keybindings, which could make for a simpler workflow than i3 with less manual rearranging and resizing of containers.
I haven't tried i3 or any other stacking window manager, dwm is my first, so I'm not even sure what two-dimensional tiling/stacking would refer to. Right now, I'm using the basic preset stacking, which is pretty straightforward, although there are key bindings that allow you to change it up. However, suckless.org has patches available that you can download to change the stacking to a great variety of configurations, and programming your own looks relatively simple as well. So, I guess it's just as variable as you would like to make it. Also, dwm has "tags", which are like workspaces, only much more useful. So, you can put a program on tag 1, and visit it on the first "workspace", or you can put it on all 9 tags, and see it on every one of the nine "workspaces", or put it on as many or as few tags as you like.
As I said, I am really surprised how easy it is to use and configure and how stable it is, and how it hasn't interrupted my workflow but really improved it. When you started telling me about i3 last year, I couldn't wrap my mind around it. But now that I've tried dwm for about a week, I don't know that I would ever want to go back to my old 1990's Windows way of working on a desktop.
> I haven't tried i3 or any other stacking window manager, dwm is my first, so I'm not even sure what two-dimensional tiling/stacking would refer to.
"Two-dimensional" isn't a standard term. I'm just not sure what the correct term is. What I mean is: With i3, each container can be split, resized, or moved either horizontally or vertically. So the user controls two dimensions. Some other tiling window managers, I think including dwm, have one or more preset layout schemes, with predetermined locations for the 1st, 2nd, 3rd, ... nth windows. So the user only controls a one-dimensional ordering of their windows and lets the window manager map them to locations on the screen. I have yet to try a window manager that uses the latter approach, but I can see the value of the approach.
> Also, dwm has "tags", which are like workspaces, only much more useful. So, you can put a program on tag 1, and visit it on the first "workspace", or you can put it on all 9 tags, and see it on every one of the nine "workspaces", or put it on as many or as few tags as you like.
That's a pretty neat idea. I might like having my XMPP client visible on every workspace. I could also see it being useful for presentations: have one workspace on the speaker's screen with both slides and notes, and have another workspace on the audiences screen with just slides.
Chaosmonk,
It's like you mention it. All windows are on a stack. The most prominent window (the one you're working on) displays bigger.
> With i3, each container can be split, resized, or moved either horizontally or vertically. So the user controls two dimensions. Some other tiling window managers, I think including dwm, have one or more preset layout schemes, with predetermined locations for the 1st, 2nd, 3rd, ... nth windows. So the user only controls a one-dimensional ordering of their windows and lets the window manager map them to locations on the screen.
With the default key bindings, you can change many things about the main window's size and location. Mod1-l and Mod1-h will change the horizontal space on your screen that it takes up. Mod1-d and Mod1-i will change the vertical size. You can also make windows "floating", in which case you can move them around and resize them with the mouse, or you can use key bindings that allow you to do that - Mod1-left-button allows you to move window, and Mod1-right-button allows you to resize.
As I said, there are also patches to dwm allowing a lot more flexibility in terms of the window stacking, or you could re-program it yourself, which looks relatively easy. Just modify your config.h file with any text editor and 'make clean install'. I find that the default key bindings work very well for me. I added a patch today to add small gaps between windows, and I modified the Mod1 key to be the Super key instead of Alt, and I am trying different methods of achieving transparency and placing wallpapers and adding more functions to my top panel.
It's contemporary capitalism (imperialism) that sucks, not contemporary computing. The former hacker community was like primitive society, so it necessarily evolved into capitalist society (a world of proprietary software). Therefore, the free software movement is something like socialist revolution. Unfortunately, Richard Stallman refuses to acknowledge this, even though he admit that it's a political movement (not a technological one).
If you want to re-invent the wheel, then try it, not just say it.
I call our system neo-mercantilism. Copyright and patents come straight from feudal Europe and it's designed so the King can get more and more tax money and evidence of this is how a country's wealth is measured in GDP. GDP isn't how much money the average citizen has, it's how much money they traded. If we had a clean and safe Arc Reactor that anybody in their garage could build with $500 worth of parts in an afternoon, GDP would go down because nobody would be paying utility taxes or fuel taxes.
https://invidio.us/watch?v=2TxYNYpicXM
Our system is against market freedom.
> Therefore, the free software movement is something like socialist revolution. Unfortunately, Richard Stallman refuses to acknowledge this, even though he admit that it's a political movement (not a technological one).
Have you ever read the GNU manifesto? It is not explicitly socialist, but it does somewhat frame software freedom as a labor/class issue. I don't ever hear RMS talk this way anymore, but the final paragraph of the manifesto reads:
"We have already greatly reduced the amount of work that the whole society must do for its actual productivity, but only a little of this has translated itself into leisure for workers because much nonproductive activity is required to accompany productive activity. The main causes of this are bureaucracy and isometric struggles against competition. Free software will greatly reduce these drains in the area of software production. We must do this, in order for technical gains in productivity to translate into less work for us."
Socialism is a denial of private proprietorship, which is the very foundation of capitalism, as well as feudalism and slavery. This is also true for free software movement. Knowing this, you easily understand why promoting software freedom is so difficult in such a capitalist world. Neither capitalists nor their governments like free software. Business wants to make money, whereas governments want to dominate people, but free software defeats their common interests.
RMS refuses to acknowledge this, because he is a (petty) bourgeoisie.
FSF members refuse to admit this, because they are a group of (petty) bourgeoisie.
RMS could have made piles of money, following his colleagues who took jobs in proprietary software companies. He has instead lived as a student for all his life, to fight for all computer users. For everybody to in control of their computing means of production. If he is bourgeoisie, who is not?
RMS is a true classic Bohemian in his lifestyle. He's an outsider.
https://en.wikipedia.org/wiki/Bohemianism
Free as in Freedom is a good read. It's easy to see that RMS missed deliberately millions of dollars.
I don't think libre software has much in common with socialism - instead I see it as a classic example of distributism, especially the distributism advocated by Chesterton and Belloc. Libre software is a vast, wide distribution of the means of production to as many people as possible. And that vast distributed network finds ways to interconnect and for each person to contribute to the other people in the network of distribution. This is quite different from socialism - where socialism advocates for the distribution of wealth, distributism does not have that as a primary focus but does result in wealth redistribution through the effectiveness of the distributive network. Distributism rather focuses on the ability of each individual in the distributed network to control their own labor and means of production, decentralizing power to small groups and to individuals rather than centralizing it in an all-powerful state as in socialism.
- Anmelden oder Registrieren um Kommentare zu schreiben