3 ms·
The reason we haven't replaced human-engineered computer programs with "HAL do this for me" instructions is because the devil is always in the details...
by sundbry 7y ago
The reason we haven't replaced human-engineered computer programs with "HAL do this for me" instructions is because the devil is always in the details...
- _Nat_ 7y agoHah, true. It's definitely been a heck of a lot more than I'd have guessed at first. Still, I approached this whole thing more incrementally; I never tried to say, "HAL, do this for me", but rather I just tried to make a framework that made programming easier. For example, it's easier to do mathematical programming if you put in an abstract numeric class, more like what Mathematica uses than primitive numerics that the CPU uses. It's yet easier if you shift the focus from value-oriented logic to expression-oriented logic. But then that's all heavy-weight stuff; you're stuck with doing lots of expensive computations even when all you want to calculate is "1+1". So, the framework's got to be able to reduce itself to something more optimal. But then there's a question of how to optimize a program. You can't stop too soon, or else your compiled result won't be fully optimal. But if you try to optimize all the way, then whenever you compile something like a numeric simulation, e.g. var result = doHugeMathProblem(); Print(result); , it'd always optimize to something like Print(7); // since result == 7 , as the compiler would've had to do all of the work. So, obviously, we have to ditch "compiling" and move to a generalization. But then, if you mix primitive-computation with abstract-computation, how do you do that optimally? For example, when do you stop trying to find a more clever symbolic solution to a system of equations and switch to trying to solve it numerically? And the chain of problems just keeps going on-and-on like that. Still, it seems like it'd have been a mistake for someone to say, "HAL, do this for me". HAL might be at the end of the road, but acknowledging that and then trying to jump right to it feels like plotting a road trip by figuring out the direction that the destination is in, then attempting to drive straight to it, driving through whatever's in the way rather than on roads out of the silly idea that the path ought to the destination ought to be straight. Which, _tl;dr_, is to say that I understand why everyone who tried to make HAL may've failed, but what confuses me is why people didn't have more success pushing development efforts like that in the linked PDF. Those would've led to HAL, if pursued hard enough.