Evolutionary Programming!

Jason Jeffory via Digitalmars-d digitalmars-d at puremagic.com
Tue Jan 5 22:01:13 PST 2016


On Tuesday, 5 January 2016 at 23:14:27 UTC, thedeemon wrote:
> On Tuesday, 5 January 2016 at 16:10:21 UTC, Jason Jeffory wrote:
>> Is it possible that one could develop or modify an existing 
>> programming language that can adapt in such a way to provide 
>> maximum unity between programmers?
>>
>> What are the properties of the perfect language? To be able to 
>> create it we have to know them.
>>
>> Here are a few "laws" that I think it would have to have:
>>
>> 1. Grammar independence...
>> 2. Platform independence...
>
> Languages differences are far from just grammatic or platforms. 
> You seem to completely ignore semantics, and it's very 
> different. But most important, people are different and their 
> needs in different projects are different, so they need 
> different things from the language.
>
> Alex wants to control memory allocation to the last bit and do 
> it manually.
> Bob doesn't care about memory and wants a GC to clean things 
> up, don't make him think about all those free(), delete, 
> reference counts or whatever.
> Charlie thinks in terms of for loops and bytes.
> Dan thinks in terms of applicative functors and natural 
> transormations in 2-categories for the left Kan extensions of 
> his free monads. (yes, it's still programming)
> Ellie wants dynamic typing.
> Frank wants strong static types everywhere.
> Gordon wants all his data to be immutable and all functions 
> referentially transparent.
> Howard likes mutating data in-place. Allow him, and Gordon will 
> lose his ability to reason about the code.
>
> Good luck making all these guys write in one language and 
> understand each other.
>
> Talking about evolution. Did you ever see evolution leading to 
> consolidation into one specie? It works just the opposite: 
> different habitats are filled with millions of different 
> species. Survival of the fittest for each place == right tool 
> for each job.

Um, there is only one form of life, and that is life itself. You 
are confusing variations as distinct entities.

One could have a solid(mathematical and logically provable(maybe 
a turing machine on steroids)) that is provable to provide all 
programmatic needs(in the computational sense). The grammar is 
irrelevent. If Alex wants pascal style he uses it... if Joe wants 
C++, he uses that. It doesn't change the language, only the form. 
That was my point about the languages in my original post.

Semantics is the WHOLE POINT! It's not being ignored!! But until 
people coordinate there efforts on the real problem a ton of 
effort is wasted.

Just because Alex and Bob disagree on specifies means nothing for 
the language itself. The language is suppose to be a living 
breathing thing.

Take it like this: What if every human being spoke the exact same 
language? No dialects, no semantical ambiguities, no illogical 
arguments?

Would the world be a much more efficient place? Better? I don't 
know. Maybe all the variations is important(it is in an 
evolutionary sense), but many problems stem from people not being 
able to communicate effectively. A lot of time is wasted arguing 
about stuff or about misunderstandings... even if people don't 
recognize it. Wars have been started over such things. It's 
important enough to bring everyone together under a common 
umbrella for humanities sake. Less wasted time, less pollution, 
less anger, less unhappiness.

Computers are being an integral part of humanity... But as long 
as we all speak different languages we will never be as one. 
Computers are part of the story. They are evolving from us, 
through us... And our mentality and approach to them will 
determine how fast and how well this happens. But currently there 
is so much bickering and wasted time over asinine(meaningless) 
things. e.g., Using {} or BEGIN END is fucking absolutely 
irrelevant, yet how many humans have wasted their time and others 
fighting over such ignorant things? It's like saying one color is 
better than another, or left is better than right, ford or chevy, 
etc. It's meaningless.... except that in which ignorant people 
make meaningful and spread it like a cancer that effects everyone 
in untold ways.

How many programmers have wasted their life fixing bugs? Is it 
worth it? I don't believe so(It may be necessary, but that's a 
different question).


Imagine this:

1. A programming language that is syntax independent(essentially 
an IL like basis... we already are starting towards that end)... 
but imagine it being developed much further than it is now.

2. A programming language that everyone can extend to solve 
problems. Not in a haphazard way, mind you, in a control and 
focused way. If the language cannot do X, then it is extended to 
do X. This way Alex can get what he wants. It can't be illogical 
because the language is designed to be logical.

3. The only programming language in existence(because it solves 
everyone's problems).

---Imagine what kind of power humans will have. Every minute 
programming is a minute, not 1 second of programming and 59 
debugging. The untold increase in efficiency would be astounding.

(One could argue in the same way about humanity how it treats 
people, and all that. It is really an issue of unity and the 
question is, Do you think that there is a theoretical unifying 
programming language)







More information about the Digitalmars-d mailing list