update philosophy
This commit is contained in:
@@ -42,11 +42,61 @@
|
||||
</header>
|
||||
<main>
|
||||
<h3>Philosophy</h3>
|
||||
<h4>The Problem with Modern Computing</h4>
|
||||
<p>
|
||||
Post early 2000's software is bloated, rights infringing, centralized and political.
|
||||
Long gone are the days of individual software freedom, and individual invention.
|
||||
The world has changed, and the world has fallen victim to the one and only thing that
|
||||
could possibly destroy freedom. Corporatist consumerism.
|
||||
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>
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
<i>OracleSQL</i>
|
||||
<i>Docker</i>
|
||||
<i>Docker-Compose</i>
|
||||
<i>NGiNX</i>
|
||||
<i>PostgreSQL</i>
|
||||
<i>SQLite3</i>
|
||||
<i>MySQL</i>
|
||||
|
||||
Reference in New Issue
Block a user