4 ms·
The author seems to be arguing that "most general" = "best" - because text is the most general communication format, it's the best. This argument is pretty tri
by fouric 6y ago
The author seems to be arguing that "most general" = "best" - because text is the most general communication format, it's the best.
This argument is pretty trivially false.
By this logic, the best programming language is assembly, because it's the most general. Actually, writing opcodes directly might be more general, in case your assembler doesn't have translations for some undocumented opcodes. The best editor would be a hex editor. The best web browser would be netcat piped into a hex editor, as well. The best OS would be no OS at all (because OSes impose restrictions in order to make programming easier and safer). The best application, for any kind of application, would be an interpreter that would allow you to create your own, however you wanted.
Engineering is necessarily a tradeoff between generality and efficiency. Technology is largely used to make things more efficient, and so our tools always impose some constraints on the problem/solution space in order to be more efficient than not using that tool.
A common design pattern is a specialized fast-path and slower (but more general) fallback.
In addition, as many others have stated here: "the right tool for the right job". Videos, audio, pictures, and interactive tools will always be more efficient for certain problems. If your sole concern is generality, then yes, by all means, use text. However, this will almost never happen; your design space will almost always necessitate a tradeoff of generality with efficiency - in which case, pure plain text is rarely the solution.
- mjcohen 6y agoAssembly language is not the most general because and particular assembly code can be run on only a few particular architectures. It's the higher-level languages that are more general.
- fouric 6y agoAlright, I'll add a caveat: "assembly language is the most general for a particular architecture". > It's the higher-level languages that are more general. This is still false. Rust, for instance, is higher-level than C, while being less general - the borrow-checker constrains you from being able to do certain things. Haskell is even higher-level and even more restrictive. The most general "programming language" is a Turing machine. Not coincidentally, it's also the least useful, and nobody programs in it. This reinforces my point that "more general = more useful" is false.