πŸ’»πŸ’¬
October 15, 2015 8:05 AM   Subscribe

There are at least three emoji-based programming languages: πŸ€ (aka 4Lang; bubblesort example), Emojinal, and HeartForth (stack-based, for extra obscurity; factorial example).

Inspired by this comment from Strange Interlude.
posted by jedicus (28 comments total) 19 users marked this as a favorite
 
πŸ€ is an easy-to-use programming language made entirely of emojis.

πŸ€ aims to create a clear, understandable, and powerful programming language.

πŸ€ is for both beginner and expert programmers.

πŸ€ makes use of emojis to create a universally understandable syntax.


I think they're 0 for πŸ€ so far on those...
posted by OverlappingElvis at 8:08 AM on October 15, 2015 [3 favorites]


(Weird, the πŸ€ displays fine in comments but didn't work in the post. For the record, πŸ€ is the proper name of the language also known as 4Lang.)
posted by jedicus at 8:10 AM on October 15, 2015


I could see this taking off as a content creation / scripting language on iOS type devices. Like a Mario Paint meets Hypercard deal with your emoji keyboard hitting single symbols with your iPencil instead of typing out keywords.
posted by Space Coyote at 8:11 AM on October 15, 2015


πŸ’¬: πŸ‘‹πŸŒ
posted by boo_radley at 8:11 AM on October 15, 2015 [4 favorites]


So you named your emoji-based language after 4chan...
posted by mubba at 8:16 AM on October 15, 2015 [1 favorite]


Doesn't APL sort of count?
posted by destrius at 8:20 AM on October 15, 2015 [19 favorites]


DO NOT WANT TO NEED
posted by flabdablet at 8:25 AM on October 15, 2015 [1 favorite]


Some newer languages allow Unicode characters as legal identifiers. I've tested this with Clojure and Swift, at least, and I think it might work with Go as well. The stated purpose is to allow, say, Chinese characters for variable names, but a nice side benefit is that you can update your existing code to use emoji to make things clearer and easier to understand.
posted by vogon_poet at 8:43 AM on October 15, 2015 [1 favorite]


I shall repeat my comment from last week, and emphasize that languages that allow shit like this are too clever by half.
I nearly threw my monitor across the room when I realized that ? and ! are methods on a few of the classes that Akka uses, while trying to puzzle through what the hell actor ! f(operation) was supposed to do.
Nobody in their right mind names a function "!", particularly when it has nothing to do with negation.
posted by schmod at 8:50 AM on October 15, 2015


? and ! are methods on a few of the classes

Why? Why would anyone do this? This is poop-in-a-shopping-bag levels of perverse dickery.
posted by Mr. Bad Example at 8:58 AM on October 15, 2015 [5 favorites]


Emoji languages remind me of the shortcuts Commodore 64 BASIC used. Instead of PRINT one could type ?, and the interpreter would expand it to PRINT in memory.
posted by infinitewindow at 9:03 AM on October 15, 2015


use emoji to make things clearer and easier to understand

Uh.
posted by Steely-eyed Missile Man at 9:12 AM on October 15, 2015 [2 favorites]


Fork Brainf*ck, replace the operators with Emoji!
posted by eriko at 9:32 AM on October 15, 2015 [1 favorite]


So you named your emoji-based language after 4chan...,

It was created by 4chan users.
posted by save alive nothing that breatheth at 9:40 AM on October 15, 2015 [1 favorite]


"With this, I'll rid the world of infestation. Sans lingua franca, the world will be torn asunder, and then, it shall be free."
posted by Apocryphon at 9:53 AM on October 15, 2015


Those who don't study history will be forced to reinvent APL.
posted by bonehead at 11:22 AM on October 15, 2015 [2 favorites]


NOPE NOPE NOPE NOPE
posted by jeffamaphone at 12:09 PM on October 15, 2015


The 2014 MIT Mystery Hunt was themed around Alice in Wonderland, and one of the puzzles, Callooh Callay, World was some code in a language they made up, and to solve it, you had to figure out the language and run the code. The language was certainly Unicodey (though variable names were ASCII), however I guess it technically doesn't fit the criterion of this post, as it only uses things from the Miscellaneous Symbols, General Punctuation, and Mathematical Operators blocks of Unicode, and nothing from the Miscellaneous Symbols and Pictograms block which is what I usually think of as emoji.
posted by aubilenon at 12:39 PM on October 15, 2015 [1 favorite]


Oops, Wonderlang variables could be ASCII or chess pieces. Because why not
posted by aubilenon at 12:41 PM on October 15, 2015


A perfect use case for the emoji keyboard!
posted by ilikemefi at 2:25 PM on October 15, 2015 [1 favorite]


Why? Why would anyone do this? This is poop-in-a-shopping-bag levels of perverse dickery.

Those are NOTHING compared to the crimes against humanity that are the scalaz operators. (Or akka's remoting library decisions BUT THAT IS FOR ANOTHER TIME)

Akka only has those two, and they're shorthand for "send" and "ask". It's very up front in the documentation, you can't not learn those if you read it.

But scalaz has shit like |@|. WHAT DOES THAT DO? Can you google it? NO! Is it really documented anywhere findable? NO! I've figured it out like 5 times but I still couldn't tell you now.

I love scala, so long as you reign in people who get too clever with it, but for fuck's sake I hate scalaz with the fiery heat of a thousand dying suns. (why did you not mark NonEmptyList as serializable? WHY???)
posted by flaterik at 5:16 PM on October 15, 2015


But scalaz has shit like |@|. WHAT DOES THAT DO? Can you google it? NO! Is it really documented anywhere findable? NO! I've figured it out like 5 times but I still couldn't tell you now.

I don't use Scala, but people coding in ML (which Scala is based on) often like to declare new operators in their code. It does make the code hard to read sometimes, but I think its partly due to ML being commonly used for language analysis and transformation; you tend to need to call the same function again and again in a big pattern match, and its less verbose to use infix operators. And, if you do know what the operator does, then it can actually make it easier to read. It just looks like obtuse gibberish to everybody else.
posted by destrius at 7:28 PM on October 15, 2015


This is poop-in-a-shopping-bag levels of perverse dickery.

Didn't you mean πŸ’©πŸ‘œ ?
posted by lollusc at 8:13 PM on October 15, 2015 [2 favorites]


Well, for what it's worth Akka's ! operator was taken from Erlang, along with most of the rest of Akka. Scalaz, I assume, takes most of its cues from the ASCII APL variant J, which also resembles line noise. Here's quicksort in J: quicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#). But operator overloading isn't exactly new to Scala, as anyone who used C++ in the cout << "Hello, world!\n"; era will likely remember.

It's too bad that these languages don't give any indication of their semantics in the READMEs. Is 4 late-bound? Object-oriented and imperative? I actually do think emoji would be a good fit for the oddball 2d stack language Befunge.
posted by whir at 10:31 PM on October 15, 2015


It was created by 4chan users.

That explains everything.

We're being trolled.
posted by el io at 12:26 AM on October 16, 2015


To me the most entertaining part of all this is an excerpt from the HeartForth overview:

Advantages

* Extremely compact.
* Clean visual separation between program and data.
* Whitespace agnostic.
* Fully internationalized; no bias for English speakers.

Disadvantages

* None.

posted by sylvanshine at 11:06 PM on October 16, 2015 [2 favorites]




And, if you do know what the operator does, then it can actually make it easier to read

That is why I haven't gone on the warpath to remove the operators from our code base, but I DID go on the warpath to demand that any uses of them must be commented to describe what the shit is going on.
posted by flaterik at 6:27 PM on October 19, 2015


« Older Put it on the board....YES!   |   "You’re so sweet, Bonney. You’re too sweet." Newer »


This thread has been archived and is closed to new comments