4 ms·
When you're a kid, tinkering is exciting. When you turn 30, you just want your software and tools to work. Janitoring your computer is not fun when it's in the
by Jasper_ 6y ago
When you're a kid, tinkering is exciting. When you turn 30, you just want your software and tools to work. Janitoring your computer is not fun when it's in the way of your actual day job.
- josephg 6y agoMy worry is that this has bad long term implications. Modern computing environments aren't very good, and most of the core abstractions haven't changed / improved since the 80s. Those core abstractions have so much stuff built on top of them now that they're very difficult to change. You used to be able to make a usable operating system in a month or two if you knew what you were doing. Now a simple web browser takes 20m+ lines of code to make. Its out of the hands of anyone with less than $1bn or so to spend - and at that scale the only real contributors are big tech companies. Except for some small features like io_uring and device drivers, linux is developed as if its already feature complete. So I worry - will we ever replace the crufty parts of POSIX[1]? Will we ever have operating systems and software that can properly take advantage of NVMe and Optane memory[2]? Will we ever have desktop computers which sandbox software by default like my phone does, so I don't have to trust every program, npm library and rust crate on my computer with my data? Will there ever be a desktop class UI library which works across all my devices, or are we doomed to waste 90% of our computer hardware keeping electron + javascript fast-ish? I'm worried these ships have sailed, and our grandchildren are destined to inherit a computing experience of electron, + more CSS. In the 90s people would iterate on this stuff by just hacking linux and submitting patches. Now thats really hard because of how tall we've made our mountains of code. By the time you've climbed one mountain, you're halfway through your career. I mean, how many kernel hackers out there are also good at making user interfaces? How many people with frontend experience are even capable of hacking on linux? Its impossible to improve the interfaces between our systems without a holistic understanding. And thats becoming an increasingly rare commodity. [1] Eg fsync(), and in my opinion the filesystem abstraction as a whole. [2] Eg https://www.usenix.org/conference/atc20/presentation/bittman https://www.usenix.org/conference/atc20/presentation/bittman
- pjmlp 6y ago> So I worry - will we ever replace the crufty parts of POSIX[ For sure, many of us don't use OS where POSIX has any relevant meaning.
- moonchild 6y agoThe majority of the world is on linux. A small remaining fraction is on windows, where there is no less cruft. Yes, there are embedded OSes (l4); ibm i&z; etc. (L4 and ibm i are actually super cool.) But those are tiny drops in the bucket and aren't replacing linux any time soon.
- pjmlp 6y agoWhat world? ChromeOS and Android? POSIX APIs are not exposed to app developers. Cloud? Language runtimes and serveless make POSIX irrelevant. IoT? Linux is largely irrelevant in the world of real time OSes and bare metal language runtimes. Desktop? How is that 1% going?
- Jasper_ 6y agopjmlp, I don't know how you can keep claiming stuff like this. Android has fopen and pthread and you are allowed to use them in your app.
- pjmlp 6y agofopen is part of ISO C, supported by NDK, and pthread is a special case. https://developer.android.com/ndk/guides/stable_apis https://developer.android.com/ndk/guides/stable_apis > Note that on Android, unlike Linux, there are no separate libpthread or librt libraries. That functionality is included directly in libc, which does not need to be explicitly linked against. Better learn how much POSIX Android actually allows.
- moonchild 6y ago