It shouldn't be just about software. Hardware has become astonishingly complex as well. Forget about a high quality superhet radio containing 15 transistors, or a CPU with a manageable instruction set and an assembler that is a pleasure for a human to write in. No doubt modern systems are better than old ones, but I miss those times somehow...
Simple Software Manifesto
51–60 of 90 posts
Re: Simple Software Manifesto
#52Every new generation of programmers starts a crusade to simplify without first trying to understand why we're not "simple" despite the previous generation having done the same. Of course, one possible explanation could be that without a constant crusade for simplicity we'd be in a far worse place; the "permanent revolution" explanation. But is this the right explanation? Turing Award winning computer scientist Fred B…
Re: Simple Software Manifesto
#53This reminds me of suckless. https://suckless.org/philosophy/
There is something weird about trying to put a layer of simple software on top of an astonishingly complex system kernel. (RiscOS, for example, looks more balanced in that regard.)
Re: Simple Software Manifesto
#54Re: Simple Software Manifesto
#55> We target C99 or C11 C is anything but simple. It looks simple on the outside, then beats you to death with undefined behavior and either overexplicitness (if you don't use macros) or nested-macros hell (if you do). Their choice of C is routed more in the authors coming from the Unix community, not in their desire for simple software. If anything, they should start with a truly simple programming language. Somethin…
Re: Simple Software Manifesto
#56Software is complex because the real world is messy. That messiness cannot ever be "abstracted away", it can only be hidden.
You can't derive a better software stack from first principles. What we have is the tireless work of many people, quite a few of whom are smarter than you. Rust and LLVM, for instance, are much more fit for purpose than "my pet compiler backend + my favorite C subset" because even the most disciplined C subset is still full of UB traps and Rust has had years going on a decade of work, by many hands, addressing the very cases where C falls flat on its ass. The same with LLVM vs. whatever brain fart J. Random Hacker thinks up as an ideal abstract machine,
Re: Simple Software Manifesto
#57Earlier quoted context omitted.
I think that all else being equal, simplicity is to be preferred over complexity. You're pointing out that all else is never equal; ok, cool; but it's hard to imagine anyone finding value in deliberately complicating things. Simplicity seems to be an inherently valuable trait in system design/maintenance. Can you oversimplify? Sure. Does that justify not striving to reduce to the simplest functionally complete, scala…
> but it's hard to imagine anyone finding value in deliberately complicating things Except for that special guru who writes The Framework for the company, because why not a Forth-based DSL for everyone to work in? Overblown, I know, but there are kitchen sink types, or those who just don't know that there's an easier way, and other reasons to wind up with too many tools or layers or libraries. (I've been guilty of no…
Re: Simple Software Manifesto
#58Yet more suckless-style posing. Ho fucking hum. Software is complex because the real world is messy. That messiness cannot ever be "abstracted away", it can only be hidden. You can't derive a better software stack from first principles. What we have is the tireless work of many people, quite a few of whom are smarter than you. Rust and LLVM, for instance, are much more fit for purpose than "my pet compiler backend +…
How would you hide something without hiding it behind an abstraction?
> You can't derive a better software stack from first principles.
What do you consider "first principles"?
Re: Simple Software Manifesto
#59Earlier quoted context omitted.
I agree with you. If there is one correct way, then software writers are fungible, and software can be built with commodity parts. I don't think this is true. If it is, then we have an awful hard time finding correct ways; just look at how many sorting algorithms there are.
> If there is one correct way, then software writers are fungible I don't believe that follows. For example, there is one 'correct way' to unscramble a rubiks cube, but humans unscramble them in a much more roundabout manner. Just because there is one correct way to do it doesn't imply that all rubiks cube solvers are fungible. This is because of the very high cognitive load of finding the correct way. Math, especial…
Thats not true from a mechanical standpoint. From start, rotate an edge 180degrees. Now you can turn it right 180 or left 180.
Making 2 coins show the same face (when they differ) doesnt have one correct algorithm, in the same vein. Developers necessarily interact with apis at this level and generalize from these choices.
Re: Simple Software Manifesto
#60Earlier quoted context omitted.
Not sure which generation you're in and which generation you'd (relatively) consider Alan Key in, but here is a much more principled approach to what the OP is trying to do: https://youtu.be/NdSD07U5uBs The TLDW is that Kay thinks we haven't discovered all the fundamental rules of computing, a la Maxwells Equations for physics. If you are able to figure these out, you can substantially cut down your accidental comple…
I've yet to watch Kay's talk, but I take issue with the fundamental claim that rules necessarily lead to "simplicity". If there is one thing computer science tells us is that this is not the case. For example, orbit equations are very simple, yet if you put more than 2 objects in gravitational interaction, their behavior is completely unpredictable (and very complex) even though the rules that govern it are simple. I…
I think the 3 body problem is indicative of what Kay says. One simple rule produces very rich behavior. Why not have something like that for your network stack?