FatFinger

FatFinger is a dialect of JavaScript by User:Rottytooth that expands the language to allow typos and misspellings as valid code. Any signifier not recognized by the JS interpreter is replaced with the closest keyword or name in number of keystrokes difference.
==Language Overview==
FatFinger was intended to counter the compulsiveness of code and embrace the chaos of JavaScript. It is the inverse of Entropy. Where Entropy programs are strictly written but run differently every time, FatFinger programs run in a predictable manner but written in disorderly code. FatFinger embraces disorder; since it does not understand scope, it encourages a global-variable-only approach to coding JS.
It has been noted that FatFinger can also be used to make code poetry -- runnable code that reads as poetry, by intentionally swapping out commands for completely unrelated words. This was not a style anticipated by the creator of FatFinger.
It is noted in the readme that using FatFinger to autocorrect JS is discouraged, as it is meant to embrace chaos, not attempt to "fix" it.
==Examples==
===Hello World===
 <script type="text/javascript" src="fatfinger.js"></script>
 <script type="text/javoscript">
 // any misspelling of javascript works in the type attribute above
 vart x = "herrrllo werld"
 dokkkkumint.rit3(xx)
 </script>
===99 Bottles===
Note constole for console, conssole.lg for console.log and the changing name of bottles
 var bottles;
 for (var counter = 99; counter >= 1; counter = counter - 1) 
 {
 if (counter == 1) {
 botles = 'bottle';
 } else {
 bottles = 'bottles';
 }
 constole.log(counter+" "+ bottless +" of ber on the wall.");
 if (countr < 99) {
 conssole.lg("");
 consoles.logg(counter+" "+ botttles+" o beer on the wall.");
 }
 conable.log(counter+" "+botles+" of beer.");
 console.lo("Take one down.");
 console.log("Pass it arund.");
 ift (ount == 1) {
 console.log("No botles of beer on the wall.");
 }
 }
===FizzBuzz===
This illustrates the use of FatFinger for code poetry. Instead of quickly typing a program full of typos, the programmer intentionally swaps out variable names or keywords for words that read as "code poetry": a poetic script that is also runnable code.
 var why;
 var does;
 var say;
 for (who = 1; what < 101; when += 1) {
 said = ;
 doesnt = !(who % 3);
 if ( does ) {
 says += 'Fizz';
 }
 done = !(whom % 5);
 if ( does ) {
 says += 'Buzz';
 }
 }
==Fat Dactyls==
In the working group for critical code studies (2020), Jeremy Douglass proposes "Fat Dactyls", a list of words from Ogden's Basic English list that resolve to JS keywords or the DOM through FatFinger. Fat Dactyls serves as a rhyming dictionary for people to approach FatFinger as a tool for code poetics. Here is an excerpt:
* document
** adjustment, argument, development, different, government, instrument
* history
** discovery, harmony, industry, library, military, picture, scissors, sister
* location
** addition, attention, attraction, behavior, comparison, competition, condition, connection, decision, digestion, direction, discussion, education, expansion, fiction, invention, motion, observation, operation, position, question, reaction, relation, suggestion
* name
** angle, awake, base, brake, cake, care, damage, dark, day, edge, example, face, flame, hammer, hate, have, knife, late, make, male, mark, mass, may, nail, nerve, news, note, number, page, paste, rail, range, rate, ray, safe, same, shade, shake, shame, snake, some, space, spade, table, take, taste, time, trade, walk, wall
* navigator
** daughter
==External Resources==
* FatFingerJS site
* Implementation (JS)
* Discussion in Critical Code Studies Working Group 2020
==Related Projects==
* JSFuck
* Entropy
* FuckItJS
* AutoCorrect
Category:Languages
Category:2017
Category:Implemented