I want to advocate for good software and tools that make software development better
There is this common thought that programming languages (PL), frameworks, and libraries are just tools for the developer to use. This cognitive space has many ideas:
- You should pick whatever PL/editor/framework you’re comfortable with
- You should pick the right tool for the job
- There are always trade-offs for each tool. Some tools are better for GUI’s others are better for Parsers.
I disagree with most of this. I think there are superior tools that make development better in every way without making trade-offs. Wheather these tools exist right now or might exist I do not know. However, thoughout this blog, I’ll provide arugments on why and how such tools can exist, and why the software industry should move on to them. I don’t want to spill out everything here, but as a starter point: Tools that advocate for the creation of human-interpretable and machine-interpretable computational models and provide an easy way to do so are strictly better than tools that don’t. You might think about this in terms of features such as a type-system, OOP, state machines, or various concurrency models. But the rabbit-hole goes much, much deeper.
Overall, I think many in the software industry are ignorant of the true power and impact of tools, even in this age of of JS/TS framework hype and new PL’s like Rust, Go, Zig, and Nim. We barely scratched the surface of software design.
In essence, I want to reach the Nirvana of PL and software in this blog. (Which might be non-existence and we’ll just have the power to communicate to a (super)human-level inteliegence via thought to make our software, if software’s a thing anymore.)