Every software has a reason to be complex. Often software authors desire to make simple software by removing such features regarded ‘complex’ without understanding why those features were introduced (mostly because they don’t use them). The consequences is that people who are in the minority can’t use the software. As a CJK person, the most prominent example is multilingual support in the FOSS community; I still have…
Simple Software Manifesto
41–50 of 90 posts
Re: Simple Software Manifesto
#42Every 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…
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 understand what you're getting at, but I'd argue that what you're suggesting isn't actually simple by any means.
Re: Simple Software Manifesto
#43Every 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…
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…
In the early days people usually lived close to water bodies (rivers, lakes, etc.) because the closer you lived to the water the better your society thrived (water being essential for live, agriculture, transportation, etc). But there is a limit where if you go too far (i.e. into the water) the benefits evaporate possibly reversing the benefits (building houses into the water adds complexity, flooding, etc).
So there is probably a (global?) optimum that is neither too complex nor too simplistic
Re: Simple Software Manifesto
#44Don't #2 and #3 contradict? > Constraining the user to simple tools encourages creativity and allows the system to be more quickly understood > There is only one correct way to do something, because two ways would be more complex When you encourage creativity with combinations of simple tools, creative people will come up with multiple ways of doing things.
Re: Simple Software Manifesto
#45Re: Simple Software Manifesto
#46Every software has a reason to be complex. Often software authors desire to make simple software by removing such features regarded ‘complex’ without understanding why those features were introduced (mostly because they don’t use them). The consequences is that people who are in the minority can’t use the software. As a CJK person, the most prominent example is multilingual support in the FOSS community; I still have…
Re: Simple Software Manifesto
#47> 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
#48Every 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…
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…
> Computers have been invented to surprise us
> If we knew what computers do, we would not use them, and we would not have built any.
This means that computers are most useful precisely where the complexity of the problem is beyond our efficient reasoning powers. Like Brooks, I think that our accidental complexity is already quite low (no more than 50%), and while it's always good to decrease it, what we're left with will still be very complex -- that's why it's useful.
Re: Simple Software Manifesto
#49> There is only one correct way to do something .... so take great care in doing it right the first time. I hear this a lot, in various contexts, and I even used say it a lot. But this has actually stopped making sense for me. I don’t think I’ve ever genuinely seen a case where there is only one obvious way to do something, or that there’s a way that is obviously the “right” way. Everything non-trivial is chock full…
That would kind of make more sense with the follow up remark that two ways is more complex.
Otherwise I completely agree, every non-trivial design will involve tradeoffs.
Re: Simple Software Manifesto
#50Every 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…
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…
1. Even software with no "accidental" complexity is necessarily complex (in fact, that's why it's useful).
2. If the manifesto's point is that we should stop over-complicating things, then wouldn't it better to first examine whether, and if so why, things are overcomplicated now, given that the previous generation also went on a crusade to abolish (over)complication? If the point is to declare "don't overcomplicate!" then, if you believe things are overcomplicated now, why is that declaration useful if it's clearly not effective?