Philosophy
+The Problem with Modern Computing
- 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. +
+Solve Your Own Problems
++ 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 never develop anything truly unique if the solutions to your + 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? +
++ 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). +
++ 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. +
+The Core 2 Duo Standard
++ 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. +
+Conclusion
++ Do it yourself. Only use what you need. Take ownership of your work. +
++ 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.