I think that programing languages are easily formal systems and thus are bound
by any inherent weaknesses. I suspect that an ad-hoc representational system is
held together by some formal constraints and as such, to me at least, is a
higher-level view of an underlying formal system. For human languages, I've
often wondered if they are formal or there is some informal element that
underlies our perception of intelligence (other than the obvious gradual
weakening of associations over time). I do tend towards the thinking that our
existence is deterministic to a large degree, but underneath it can be highly
complex, chaotic and perhaps unknowable (although I reserve the right to change
my mind at any time :-)
For code generation, I've always thought that currently the only intelligence
in software is there because we put it there. Code generation is a way to do
less work and get that work massively expanded, but it is still bound by the
fact that it isn't creating new intelligence, just working with what it already
has. One might consider software to be a race between what we know and what we
have coded for; one that we can never beat, but perhaps we can stay close to
even (AI would obviously change that).
The root idea behind what I wrote years ago was that we often think that our
way to keep up is by going up to a higher abstraction. Instead, I thought it
might be possible to go sideways. Thus the computer builds us systems from many
smaller pieces that are interchangeable, rather than us searching for better
abstractions. We'd never be able to create 'all' of the pieces, but each time
we added stuff, we wouldn't have to re-examine what already exists. I'm not so
sure that it won't just run into horrific problems with things like recursion
and typing problems. But, I've always thought that it was an alternative worth
considering.
Paul.
>________________________________
>From: BGB <[email protected]>
>To: Fundamentals of New Computing <[email protected]>
>Sent: Monday, July 18, 2011 2:14:55 PM
>Subject: Re: [fonc] Last programming language
>
>
>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
>
>
>_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc