On 7/18/2011 8:58 AM, Paul Homer wrote:
Realistically, I think Godel's Incompleteness Theorem implies that
there can be no 'last' programming language (formal system).
fair enough, but part of this depends on whether or not one considers
languages as formal systems, or instead more generally, as potentially
ad-hoc representational systems.
But I think it is possible for a fundamentally different paradigm make
a huge leap in our ability to build complex systems. My thinking from
a couple of years back:
http://theprogrammersparadox.blogspot.com/2009/04/end-of-coding-as-we-know-it.html
potentially...
the possibility of automatic code generation is potentially something
that can, over time, change the problem domain.
for example, gradually the lower-ends of programming end up largely
eroded away.
hand-crafted machine code erodes in favor of ASM;
ASM erodes in favor of HLLs;
lower-level HLLs in favor of higher-level ones;
...
and at the same times, tasks like drawing graphics, doing complex
calculations, interfacing code between programming languages or moving
between architectures, ... gradually become absorbed into tools and
libraries.
for example, people may take it for granted that they can push out some
3D geometry and have it appear as a 3D object on-screen, execute "p**q"
and raise one quaternion to the power of another quaternion, or simply
share objects and call methods between several unrelated programming
languages, or run the same program on multiple combinations of CPU+OS.
but, at the lower levels, lots of work goes into making all of this work:
3D rendering is not a simple task in general;
nor are things like quaternion exponents (well, maybe, this mostly boils
down to the Taylor Series);
transparently gluing between languages can also become hairy and nasty
(one may have to work around very different ABIs and typesystems for
example, such as the realization that a C struct and JavaScript object
are, not really all that much similar, nevermind varargs...);
VMs are their own piles of complexity in some ways;
...
yet it works, and the types of work one has to do manually is a moving
target.
however, the thing is, thus far, many of these haven't really changed
the fundamental nature of what is programming, just made bigger and more
complex systems more readily possible.
this may also be part of why software tends to gets bigger and more
internally complex faster than hardware gets bigger and faster (despite
human code-output not growing similarly).
many people may take for granted that they can install a thumb tack
using a sledgehammer wielded by a robot.
or such...
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc