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

Reply via email to