Entropy is a programming language about giving up control. All data decays as the program runs: each value alters slightly every time it's used, becoming less precise. An Entropy programmer needs to abandon the pursuit of precision which most programming demands—often working against years of habit—in order to program effectively. Any output from an Entropy program will be approximate, and the more the data is accessed, the more random it will become. The programmer has, at best, a short window to get his/her idea across before the program corrodes.
From the Esolang wiki entry for Entropy.
[Entropy] was inspired by the glitch aesthetic ... and by esolangs in the tradition of brainfuck, which twist logic into delicious nonsense.
From the Esolang wiki entry for Entropy.
Entropy addresses the compulsive thinking reinforced by programming, the rigidity of logic, and the way we must compromise with the computer in order to get it to understand us. It is something that has become more familiar to non-programmers as people manage more of their social interactions and other messy human stuff through computers.
From the Esolang wiki entry for Entropy.
All of the above demos are written using a partial JavaScript implementation of the Entropy programming language. It is by no means complete, as JavaScript does not allow you to easily override primitives to return different values.
Quick example usage:
var myObj = Entropy.watch({
x: 100,
y: 50,
});
So now every time x
or y
on myObj
are used their values will shift slightly:
> console.log(myObj.x, myObj.y);
99.99081870880879 50.022617200930924
> console.log(myObj.x, myObj.y);
99.96514272731977 50.00067855522405
> console.log(myObj.x, myObj.y);
99.9494216624665 49.95761874290215
Again because of the limitations of JavaScript, this implementation will only allow entropification of explicitly watched objects.
Mad props to Daniel Temkin for dreaming up such a brilliant idea.