Evolutionary Programming!

Ola Fosheim Grøstad via Digitalmars-d digitalmars-d at puremagic.com
Wed Jan 6 01:35:17 PST 2016


On Wednesday, 6 January 2016 at 05:43:37 UTC, Jason Jeffory wrote:
> Yeah, I'm not sure I understand the StackOverflow thing but it 
> would be cool if people didn't waste so much time having to do 
> the same boilerplate code.

What I meant is that often what we seek is recipes for solving 
specific problems. Python is pretty high level and expressive. 
Quite often we find cut'n'paste solutions in Python to specific 
problems.

What if we had a better way of locating recipes? What if we had 
high level recipes and an AI program that could turn it into 
something more specific and executable?

Basically we not only need a better programming language, but a 
language for helping the AI to locate the best recipes and a 
global infrastructure that can provide all this knowledge 
compilers.

> I'm not sure if AI is far enough along. Proper AI learning 
> algorithms could potentially help(they might suck at first but 
> this is what training/practice is for. Eventually they will be 
> better at it than us

I think we need more computational power. Which will happen, but 
takes time. In our computers the physical chip is the size of a 
confetti. One idea that is being explored is to build chips as 
"cubes" with pipes through them for efficient cooling. And we 
need lots of storage too. Chess players memorize good moves given 
specific configurations, compilers should too. Our compilers 
don't learn... that's rather primitive.

There are solutions that generate machine language by stringing 
together random sequences of instructions and selecting the ones 
that can become part of a working program. But it takes lots of 
computing. With more computing power and storage it might become 
practical, but we'll see more efficient AI based approaches. 
Still, stochastic optimizers like STOKE is hinting of what might 
come.

https://cs.stanford.edu/people/eschkufz/
https://github.com/StanfordPL/stoke-release

> all out... we are on track. It just feels like there it is very 
> inefficient... but like most things, it tends to be exponential.

Yes, or maybe we need _lots_ of storage. It seems to help chess 
computers. Storage also don't need as much energy as computation, 
so it is easier to scale up? Just think about how much storage 
one cubic meter of memorysticks represents... and we are only at 
the beginning of solid state storage.

Our brain is also quite slow, I think parts of it is working at 
100hz? But we have lots of relevant information in storage to 
access ("experience").

> I suppose the average programmer can't comprehend the 
> complexities require for the initial adaptation and it takes 
> time for them to "get with the program". Think of when C added 
> ++... most programmers were not good at oop... now it seems 
> everyone has a pretty solid understanding of it.

Yes, tradition can be limiting. Most have a fair understanding of 
OOP, but many also don't understand that OO is more about 
modelling than programming and can be implemented in any 
language... So I think you are right, programmers probably think 
in rather concrete terms of their code, but the kind of 
futuristic programming language need more abstract thinking than 
commercial languages require.

I remember a visit with a game company in the 90s. They said that 
many of their original coders left when they transitioned from 
coding in assembler to C/C++, the programmers had trouble 
changing how they thought about programming to a higher level.

For us that is difficult to understand, right?



More information about the Digitalmars-d mailing list