Talk:List of ideas

Are we discussing anything on this page?
 * You could discuss things on the talk page that isn't directly one of the ideas, such as, discussion of the page itself. --Zzo38 18:11, 6 June 2010 (UTC)

Cleanup
This page is really messy. How about sorting the ideas into sections something like this: The links at the top could be sorted into appropriate sections. I'm thinking we may also want to link here to works in progress. I'll do the cleanup, but I want some consensus and feedback first. —Maharba 18:12, 22 June 2011 (UTC)
 * Done
 * Not done
 * Trivial


 * I disagree in general, although the links at the top could instead be moved to works in progress, joke language list, or language list, that is, if they are beyond the idea of idea, simply. Those sections do not appear necessary. If done, move the link to another page. --Zzo38 03:32, 23 June 2011 (UTC)
 * Fair enough. I do think that this page does need some sort of cleanup, though. Do you think we should remove finished ideas (e.g. Home Row, Grocery List) from this page, then? By sorting the top links into appropriate sections, I mainly meant that they should be in the body of the page rather than immediately at the top. Also, do such trivial ideas as

A language that uses only the symbols ☺, ☻, and π.
 * belong here? This is why I suggested a section for trivial ideas. One other thought: signatures should be removed from this page, right? It makes it look like a talk page. —Maharba 03:56, 23 June 2011 (UTC)
 * Honestly I'd just remove all the crap. I argue for keeping terrible languages because they don't really clutter anything but categories and the language list, but nobody will ever want to read this page as-is. For a start I'd remove every idea that someone has replied to pointing out it's already been done. —ehird 07:08, 23 June 2011 (UTC)
 * I do want some sort of categories, though. How about ones based on the content rather than status of the esolang. Maybe
 * Looks Like (for ideas like Braille, Grocery List, Menu, Geek Code)
 * Derivative (for ideas based on other (not necessarily esoteric) languages)
 * Silly (for ideas that are meant as jokes)
 * General Ideas (for everything else)
 * What do people think? —Maharba 17:33, 23 June 2011 (UTC)
 * I agree Maharba there can be categories based on content. However you need to refine that a bit more. No need to remove signatures, but no need to add them either if they are not already there. I do agree to remove sufficiently finished ideas linked at the top from the page. If they are discussed here, instead move the text describing them to a new section of the page. If something has already been done, note that there might be slight variants and even if someone has pointed it out, it might not necessarily be what the original poster had in mind. --Zzo38 16:02, 24 June 2011 (UTC)
 * Whether it is what they had in mind or not, the fact is that we need to keep the page up to standards (this means removing signatures, which do not belong on an article page) and not bloated to unreadability. The current page is neither. As a compromise, how about an archive page with all ideas that seem to already exist, or were removed for being incredibly trivial or duplicates, etc.? —ehird 20:53, 24 June 2011 (UTC)
 * Yes such an archive page should work OK. Also I agree that the formatting is not so good, the formatting could certainly be corrected (mostly paragraph spacing and indentation) --Zzo38 07:12, 25 June 2011 (UTC)

(outdent)
 * Is an archive page really necessary? (I'm not saying it isn't, but why?) If someone really wanted to look at crummy ideas, they could use page history. If one is needed, should it just be a verbatim copy of this page (and this page would then get cleaned up), or would the archive be only the ideas removed from this page? Zzo38, how would you suggest refining the categories? —Maharba 20:56, 25 June 2011 (UTC)
 * I do not mean archiving as it is. What I mean is reformatting it. If this page is clean up then the archive would just be the same kind of formatting of the new page but using the text of the items that are removed (only). The categories you have listed are probably sensible although they could be refined a bit. You do not have to worry about it a lot, since they aren't MediaWiki categories so you can just put them in different sections on the page and then they can be refined over time if it is deemed to be necessary by anyone that can do so. (However, this is just my suggestion) --Zzo38 21:24, 25 June 2011 (UTC)
 * Sounds good. Since (almost) no one will actually bother to look at the archive, we can make reformatting the main list the priority. I'll create a new page List of ideas/Archive with all the content of List of ideas, then clean up/categorize List of ideas. —Maharba 21:42, 25 June 2011 (UTC)

