3 ms·
> I don't understand why they brag about supporting "only English". I'm also not sure what it means: does it mean the system does not even support utf-8 strings
by Beltalowda 4y ago
> I don't understand why they brag about supporting "only English". I'm also not sure what it means: does it mean the system does not even support utf-8 strings? Or is it just about the lack of UI translation to other languages? In either case, it's nothing to brag about. You're just removing capabilities for no reason.
Good support for different encodings, locales, etc. is actually quite hard, and also imposes some amount of burden on developers of the system, as well as users who don't use these features.
Of course, these things are also very useful and if you want/need things like that then that's fair and KISS probably isn't for you. But not every project needs to cater to every need; I think "simple = less capabilities" is fine, although obviously not for everyone but it doesn't need to be.
> For example, a package manager written in 1000 lines of posix shell script is not a good thing. Shell script is a bad language. It's not simple. Errors are not reported until runtime. It's worse than dynamic languages because shell scripts often create permanent changes to the system. If a script fails mid execution, it might very well leave the system in a broken state.
I never used KISS and don't know anything about their package manager, but I did write my own package building tool in shell script, and it builds things to its own chroot and as a last step if everything worked it moves the files over. It's not really atomic, but also not like any error in the script will "leave the system in a broken state".
It's great that better package managers exist, and there are a lot of situations where it's good to use them. But for other use cases it's just fine to use a (much) simpler system which isn't entirely perfect (but a lot simpler). Not everything needs to solve all possible problems. My own package builder doesn't do things like dependency tracking either because I don't need it, but obviously this is a very useful thing to have in many scenarios – but not all scenarios.
We really need to move away from the view that every project/system should cater to every kind of use case and every kind of user.
- hsn915 4y agoI'm not objecting that someone wants to create a toy project that lacks important capabilities. I'm objecting that they are presenting their work as "simple". Simple describes the internal architecture of the system as having fewer parts to achieve a particular goal. What you're doing is not simplyfing the system. You are keeping the system mostly the same, but removing some capabilities (and along with them, removing the parts of the system that were put in place to support these capabilities). The way I see things, these are all different axes. Sort of orthogonal, but not really (they influence each other, but in theory they can be thought of as independent): Easy ------------ Difficult This axes is about the user and what they need to learn to be able to operate the system. If they have to learn many new things and intricate details, it's difficult. If they can operate the system perfectly while only learning fewer things, then it's easy. Obviously there's a degree of relativity. So you can only define this in terms of a target demographics. e.g. "college students who are familiar with smart phones", or "corporate employees who have basic knowledge about computers and can use some office software". Simple --------- Complex This axis describes the internal architecture of the system. The parts its composed of and their interactions. Simple systems have fewer parts and fewer interactions. Complex systems have more parts and more interactions. Reliable -------- Fragile This axis describes the robustness of the system and its sensitivity to changes in the environment. Fragile systems break down when small things change in the environment. Poor --------- Capable This axis is about the features of the system and what it can do. The things that I see in this KISS distro all point in the wrong direction: - Fewer capabilities - Difficult to use - Robsutness is qustionable Is it simpler? It may be simpler than a more capable version of the system, but what's the point? Simplicity is only desireable in so far as it helps make the system more robust.
- Beltalowda 4y agoRemoving capabilities makes something simpler, almost by definition. Less moving parts, fewer things that can fail. I have never used KISS, but it doesn't strike me as very difficult to use if you're reasonably experienced with Linux already. It's not for everyone, obviously, but that's okay. "Easy" is one of those terms that's hard to really say much about in general terms, because it really depends on the audience (both objective skillset, and subjective preferences and expectations). It also doesn't strike me as particularly unrobust; one of the virtues of being simpler is that it's easier to understand and figure out what's going on. As an example, setting real-time priority on my system is currently broken, and between Pulseaudio, rtkit, Polkit, and dbus I can't figure out why. For my desktop, I'm actually just fine with just always allowing pulseaudio to set real-time permissions without a rtkit/polkit check so I don't really need these capabilities, but they are preventing my system from working correctly.
- hsn915 4y agoThe audio system in linux desktop being broken all the time is in great part due to the complexity of the system. It's not that audio is inherently complex and difficult. It's just the basic model that these systems assume is broken. Windows and macOS for the most part don't suffer from these problems. Now, you can completely remove audio support and claim you have a simple system, but how useful would that be?
- Beltalowda 4y ago"Completely removing" audio would be silly of course, but you can "simplify" the audio system, maybe making some trade-offs in capabilities (e.g. no mixing, effects) but still having a functional and usable audio system. (Audio on Linux is not "broken all the time" in my experience by the way; for the most part, it works pretty well out-of-the-box without mucking about. My particular problem is only a practical problem with one particular game that just barely runs on my system anyway.)