3 ms·
> If maintainability, extensibility, portability, amenability to cheap labor, etc. are considered as engineering goals Those don't sound like goals they sound
by agentultra 11y ago
> If maintainability, extensibility, portability, amenability to cheap labor, etc. are considered as engineering goals
Those don't sound like goals they sound like principles.
A goal is I want to create a web server that implements the HTTP 1.1 specification that can process a stream of N bytes per second over X simultaneous connections. There are metrics, tolerances, and limits to consider.
A well engineered program that considers the data first and foremost can be easier to maintain since there are fewer abstractions to consider and reason through. It can be easier to debug since the program execution and memory layout are explicitly maintained. Performance is much easier to reason about for the same reasons. It is actually easier to refactor this kind of code in my experience.
We have to get out this idea that our job as programmers is to write code. It's really about solving engineering problems with computers -- real processors with caches, memory channels, interrupts, and the whole nine yards.
update: To wit, for those that know me, I actually write a lot of Python code. And Common Lisp. Doesn't change a thing; you can write a Python program that is ignorant of the underlying platform the interpreter was compiled for at your own risk... "write once, run everywhere," is a nice idea but a fiction in reality... a cleverly disguised, hand-wavey fiction.