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