Initial Commit
February 11, 2022
874 words

 I am amazed by how easy it is to learn basic web design. Knowledge is more readily available than any other programming domain I have dabbled in throughout my life, which makes some sense. Most professional programmers are building websites, as far as I can tell, but I have mostly been interested in desktop applications so far.

 I do regret not building a website until now. My dad purchased a different domain when I was a teenager, which I never made use of. I would have been well-served by maintaining a website in my adolescence, but the past has passed.

 In my childhood, I had not heeded technical philosophy or the wisdom of counter-cultural programmers like Mike Acton, Terry Davis, Casey Muratori, et. al. Had I designed a website at that time, I most certainly would have been influenced by the programmers who I knew personally. They were mostly game developers and artists using interpreted programming languages (as was I), and one talented graphics designer whose now-dead XenForo message board stands amongst the most beautiful I have ever seen. For whatever that's worth.

 Today, I know more about computers, and hold technical opinions with stronger and more informed conviction than I had as a child or teenager. I believe that page weight is a significant accessibility concern, to the extent that sophisticated technology is employed, moral conundrums have somehow been introduced, and no shortage of technological controversy abounds.

 There is much more to say about WebGL, Electron, React, TypeScript, and other frustrating web-based technologies, but I'm sure any reader has heard many of the arguments, and already holds some opinion. Since becoming frustrated with the (unrelated) technologies I was using as a teenager, my perspective as an engineer has shifted towards developing tools to solve my tangible problems. Some of the projects hosted on this website are specific examples, but this website itself is also one.

 My blog is written in HTML, without a content management system, static site generator, or JavaScript components. I have authored CSS, but it is not responsible for the structure of text anywhere in my website. For that reason, it is completely reasonable to browse my blog with a pure HTML renderer. I think that it is unfortunate the Internet is reasoned about in terms of content and style, rather than text and graphics, for otherwise effects such as the drop shadow you might be seeing would be orthogonal to the layout of text. An unsophisticated web browser would be completely reasonable for browsing any static website, unlike status quo.

 That there are, practically, only three supposedly-modern web browsing engines is slightly appalling to me. How can a society allow itself to become so deeply dependent on a technology that some human, or a small team of humans, couldn't possibly reproduce? This seems deeply ominous to me. The SerenityOS web browser is an interesting project, but I doubt that it will ever achieve actual feature parity with Firefox's renderer and runtimes, even if you exclude Shockwave Flash. That is not to mention whichever future features Firefox will have, after WebGPU is considered stable and W3C thinks up of something new. WebKit is generally considered very inferior to Chromium or Firefox, and Firefox has been steadily losing market-share to Chromium. Microsoft recently abandoned their own web browser engine, which was once accused of monopolizing the browser space, and it seems to me that we are converging onto a monoculture around Chromium.

 I am often browsing my blog, and editing it, using the Emacs Web Wowser. This is a pure HTML browser which, due to some challenging problems in GNU Emacs, is not a feature-complete HTML renderer. Still, it is a reasonable interface to this website, and I have found that many GNU Emacs users value the simplicity and elegance of pages that can be used in a low-technology manner. I believe that this website could be usable without high-technology renderers and Javascript runtimes, or even a decent CSS renderer (although, evidently, HTML and CSS renderers can be reproduced).

 I cannot solve any monumental problems in the web-space, obviously, but I can help improve the state of its alternatives. As Mike Acton said, "the problem is the problem", and for any real problem that people have in the world, such as the need to compute profit margins or edit an essay, the solution is (sometimes) a computer program. It's not a JavaScript applet, it's a computer program. Whether that program is or is not a JavaScript applet is a separate concern, but I should like to remember that the technologies I choose isn't the problem semantics, what my software actually does is the problem semantics. To realize what a problem actually is, I find the Socratic Method helpful. For any technical decision I consider, I try to ask why I must do it. The answer usually raises another question, and in descending through a sequence of increasingly lower-level questions, eventually I find a sufficiently basic insight. Mike Acton's fifty questions seem like some good start points.

 I don't want to assume something dogmatic, like Javascript can't ever be the best solution to some given problem, but I haven't personally found a problem that fundamentally requires a web-applet or Python script so far.