114 lines
5.2 KiB
HTML
114 lines
5.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="description" content="Rawley.xyz, Rawley Fowler's software fundamentalist philosophy">
|
|
<title>rawley.xyz/philosophy</title>
|
|
<link href="/static/index.css" rel="stylesheet">
|
|
<style>
|
|
h4 {
|
|
font-size: 1.2em;
|
|
}
|
|
|
|
h5 {
|
|
font-size: 1em;
|
|
}
|
|
|
|
i:before, i:after {
|
|
content: "`";
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1>
|
|
<a href="/">/home/rawley.xyz</a>
|
|
</h1>
|
|
<nav>
|
|
<li>
|
|
<a href="/blog">blog</a>
|
|
</li>
|
|
<li>
|
|
<a href="/resume">resume</a>
|
|
</li>
|
|
<li>
|
|
<a href="/philosophy">philosophy</a>
|
|
</li>
|
|
<li>
|
|
<a href="/web-ring">web ring</a>
|
|
</li>
|
|
</nav>
|
|
</header>
|
|
<main>
|
|
<h3>Philosophy</h3>
|
|
<h4>The Problem with Modern Computing</h4>
|
|
<p>
|
|
As computers get faster get faster, code quality and performance get's worse. The tragectory of the software world
|
|
(particularily in the web dev sector) is to produce solutions to problems, without considering
|
|
performance, optimization, and availability. How many billions of CPU cycles have been
|
|
lost rendering SPA's and PWA's? In reality, computers are limited tools for communication, mathematics,
|
|
and entertainment, not for loading 2MB JavaScript payloads, that in turn render the page.
|
|
</p>
|
|
<h4>Solve Your Own Problems</h4>
|
|
<p>
|
|
These ideas also, drastically effect the availability of software. Most software nowadays is horrifically bloated.
|
|
It's not rare to see 2GB `node_modules` folders when working on Node.js projects, and the best part is, half of
|
|
the packages are just simple packages like `isOdd` and `isEven`. How lazy have developers become? We reach for
|
|
pre-made solutions to well-defined problems when we could easily write our own without exposing our software to
|
|
potential security vulnerabilities, and inturn reducing bloat. Some developers will argue
|
|
"why do it yourself when I can get a premade solution, that I know works!" Sure, download that dependency, link that
|
|
project to yours, but know this. You will <b>never</b> develop anything truly unique if the solutions to <u>your</u>
|
|
problems are solved by people smarter than you. Simply put, how do you think the library creators made it to the level
|
|
they're at today?
|
|
</p>
|
|
<p>
|
|
Packages also, can make us feel very productive. This is something that Jonathan Blow points out in one of his talks,
|
|
Blow mentions that high-level languages, and libraries make us feel like we're doing a lot more than we really are.
|
|
Ken Thompson and company wrote most of Unix in 3 weeks; an entire operating system, kernel and all. Compare this to
|
|
the most "productive" day of a web developer. Blow demonstrates in his talk that as companies progress they hire more
|
|
and more people, but the products and codebases of the companies rarely change drastically enough to warrant this. Meta
|
|
for example, employs 71 thousand people as of 2021, how often does Facebook, Instagram, or WhatsApp change?
|
|
To put it nicely, most developers don't do very much at all.
|
|
(To put it in math terms where p(x) = productivity per employee, and x = number of employees,
|
|
Lim x -> ∞ p(x) = 0).
|
|
</p>
|
|
<p>
|
|
It is far more interesting, educational, and engaging to solve problems, rather than use a pre-built solution. Developers
|
|
will create truly unique, and engaging solutions that can be iterated and improved, when needed without having to pester
|
|
library maintainers. And to top it all off, your solution will be unique to your workload and problem. You will be solving
|
|
your problem better than something generic.
|
|
</p>
|
|
<h4>The Core 2 Duo Standard</h4>
|
|
<p>
|
|
Software before the 2010's had to take into account the machines that they were running on, in turn
|
|
causing software to be developed in a more intimate way. Machines were fair, but not powerful. Think,
|
|
Intel Core 2 Duo, 2-4gb of DDR2. This hardware is actually very good, and in my opinion as much as an
|
|
average person needs (even today). If you write software (outside of graphics programming, games, etc),
|
|
and it can't run on a Intel Core 2 Duo, you need to seriously re-think what you're doing, and how you're doing it.
|
|
</p>
|
|
<h4>Conclusion</h4>
|
|
<p>
|
|
Do it yourself. Only use what you need. Take ownership of your work.
|
|
</p>
|
|
<p>
|
|
It's really a beautiful and unique way to approach software, and to an extent, life.
|
|
I find much more gratification and self purpose when I solve my own problems indepdent of pre-existing solutions.
|
|
The world would be a much better place if we focused more on what we need vs. what we want. This is especially powerful
|
|
in software, but can also be applied to how your own happiness. Finally, taking ownership and responsibility of your
|
|
work will make you better at the work, and also, a more pragmatice person overall.
|
|
</p>
|
|
</main>
|
|
<footer>
|
|
<hr>
|
|
<p>
|
|
Copyright © Rawley Fowler 2022
|
|
</p>
|
|
<p>
|
|
<b>Disclaimer</b>: All opinions on this site, are that of my own. They do not
|
|
reflect the opinions of any of my employers; past, present, or future.
|
|
</p>
|
|
</footer>
|
|
</body>
|
|
</html>
|