Alright. I've done most of the cleanup (currently working on alphabetizing) and so it's probably time to clean up the archive, though I don't think I'll bother reformatting that. Any comments, complaints, suggestions about the cleanup? —Maharba 04:40, 16 July 2011 (UTC)


 * Maybe "General" should be called "Miscellaneous". Also there are many things in "General" it might be possible to divide into more classifications (for example, some describe features of a programming language, while a few of them instead describe things that would use these esolangs, some are "based on" things other than other programming language, some are parsing based, etc). Also, some of the things on "Silly Ideas" I do not think are as silly as others, and not all necessarily belong on the joke language list when completed, or can ever actually be completed anyways. The only ones that are for sure "Silly Ideas" absolutely would be: "Bugmaker", "Undefined Behavior", "Drawkcab", possibly even "Silly Emplosions" and the idea based on communism. The language that requires you to use functions not called etc is also probably silly idea. Some of them are possible for serious discussion (even if somewhat silly), including 'Pataprogramming, and paper and pencil programming, and some can be funny discussion too. --Zzo38 20:37, 16 July 2011 (UTC)


 * I think that if you want to add more divisions of General Ideas (I do think that is a better name than Miscellaneous), feel free. If you think that some ideas should be in different sections, please bring that up for specific cases here. —Maharba 02:56, 24 July 2011 (UTC)

Large sections
some sections too large. If they can't be divided with more precise classification, just arbitrary division to volume 1 and volume 2 etc. is needed. Tektur 09:24, 14 April 2012 (UTC)
 * The only section that I feel is too large is the catch-all "General ideas" section. Classification as imprecise as this is still more useful than arbitrary division into volumes for finding an idea Taneb 10:37, 14 April 2012 (UTC)
 * There needs to be general ideas volumes 1, 2 and 3 Tektur 17:41, 14 April 2012 (UTC)
 * I think it would be better to have a more nuanced classification scheme, instead of arbitrarily dividing the general ideas section up. Perhaps a second cleanup is in order, too. —ehird 18:16, 14 April 2012 (UTC)

Names and priorities
Those people whose main natural language is english, should give name suggestions for programming languages and other things listed, especially of those that they think should be top priority for their own page or implementation.

Also, we should have some kind of vote or other kind of opinion asking about the priorities.

If we had names, it would be easy to list, for example in this page, one's top 5 list.

Tektur (talk) 13:26, 1 June 2012 (UTC)

The sovjet Russia thingie.
I'm implementing this, it's just way too awesome to not have it implemented :)

Implementing
I'm planning on implementing something similar to the ballistics one soon, should I remove the idea or leave it there?
 * Leave it there. Add a comment and/or link once implemented, perhaps. --Zzo38 (talk) 04:50, 23 October 2012 (UTC)

link theory
There is a mathematical thingummy called a link, like a knot but with multiple loops, and these are quite distinct from braids. They are part of knot theory, which is why there isn't a wikipedia page entitled "link theory", but there is one for links. As they are part of knot theory, though, the fit under the description now there.4D enthusiast (talk) 21:18, 5 November 2012 (UTC)

An esolang idea: the Ordinal Language
Many esolangs continue to suffer under the oppression of today's straitjacketed mainstream languages with their limitations to poor fixed-width integers to represent data. The Ordinal Language frees the programmer from these arbitrary limitations, by introducing an "ordinal" type, which is a variable that stores the value of a transfinite ordinal. This variable can in theory take on the value of any ordinal, though in practice it's probably good enough to limit it to epsilon_0. This is the only type that is necessary in the program, as seen by the following observations: Thus, a single ordinal variable is sufficient to represent an arbitrary data structures, and therefore the ordinal data type is the only necessary data type in this language.
 * A finite number is by definition an ordinal, so a variable of type ordinal can easily represent integers.
 * If a variable's value is of the form w*a+b (where w stands for omega, the first transfinite ordinal, and a and b are finite integers), then for all positive values of b, w*a+b is distinct from w*b+a, by Cantor's rules of transfinite arithmetic. This means that values of the form w*a+b can be used to represent 2D vectors of integers.
 * Furthermore, ordinals of the form w^2*a + w*b + c can be used to represent 3D vectors of integers. In fact, for any given finite number n, we can construct a class of ordinals which can map to all possible n-dimensional vectors of integers, and so a single ordinal variable is sufficient to store integer vectors of arbitrary length.
 * Now, given any sequence of ordinals p_1, p_2, p_3, ..., by the definition of ordinals there exists a limit ordinal X such that X is greater than any of p_1, p_2, p_3, .... Therefore, X*p_1 + p_2 is a distinct ordinal from either p_1 or p_2, or indeed, any of the p_i's. So X*p_1 + p_2 is a way to represent a pair of ordinals (i.e., a 2D vector of ordinals). But if that is the case, then X^n*p_1 + X^(n-1)*p_2 + ... + X*p_{n-1} + p_n is a way to represent an array of n ordinals, and thus, a single ordinal variable can store ordinal vectors of arbitrary length.
 * This ability to uniquely store a pair of ordinals (as X*p_1 + p_2) also means that the same representation can be interpreted as a struct of two members -- because p_1 and p_2 are themselves ordinals, and therefore they can represent any of the above structures. By the same token, an array of n ordinals can also be interpreted as a struct of n fields, since each of the n ordinals can represent any of the preceding data types.
 * Now, since variables can have ordinal values, it makes sense to arrange the computer's memory such that memory locations have ordinal addresses. In traditional programming languages, a memory address is represented by a finite number, say a. In the Ordinal Language, you can have memory addresses of the form w+a, for example. These addresses are distinct from any finite address, so this allows us to implement distinct address spaces (for concurrent programming, say, or to implement an operating system with virtual memory). But since memory addresses are arbitrary ordinals, and ordinals can represent arbitrary structures as described above, this means that we can index memory by any arbitrary data type. This allows us to implement an associative array (hash table) with O(1) lookup for any data.

