(2025-01-20) Theory vs. practice, again --------------------------------------- Today, I'm not gonna talk about anything specific in any depth, just some random and short musings united with a common idea, rooted back in the famous quote by Linus Torvalds: "Theory and practice sometimes clash. And when that happens, theory loses. Every single time." In theory, Forth and OCaml programming languages are much superior to Go and Rust in every possible aspect, but in practice, most natively compiled software is written in the latter ones nowadays. Even I, personally, would prefer Go over other mainstream BS like Java or C++. By the way, in theory, compiled languages are the go-to choice for almost any problem, but in practice, interpreted (or at most JIT-compiled) languages are being used much more on a daily basis. In theory, Tcl/Tk is much easier to learn and get started with real everyday desktop usage than Python, but in practice, Python has embraced literally all areas of scripting while Tcl still remains in its niche. You want desktop? Got Tkinter (ironically Tcl-based). You want peripherals? Got pyaudio, pyserial and pyusb. You want client/server? Got tons of libraries. You want AI? Got Pytorch, Tensorflow, Ollama, Langchain, Pydantic and other integrations. I'm having a hard time now if I have to explain why it's better to learn Tcl, when Python already has you covered everywhere, even on MCUs like ESP8266EX. In theory, Web should be only used for displaying static and, to some extent, dynamic content, but in practice, Web has become another full-fledged platform to run applications, and this fact has become so obvious that no one can ignore it anymore. The quality and the level of user's control over these applications is another thing. In theory, there are plenty of mobile Linux distributions like postmarketOS that are better than Android in every way, but in practice, it makes much more sense for people to extend their Androids to achieve advanced Linux functionality (e.g. with Termux or custom builds) than fully ditch the ecosystem they got used to. In theory, "FOSS smartphones" would imply full control over their components, but in practice, their evangelists go apeshit with a simple question: "Does it even allow IMEI editing?" In theory, if you pick up any non-Apple laptop except the cheapest ones, provided that you install a normal OS instead of Faildows, you will get a twice+ better performance per price ratio than any MacBook (not even to mention their serviceability and upgradeability). In practice though, 90% of laptops still are utter crap regardless of their price, and it is very hard to find a decent alternative. I, for instance, have settled upon a ThinkPad L14 Gen5, but just because there wasn't any real competition for that price. The most interesting twist is, you have to know the theory well enough to determine whether the practice is good or bad. The examples I've mentioned are not as bad as most others. We just have to admit that we live in a world of bad practices full of clueless people who don't even know how bad those practices are because they didn't even bother to learn any theory. Can anything be done about it? If you answer this question for yourselves, you'll understand why this phlog even exists. --- Luxferre ---