FORTRAN should virtually eliminate coding and debugging
softwarepreservation.org
softwarepreservation.org
http://groups.engin.umd.umich.edu/CIS/course.des/cis400/fort...
Just a day ago I've mentioned that the printf equivalent that existed in FORTRAN as early as 1956 was able to do the type checking of the parameters and the compile-time code generation, versus the run-time interpretation as in C's printf.
We've become inured to silver-bullet bullshit in software, but it's an anachronism to think that about this report, which was dead right. In fact by subsequent standards their claim was rather modest. The full quote reads:
Since FORTRAN should virtually eliminate coding and debugging, it should be possible to solve problems for less than half the cost that would be required without such a system.
Yet it is particulary visible in computing. Why is that?
Side note: bullshit in marketing brochure is here to stay.
However, people will still need to know how to program (AI not being a factor).
I think that by coding, you mean typing? In your example, we won't be eliminating coding, we'll just be entering code using a different language.
It could be possible to verbally configure the browser to use a proxy server and I guess that would be the different language you speak of. However, this leads to the need for AI or some kind of "intelligent" system: difficult to make one that isn't domain specific.
Though such an intelligent system is also inevitable (in my opinion), I think there is a step between describing software using such a system and writing code as we do today.
This step would be some kind of domain agnostic software framework that can be used to create software without the need to "code out" a solution. The framework itself would need to be coded, but the usage of the framework would not.
If you think typing in long programs is going away, you may be right - the future looks more like a Lego type of programming rather than the current sea of logical equations. But in that case I'd say you've coded your message in the form of lego blocks, but coding is still there in essence.
When you speak instructions into a computer, you've still coded. When you change your proxy like in your example, you've coded(in a non imperative way).
I believe it wasn't even clear that the big O complexity is important in assessing how effective an algorithm is. This is pretty much obvious to us now (sometimes too obvious - there are some edge cases when the constant factor wins over the asymptotic complexity).
You cannot really say that cache-aware algorithms have higher asymptotic bound. Some of them might happen to have below-optimal asymptotic bound in a cache-unaware memory model, which sort of misses the point of the algorithms being aware of cache.
Don't worry, I'm not. I'm saying that sometimes, naive algorithms have better cache behavior than more complicated algorithms with lower asymptotic bounds.
I think that one of the differences is that, in 1954, computer programs were single entities written by one person or by a team working closely together. So the "between two pieces of working code" bugs-- which tend to be the nastiest kind in modern development-- weren't really seen yet. Million-line codebases weren't even on the table as a reasonable concept, and the idea of a program depending on 120 other libraries or frameworks was unimaginable.
— Maurice Wilkes