Furthermore, this language has nice closure properties: addition and multiplication are defined for any data -- just use ordinal addition. You can deference any data by indexing memory by the ordinal value of that data. It is also dynamically-typed, because all data can be represented by an ordinal, and thus a single ordinal value can hold an array, then assigned an integer, then assigned a hash table, then a struct, etc., without any problems at all. There will also never be any risk for numerical overflow, because, well, all values are ordinals, and by the definition of ordinals, any set of ordinals has a limit ordinal greater than all members of the set. But since this limit ordinal, being an ordinal, is representable in the language, and an ordinal is by definition the set containing all smaller ordinals, this means that all smaller ordinals below it can also be represented. Therefore, no matter what operation you perform, the result will be representable, and thus no overflow occurs.

But what about division and subtraction? Cantor's ordinal numbers do not support a closed division or subtraction operation. But don't worry, signed numbers can be implemented as a pair of ordinals X and Y (and we've already shown that pairs of ordinals are implementable as 2D vectors), where X is the sign (1 = positive, 2 = negative, say), and Y is the absolute value of the number. Thus it is possible to implement a well-defined, closed subtraction operation. (It will just not correspond directly with ordinal subtraction -- but that shouldn't be a major limitation in practical applications.) Similarly, fractional values can be represented by a 2D vector containing the numerator and denominator. Since both numerator and denominator are ordinals, which therefore can represent any of the foregoing data, this allows us to implement a closed division operation of arbitrary signed numbers.

The only major limitation is that real numbers cannot be fully represented, unless we support uncountable ordinals, but that is currently not feasible because it would require us to be able to represent sets of uncomputable ordinals as well (the ordinals from the Church-Kleene ordinal up to the first uncountable ordinal, w_1). But this is not a problem, since finite-precision floating point numbers are sufficient for all practical purposes, and they can be represented simply as an array of 3 elements: a sign bit, an exponent, and a mantissa. Such a floating-point type, of course, easily fits into a single ordinal variable, so floating-point arithmetic is not a problem.

In summary, Ordinal Language is a vastly simplified language (because there is only one data type: the ordinal) yet it is also just as expressive as a traditional language (in fact, more expressive, because it can directly represent, for example, the ordinals of the Goodstein sequences). It unifies all data under a single type, the ordinal, and has nice closure properties over operations on this type. It can be used to implement operating systems through the use of ordinal-indexed memory, as well as concurrent programs (using the same technique), and supports arrays, structs, hash tables, and even floating-point numbers. And it is extensible: although current technology limits the actual representable ordinals to the computable ordinals, it is anticipated that advances in technology will eventually allow us to implement the language past this class of ordinals, perhaps even reaching the first uncountable ordinal, which would have profound consequences in the research field of computability theory and the halting problem. ;-)

&mdash;24.85.177.92 07:11, 22 January 2013 (UTC)

New Category of Languages
Ok, this isn't about a new idea for an esolang, but rather a type of esolang I've seen but seems to go unreported. These would be languages based on the concept of esoteric data structures. The best example in the wiki might be Knight Shuffling Tower, which is essentially a poorly-implemented queue popping values into a wheel of single addresses. What other languages might there be in this category?


 * V (FMota) comes to mind. BTW if you're suggesting actually creating such a category, Esolang Talk:Categorization is the standard place for discussing that. --Ørjan (talk) 01:33, 10 January 2018 (UTC)