From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

According to information revealed by time travelers, the esoteric language Feather exists in some hypothetical futures, and will be made by User:ais523. However in other futures the mere idea has caused him to go completely insane before he could make it, while in others again he has kept some of his sanity by indefinitely abandoning the concept. It still remains to be seen which future will be realized in our own timeline, although so far evidence sadly seems to point to the third option.

Crude shadows of the protoideas of Feather may be picked up by people willing to risk browsing logs of the #esoteric IRC channel. The most relevant log is probably this one, in which ais523 explains pretty much the entire known state of Feather development. It's important to note that most (all?) details of the language have not been pinned down; the attempt is more to find anything that works, rather than to implement a specific specification. ais523 subsequently clarified the main issues plaguing Feather here.

Here's an excerpt where ais523 explains the origins and basic idea of Feather (believe it or not, it's inspired by Smalltalk):

<ais523> [...] anyway, the problem with Smalltalk is that you have to have a heavyweight OS-like thing to get anywhere with it
<ais523> because of all the everything defined in terms of everything else and needing a really expansive environment to do things
<ais523> like having class objects for regular objects, and ability to method browse, and so on
<ais523> and the result of /that/, is that Smalltalk programs aren't portable
<ais523> following me so far?
<ais523> basically, the common way to distribute a Smalltalk program is just to bundle the entire VM image
<ais523> because you can't do it any other way
<ais523> now, to solve this problem, you need to do two things: a) allow the language to be entirely written in itself, going back forever (solves the portability problem), and b) allow the VM state to be recreated from scratch by running a sequence of instructions (basically, libraries, followed by the program)
<ais523> I don't think a) is solvable, while remaining computable, but you can fake it using retroactive changes
<ais523> the main reason behind retroactive changes, though, was to get around the need to have separate classes and objects
<ais523> in Smalltalk, you can alter a class in order to change all objects spawned from it
<ais523> in Feather, you create objects by cloning+modification, and if you retroactively change the parent object, that changes all its decendants, so it comes to the same thing

Feather subsequently became something of an inside joke in #esoteric, due to ais523 refusing to talk about the details, and yet still insisting that the language was real, just he couldn't make it work and refused to think about it in order to avoid going mad (and recommends other people do the same).