4 ms·
Can you provide some examples of these beautiful abstractions or tools?
by vbezhenar 6mo ago
Can you provide some examples of these beautiful abstractions or tools?
- whattheheckheck 6mo agoRead The Linux Programming Interface book
- kelsey98765431 6mo agoTake message queues. ZMQ and the like have basically solved message passing which was a ghastly thing to worry about for many years.
- convolvatron 6mo agoI disagree. I worked at a protocol designer and implementor for years before people settled on the message queue as the universal abstraction. at the bottom end dumping serialized objects into tcp connections gets you most of the way. and at the top end there is so much leverage around locality, addressing, and transport that we are leaving a lot on the table. message queues arent at all bad, but they come with additional complexity (most of it operational), and come with a set of limiting assumptions. so my frustration is that they are now the default answer for everything, and we're ignoring this lovely design space, one that becomes increasingly important when talking about scale.
- stephbook 6mo agoMemory garbage collection, borrow checker, compile-time static typing in dynamic languages (Typescript, Python). Language specific for JavaScript: Strict comparison operator === that disables type coercion, together with banning ==. == allows "5" equals 5.
- Izkata 6mo agoHTML attributes are all strings, so javascript's type coercion in general was this (doesn't just apply to ==) - a way to avoid having to do explicit conversions and make values act semantically equal without having to think about types. A strict ban has always felt to me like we're leaving behind useful functionality.
- d0mine 6mo agoTo get perspective(we know what worked), here’s some 50+ years abstractions: A file is a simple stream of bytes in Unix. (If you think what else it might be then compare to Multics’ segments). Separate processes that may be connected using simple standard I/O streams [pipe] (vs everything is DLL in Multics) — the concept of shell itself (policy vs. mechanism separation http://www.catb.org/esr/writings/taoup/html/ch01s06.html http://www.catb.org/esr/writings/taoup/html/ch01s06.html ). https://retrocomputing.stackexchange.com/questions/15685/what-are-the-major-technical-difference-between-multics-and-unix https://retrocomputing.stackexchange.com/questions/15685/wha... For comparison, you need a new app on iOS for what might have been a shell pipeline (hierarchical file system is absent at user level).
- brabel 6mo agoThe actor model for concurrency.
- kccqzy 6mo agoBuild tools that enforce hermeticity (cannot depend on files not declared as a dependency) and hashes files (as opposed to using timestamps). This eliminates whole classes of complaints against make.
- braebo 6mo agoSvelte for eliminating countless categories of complexity introduced by React.
- ramraj07 6mo agoIts outrageous that no one pointed out git. Its the perfect example of this. I consider code version control a solved problem post git.
- klabb3 6mo agoGP here. I agree, git is the best example in the spirit of my comment. Maybe the reason it wasn’t pointed out is precisely because it’s so obviously good that it’s no longer a conscious choice, and then we forget life before it. Even those of us who experienced it.
- bmitc 6mo agoWhat about source files that aren't lines of text?