Commercial web development isn't suitable for passion-driven developers 2022-01-11 on Kenneth Dodrill's blog

I was a web developer for about five years. I have mentioned before how I learned web development and what issues I came across. Luckily, at my first web developer position everyone was very accepting and knew their stuff. I learned a lot about how to fix things, how to test for bugs correctly, and how to write better code. Unfortunately, my next few jobs after that weren't great and made me realize that web development isn't suitable for me - a passion-driven developer.

I love making things better and faster, and I love learning new things so I can improve my set of skills. My claim is that the commercial web development field is not a place for such optimizations, unless you happen to find a rare team of open-minded individuals who care about their work.

Why the web sucks

The internet was once a place of neat, lightweight HTML pages that contained blogs and harbored small communities. The modern web to a typical user is going to mean Gmail, Facebook, and Microsoft Office - huge websites and applications that use a ton of resources and invade your privacy by collecting and selling your personal data. For Facebook (and other social media sites), ethics should also be in question.

Many companies will opt for the software labeled as "commercial" rather than reviewing the options and intelligently picking something. This also applies to the web, and can also apply to how web developers choose technologies. Consider reading through my previous post (linked earlier) to understand how lack of an overview can limit one's ability to choose a technology that the individual or company actually needs. Picking a technology just because of how popular it is can effectively cripple software before work on it has begun.

Ads and tracking

Ads and tracking heavily weigh down websites by loading additional scripts (that may call to other scripts) and probably end up as packages in the codebase. There's another reason why people use ad-blockers besides getting rid of visual noise - because it makes websites load faster.

Tools and frameworks

There are so many languages and frameworks for the web. There is no way that you can find an exact required skill set across multiple applications because of this. Off the top of my head, I can think of five javascript frameworks (but, of course, there are many more). There are also several different packages for minimizing javascript and css. There's other forms of JavaScript like CoffeeScript, TypeScript, and Dart. For CSS you have Bootstrap, Tailwind, Bulma, and Foundation. For the backend side of things you've got all sorts of languages and various frameworks for them. The list goes on and on, and the real problem is that they don't play nice together. On top of all of this, trying to make a completely custom product for a company will likely cost way more and could end up being worse depending on who is developing it.

Because of the amount of frameworks and languages, tools have become much bigger and more confusing. To download the latest version of PhpStorm (compressed), you need 536MB of storage space (and that's a .tar.gz!). Emacs is 4MB uncompressed. VSCode is 20MB uncompressed.

Passion-driven developers will eventually hate the web

Once I began to see the cracks, I took steps to remove myself from online services and platforms. As I stopped using web applications and moving to on-disk software, I also began moving from GUI apps to terminal apps. Additionally, I began to think of the internet as more of a resource than a given, which has helped me focus on things I want to do and get better at.

Because I am a passion-driven developer, I care deeply about my work and want to make sure it's good. I always want to learn more and I appreciate co-workers that feel the same. Because most companies make technological decisions based on popularity and because many of those decisions harm the internet and effectively harm our environment (more CPU cycles), I can't continue to work in the web development field (with the exception of returning to my first job).

Here is an excellent blog post from the author of a very popular PHP library for generating fake data. It's the first post that made me think about how the programs we develop effect the environment. If you are interested in computing and the environment, I would strongly suggest learning more about permacomputing by reading this blog post.

My opinion is that once web developers begin to realize how fragmented, commercialized, and ethically wrong the web is...they will hate it. You either work with a rare team of knowledgeable developers who are fighting to improve (at least their side of) the web, or you try to accept how broken it is and work with heavy tools, frameworks, and libraries that contribute more CO2 into our air. I can't do that, and I want to believe that other passion-driven developers wouldn't be able to either.

Only people can remedy this

As I said, I appreciate co-workers that are also passion-driven developers. If a whole team consists of developers who strive to make the web smaller and more optimized, it can override my feelings towards the modern web. Again, the first job I had contained a team of dedicated individuals who wanted to make the codebase better - optimized, cleaner, standardized.

Still not realizing how third-party packages could effect future development, I thought that packages like VueJS, Sass, Gulp, Webpack and others would inherently improve the codebase without any setbacks. Because these packages are very popular, and because I was new web developer, I did not study their implementations, nor did I consider how it could add to the weight and (unneeded) complexity of the codebase. I accepted them as how best to develop web applications instead of critically analyzing them, thinking about the underlying mechanics, and applying that using my own code. Once I realized these mistakes, I had already moved on to different jobs. I have never encountered a similar team.