Files
davideisinger.com/static/archive/lukeplant-me-uk-ms1b6l.txt
2024-01-17 00:10:00 -05:00

127 lines
5.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
* Site
+ [1]Home
+ [2]About me
* Blog
+ [3]Posts
+ [4]Categories
* Post
+ [5]Comments
+ [6]Related
No one actually wants simplicity
by [7]Luke Plant
Posted in:
* [8]Rants
* [9]Software development
* [10]Web development
— August 22, 2023 18:49
The reason that modern web development is [11]swamped with complexity
is that no one really wants things to be simple. We just think we do,
while our choices prove otherwise.
A lot of developers want simplicity in the same way that a lot of
clients claim they want a fast website. You respond “OK, so we can
remove some of these 17 Javascript trackers and other bloat thats
making your website horribly slow?” no, apparently those are all
critical business functionality.
In other words, they prioritise everything over speed. And then they
wonder why using their website is like rowing a boat through a lake of
molasses on a cold day using nothing but a small plastic spoon.
The same is often true of complexity. The real test is the question
“what are you willing to sacrifice to achieve simplicity?” If the
answer is “nothing”, then you dont actually love simplicity at all,
its your lowest priority.
When I say “sacrifice”, I dont mean that choosing simplicity will mean
you are worse off overall simplicity brings massive benefits. But it
does mean that there will be some things that tempt you to believe you
are missing out.
For every developer, it might be something different. For one, the
tedium of having to spend half an hour a month ensuring that two
different things are kept in sync easily justifies the adoption of a
bulky framework that solves that particular problem. For another, the
ability to control how a checkbox animates when you check it is of
course a valid reason to add another 50 packages and 3 layers of
frameworks to their product. For another, adding an abstraction with
thousands of lines of codes, dozens of classes and page after page of
documentation in order to avoid manually writing a [12]tiny factory
function for a test is a great trade-off.
Of course we all claim to hate complexity, but its actually just
complexity added by other people that we hate — our own bugbears are
always exempted, and for things we understand we quickly become unable
to even see there is a potential problem for other people. Certainly
there are frameworks and dependencies that justify their existence and
adoption, but working out which ones they are is hard.
I think a good test of whether you truly love simplicity is whether you
are able to remove things you have added, especially code youve
written, even when it is still providing value, because you realise it
is not providing enough value.
Another test is what you are tempted to do when a problem arises with
some of the complexity youve added. Is your first instinct to add even
more stuff to fix it, or is it to remove and live with the loss?
The only path I can see through all this is to cultivate an almost
obsessive suspicion of [13]FOMO. I think thats probably key to
learning to [14]say no.
Links
* [15]Discussion of this post on Lobsters
You may also like: [16]§
* [17]Super-fast Sphinx docs, and SNOB driven development
* [18]Test smarter, not harder
* [19]Announcement: Django Views - The Right Way
* [20]Wedding hacks - seating planner using simulated annealing
* [21]Wedding hacks - John Lewis gift list hyperlink
* [22]A prayer to the programming gods
* [23]Why learning Haskell/Python makes you a worse programmer
Comments [24]§
Comments should load when you scroll to here...
Copyright Luke Plant
Built using [25]Nikola
Powered by [26]DigitalOcean
References
1. https://lukeplant.me.uk/
2. https://lukeplant.me.uk/personal/
3. https://lukeplant.me.uk/blog/
4. https://lukeplant.me.uk/blog/categories/
5. https://lukeplant.me.uk/blog/posts/no-one-actually-wants-simplicity/#comments
6. https://lukeplant.me.uk/blog/posts/no-one-actually-wants-simplicity/#related
7. https://lukeplant.me.uk/
8. https://lukeplant.me.uk/blog/categories/rants/
9. https://lukeplant.me.uk/blog/categories/software-development/
10. https://lukeplant.me.uk/blog/categories/web-development/
11. https://www.youtube.com/watch?v=BtJAsvJOlhM
12. https://lukeplant.me.uk/blog/posts/test-factory-functions-in-django/
13. https://en.wikipedia.org/wiki/Fear_of_missing_out
14. https://grugbrain.dev/#grug-on-saying-no
15. https://lobste.rs/s/ao2x0v/no_one_actually_wants_simplicity
16. https://lukeplant.me.uk/blog/posts/no-one-actually-wants-simplicity/#related
17. https://lukeplant.me.uk/blog/posts/super-fast-sphinx-docs/
18. https://lukeplant.me.uk/blog/posts/test-smarter-not-harder/
19. https://lukeplant.me.uk/blog/posts/announcement-django-views-the-right-way/
20. https://lukeplant.me.uk/blog/posts/wedding-hacks---seating-planner-using-simulated-annealing/
21. https://lukeplant.me.uk/blog/posts/wedding-hacks---john-lewis-gift-list-hyperlink/
22. https://lukeplant.me.uk/blog/posts/a-prayer-to-the-programming-gods/
23. https://lukeplant.me.uk/blog/posts/why-learning-haskell-python-makes-you-a-worse-programmer/
24. https://lukeplant.me.uk/blog/posts/no-one-actually-wants-simplicity/#comments
25. https://getnikola.com/
26. https://m.do.co/c/cef485980f20