Evolutionary Programming!
Jason Jeffory via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jan 5 22:23:22 PST 2016
On Wednesday, 6 January 2016 at 01:45:50 UTC, Christopher
Bergqvist wrote:
> On Tuesday, 5 January 2016 at 16:10:21 UTC, Jason Jeffory wrote:
>> Any more thoughts?
>
> I empathize with you Jason. It's kind of like biological
> evolution that has progressed through organisms spawning new
> generations and dying, and some humans' search for immortality.
> Being free from aging and disease would lead to a different
> kind of evolution happening within the same generation, through
> technology.
>
Yes, but we can see the trend that humans only, at least on this
planet in all reasonable arguments, are moving towards
"immortality"(your word, not mine ;). But we are moving towards
it in a relatively inefficient way. Why 0.0001% contribute to the
progress, 99.999% move in the opposite or orthogonal direction.
Same with languages. Everyone things they can create a better
language. They form small groups like mold does on a petri dish
putting all there energy coming up with "something better". They
come up with a variation. Someone else with their variation.
There are so many variations that there is no unity... like a
massive symphony of variation on variation that has no glue to
make beautiful music. It feels insane to me, personally.
As you probably know, the small groups of mold/bacteria are less
likely to survive then when they clump together(this might simply
be to the procreation rate or whatever).
Instead of haphazard variations that are each incomplete, if
everyone worked together on a single variation, we might
"survive". (just as the mold has a better chance)
We don't need new languages, we need to "merge" the best of all
we have and then make that the "official language", and modify it
and adapt it as one unified variation(sorta like Beethoven's 5th
which is almost entirely built from a single motive... it's what
gives it it's strength... Beethoven was a genius for seeing how
powerful such an idea is, and arguably, it is the most well known
and well liked piece of music).
> This new language would not have to die out and be replaced as
> progress is made, and it would have a capability of evolving
> without growing enormous scars like C++.
>
This would be the goal. I think it would have to be designed and
proven to do so before we were to actually start down the path of
implementing it, else it results in just another variation on a
variation(it might be better, but only puts the real problem off).
> Key to a clean evolution is robust upgrade-ability of source
> code IMO. If the language designers add the dimension of @safe
> as an after-thought, an upgrade script could be run on old
> source-code that would tag all valid functions as @safe, (or
> better; tag unsafe functions as @unsafe).
>
I don't think this would be a problem if the language itself was
designed properly.
These types of semantics would be part of the language from the
beginning. We *now* know that certain things are required for
proper growth. We may not yet be smart enough to design the
unified programming language but we have come a long way... and
if every programmer on the planet worked day and night for 5
years, we would have an almost perfect approximation(99.999% vs
stuff like 25-75% that we have now)
> I'm leaning toward live-editing AST's instead of raw text for
> robust, quick upgrades and quick compilation times. The tree
> could be stored in XML/JSON/binary, but be edited in a
> different view. AST editing would also fix the issue that
> beauty is in the eye of the beholder (programmer), as the same
> program tree could be visualized/skinned in different ways. The
> same programmer could also be writing programs with different
> defaults (such as @safe/@unsafe) depending on context (short
> term shell scripts vs aviation-software). The reason similar
> AST projects have failed in the past AFAIK is that it's very
> very hard to build pleasant to use editors and
> viewers/diff-tools. Programmers are married to their editors
> (https://www.youtube.com/watch?v=qzC5H5xrr-E oh Andrei :) ).
This is sort of what I'm getting at. The skinning analogy is a
good one. The skin can change but the language remains the same.
I suppose it takes a lot of work and mucho theoretical progress
in not just computers but also psychology an logic/math.
> Bikeshedding in language forums would also go down a lot if
> programmers could re-skin keywords, brackets, indentation etc.
> :)
>
There would be none, in the long run, because if the language
itself is perfect, everyone would be taught it correctly from day
one. Children would understand it logically just like how child
virtuoso's are able to immediately pick up the natural underlying
language of music through proper training.
> Regarding the struggle for immortality, I think the death/life
> cycle still provides a way of evolution that is preferable in
> many ways. Having different languages provides immunization
> from madness that might take down the "one true language". I
> would love to see AST-based/structured languages succeed
> alongside text-based languages like D some day, and see the
> degree of duplicated programmer hours go down.
>
It's possible. Mutations are a natural defense for evolution and
a way for it to optimize itself. I can't help but feel that
humanity, right now, is on the doorstep of understanding
evolution... and hence we don't have to continue to play by it's
rules. We may or may not always be governed by the physical law
but the evolutionary laws seem to be modifiable(because evolution
"wants" to succeed, hence, if you do the things that help it
along, it is "correct").
e.g., Procreation is obviously a way for evolution to develop.
Without it, there is no "life" in the traditional sense. But
humans are figuring out how to modify such things(test tube
babies, extending life expectancies, etc...) and because humans
are part of evolution, it seems natural that these things are not
"wrong". Hence, in the future, man will probably have much much
larger life expectancies. This might be evolution
goal(immortality?).
But who knows... what we do know is that people working
*together* willingfully to solve problems always works better
than when people work against each other. This is basic
mathematics and even born out in the laws of physics(two men can
lift something together that they can't lift apart).
Maybe my ideas are pipe dreams, but so were many things in
life(cars, airplanes, space travel, etc). When people actually
start working together, dreams become reality!!!
More information about the Digitalmars-d
mailing list