Live data from Hacker News

Simple Software Manifesto

arewesimpleyet.org

21–30 of 90 posts

Re: Simple Software Manifesto

#21
Ugh, I don't share this sentiment.

Each new generation of programmers creates new tools to replace the 'complex' ones that came before without even bothering to understand them.

In my 25 year career I've seen it multiple times. We are all going downhill.

Attention spans in the smartphone era might be preventing people from reading the f*ing manual.

This means that any system or library which has an operating model that must be understood before it can be effectively used¹ simply can't be understood by the majority of programmers today.

1: The currently popular things in software world are mostly the type of system that lack such a model and which can be 'mastered' by asking discrete questions on stack overflow. This lack of complexity causes a loss of expressive power.

Re: Simple Software Manifesto

#23
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 not seen any Linux GUI app with proper out-of-the-box IME support (and that includes DEs, WMs, etc...) mostly because for some reason (hint, most are from the western world) the devs of Linux distributions turn off IME support by default. Is it really ‘simple’ to turn off some features that you don’t use, resulting in total breakage of apps when the feature is in use? Really?

Re: Simple Software Manifesto

#24
My related observation is that the phrase "simple yet powerful" is the biggest cliché in developer/techie-facing marketing of software:

https://github.com/search?q=%22simple+yet+powerful%22&type=C...

Is there any camp that DOESN'T consider their preferred way of doing thing to be simple yet powerful?

Re: Simple Software Manifesto

#25
post #9

Every 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, scalable, and maintainable design? In my opinion, no.

Re: Simple Software Manifesto

#26

> 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…

Completely agree. I'd change this whole line to something like: "There is never only one way to do something. You can't know which is correct, so go for the simplest option that is easy to change later"

> go for the simplest option that is easy to change later

And once customers get their hands on your simple thing, management won't let you change it to something better...

(Also known as, "The demo becomes the product.")

Your simple solution is embedded in a complex social reality. If you're not taking that into account, it probably won't stay simple for long: i.e. simple to maintain, simple to operate, simple to build new features on.

Re: Simple Software Manifesto

#27
post #25
post #9

Every 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…

The parents point is that there is a baseline of complexity which can’t be factored out due to the social and economic conditions under which software is designed and constructed.

Re: Simple Software Manifesto

#28
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...

Re: Simple Software Manifesto

#29
post #9

Every 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…

> one possible explanation could be that without a constant crusade for simplicity we'd be in a far worse place; the "permanent revolution" explanation.

I think the explanation is similar, but slightly more complex, than this.

I don't think we'd necessarily be in a worse place without crusades like this, because I don't really believe they have any impact on general trends in software. But that's not the same as having no impact or value.

Rather, I think these crusades are important for their niche influence; without them, we would only have the overcomplicated mainstream, without the minority of simpler options, that will never come to dominance but, hopefully, with the help of advocacy like this, will continue to have some small following.

> there needs to be a constant struggle not to over-complicate, but it should be done with the understanding that over-simplification is just as problematic

While I agree with the sentiment, the latter seems to be less of a problem in practice, no?

Re: Simple Software Manifesto

#30
My proposals, under high level programming something derived from:

- thou shall learn how to use the wheel, thou shell not reimplement it instead

- best software barely satisfies task it was made for

- antipasta statement: no lasignas, no spaghetti and no raviolli

- the code forming interface will be at max 20% of actual code written

- no interface will be designed to solve all humanity problems for next millenia

I think that all those were hugest pains I had within 23+ years of development.

What were yours?

Post reply on HN