This commit is contained in:
Yann Esposito (Yogsototh) 2021-11-02 09:08:30 +01:00
parent 7aa04bee54
commit 96646455bd
Signed by untrusted user who does not match committer: yogsototh
GPG Key ID: 7B19A4C650D59646
2 changed files with 61 additions and 0 deletions

View File

@ -69,6 +69,19 @@ figcaption { text-align: right; font-style: italic; font-size: 0.875em; }
#toc ul { padding-left: 2em; }
#toc, blockquote, pre.example, .line-block { margin: 1rem; padding: 1rem; border-left: solid var(--gr); }
.pubDate { display: inline-block; width: 7em; font-size: .825em; opacity: 0.4; }
/* blockquote */
blockquote {
padding-top: 0;
padding-bottom: 0;
}
blockquote > p:first-child {
margin-top: 0;
padding-top: 0;
}
blockquote > p:last-child {
margin-bottom: 0;
padding-bottom: 0;
}
/* COLORS */
/* colortheme switch */

View File

@ -0,0 +1,48 @@
#+title: Even more stupid than you think
#+description:
#+keywords: programming
#+author: Yann Esposito
#+email: yann@esposito.host
#+date: [2021-11-02 Tue]
#+lang: en
#+options: auto-id:t
#+startup: showeverything
We all know about the [[https://en.wikipedia.org/wiki/KISS_principle][KISS (keep it simple, stupid)]] principle.
In fact, unlike what it looks to suggest. Keeping things simple is more
difficult than one imagine at first[fn:simple-vs-easy].
The other adage from Einstein being:
#+begin_quote
Make everything as simple as possible, but not simpler.
---Albert Einstein[fn:einstein]
#+end_quote
And what is hidden here, is the fact that finding a way to build something
that is simple need an internal comprehension of the system.
To me this is typically what algebra is all about.
Find a system as simple as possible that still respect a set of properties.
So after a few years of experience in software development everyone will
agree with the principle.
And this is a bit easy to agree with a principle.
What is difficult is to really dig about how simple something could be.
So here are a few evidences about my experience about how far you can go.
And if you don't like the word "simple" think about the word /abstraction/.
The sense of /abstraction/ is also quite large.
If I wanted to be more precise, I would say, that a good programming
abstraction is generally sustained by a good algebraic abstraction.
What provide a good algebraic abstraction is the certainty that your system
will be *composable* upon some properties.
So the important word here is *composability* which is arguably superior to /modularity/.
Modularity is about combining different systems.
[fn:simple-vs-easy] If you want a great overview of the subject, I highly
suggest you to watch [[https://thestrangeloop.com/2011/simple-made-easy.html][Simple made Easy]] video from Rich Hickey.
[fn:einstein] This is only attributed to Albert Einstein. He apparently
said something similar but we don't have any strong evidence he wrote or
said exactly that.