🖼🗣 : the emoji conlang, part 4

🖼🗣 is becoming quite the little language. In the first three parts, you saw the basic outline of how we can take the wide array of emoji characters available in Unicode and contort them into a hieroglyphic script for modern times. Now, we’ll take another step by looking into the many ways in which we can construct new words from the building blocks we’ve been given.

Derivation

First of all, we need to make a distinction between the two different types of combining we can do. Derivation is mostly a grammatical process; it turns nouns into verbs, for example. Almost all languages have at least some derivational processes, and they tend to fall into a few major categories. 🖼🗣 is no exception, so we’ll look at these now. Later, we’ll turn to compounding, where we take individual words and combine them to create something new.

All of the script’s derivations are suffixes. We’ve already met a few, but here’s a complete list. (Note that tense markers, the plural and singular markers, and others like those are considered inflectional, so they’re not listed here.)

  • 〰 – This sign converts a word into an adjective. Usually, it’s a “quality” adjective: a 🧒 (child) is young, so 🧒〰 means “young”.

  • ▪ – This sign forms diminutives. These are “small” forms of words (typically nouns or adjectives) that indicate a lesser degree or amount: 🏙 “city” becomes 🏙▪ “town”, and ❄ “cold” turns into ❄▪ “chilly”.

  • ◼ – This sign changes an adjective or verb into a noun representing something to do with them. So we might turn 🍴 “to eat” into 🍴◼ “meal”, because a meal is something you eat.

  • ⬛ – The opposite of ▪, this sign creates superlative or augmentative forms. Linguistically, those are two different things, but they both pertain to an increase of a quality. With adjectives, ⬛ forms a superlative: 💪 “strong” becomes 💪⬛ “strongest”; this is really an inflection rather than a derivation. When used on a noun, however, the connotation is slightly different: 🌧 “rain” can become 🌧⬛ “torrent, flood”.

  • 🔻 – This marks a negative or inverse connotation. Usually, there’s already another word available, but using this suffix means you’re focusing on what something is not. An example might be 👍 “good” becoming 👍🔻 “not good”. It’s not quite the same as 👎 “bad”, but it’s close.

  • 🔺 – This is the counterpart to 🔻. It marks a positive connotation, which you may think has little use, but it can also function as an intensifier, a bit like “definitely” or (in colloquial speech) “literally” in English.

  • ➡ – As we have seen in previous parts, this forms verbs from other words. No examples needed here, because you should already get the gist.

These are the main derivations in 🖼🗣. Others do exist, but they have more specialized meanings, and they’re probably better analyzed as compounds, which we’ll get to right now.

Compounding

Most vocabulary in the script is formed by compounding. This process, much more general (yet also a bit more idiosyncratic) than derivation, allows us to express essentially any concept through a combination of 🖼🗣 symbols. The rules are a little involved, so pay close attention.

General compounding rules
  1. Any lexical symbol can be used in a compound. Those with a purely grammatical function (such as the derivational affixes above) aren’t allowed, except in very specific circumstances. (These form what’s called a closed class of words, and they don’t really concern us here.)

  2. The minimum number of symbols is 2, but the only upper limit is imagination. Realistically, however, most compounds will have at most 4 symbols.

  3. One element of the compound is the head, while the rest are considered modifiers. (Linguists note that the head element isn’t necessarily the semantic head, but it usually is.)

  4. The head determines the part of speech of the compound. Thus, compounds with heads that are nouns will be nouns themselves.

  5. Verb compounds are head-initial, while all others are head-final.

Noun-noun compounds

Compounds of multiple nouns are probably the easiest to understand. Almost all of them tend to denote specificity. In other words, the modifiers define a specific type of the noun represented by the head. We’ve already seen 🐕🏠 “doghouse”, for instance, but here are a few more:

  • 🐦🛁, “birdbath”
  • 🚲🛣, “bike path”
  • ✋🔫, “handgun”
  • 📰📄, “newspaper”

Simple enough, right? These are mostly English-oriented, but the same principles are common across many languages.

Adjective-noun compounds

These are almost the same as the noun-noun compounds above, but the modifier is an adjective instead:

  • 💨🛣, “fast lane”
  • ♨🛁, “hot tub”
  • 🤓☎, “smartphone”

Again, there’s not much to it.

Adjective-headed compounds

When an adjective is the head, the modifiers shift the base meaning toward their own. It’s a little hard to explain in prose, so we’ll try a few examples instead:

  • 🌹🔴, “rose red”
  • 🏛👴, “ancient”
  • 👿🖤, “devilish”

Unlike nominal compounds, these are often less transparent, but that’s okay.

Verb-headed compounds

Verbal compounds are the hardest. For one thing, they’re “inverted”, with the head coming first. For another, pinning down their meaning isn’t easy. In general, more active verbs tend to form compounds whose meanings are related to the head, while “static” verbs function a lot more like adjectives.

  • 🏃💨, “sprint”
  • 🤝💬, “introduce”
  • 👐🆓, “donate”

Moving on

Part 5 of this series will be a chance to pause and take stock. Instead of grammar and word-building, I’ll provide a lot more vocabulary, roots and compounds alike. I hope to see you then!

🖼🗣 : the emoji conlang, part 3

As we have seen, 🖼🗣 is perfectly capable of writing simple sentences using nothing but emoji along with standard English punctuation. In this post, we’ll delve a little deeper into the script, focusing first on verbs.

Preliminaries

Before we get started, let’s add in a few more simple words. All of these are verbs that represent actions, and I’ve tried to choose those best suited to “dynamic” phrasing.

  • 🛬 – to come
  • 💃 – to dance
  • ✈ – to fly
  • 🛫 – to go
  • 👊 – to hit
  • 🤗 – to hug
  • 😆 – to laugh
  • ⛹ – to play
  • 🏃 – to run
  • 💺 – to sit
  • 🏊 – to swim
  • 💼 – to work
  • ✍ – to write
  • 🔥➡ – to burn
  • 🚗➡ – to drive
  • 💕➡ – to love

Of course, most nouns can be “verbalized” by adding the ➡ suffix. In most cases, the resulting word can be interpreted in one of two ways. It’s either an action that uses the root noun (e.g., you drive a car), or one that is caused by the root (fire burns).

Adjectives can also take ➡, but their meaning is a lot simpler. Most of the time, the verb created is one that represents being in a specific state. Thus, 😃➡ translates as “to be happy”. Those are far more regular than verbs derived from nouns, but not nearly as flashy, so we don’t really need a list yet.

The usual suspects

🖼🗣 verbs express actions. As in English, they can also express when an action occurs. In other words, verbs have tense.

You’re probably expecting a table showing the different tenses in the script, because that’s what most language-learning texts offer right about now. But hold on just a minute. This is a little different. We don’t just have a simple three-way distinction, because 🖼🗣 combines tense and the linguistic notion of aspect into a single marker. So let’s slow down and take these things one at a time, since they can trip you up if you’re not careful.

First off, the present tense is simply the lack of any other marker. It’s the default. (Linguists can argue the point that non-finite verbs are also unmarked, but we’ll ignore them.) Also, the present tense here is best interpreted as the “imperfective” or “progressive” kind. That’s more in line with typical English speech, which is what 🖼🗣 tries to follow. Thus, a phrase like ♂ ✍ should read as “he is writing” rather than “he writes”. Obviously, that’s not set in stone, but it’s a good rule of thumb.

Next up, we have your basic past and future tenses. These are ◀ and ▶, respectively, and it’s not hard to get the symbolism. As opposed to the present, you can assume both of these are “perfective” by default: ♂ ✍◀ “he wrote”, ♂ ✍▶ “he will write”.

Here’s where it gets tricky. If you’re familiar with both English and Romance languages such as French or Spanish, you’ll also know the perfect tenses. They’re the “have” forms of an English verb, or the separate conjugations in Latin, or however you like to look at them. They’re hard to explain without resorting to linguistic nastiness, so I’ll keep it simple. A verb in a perfect tense refers to an action that took place before the time it’s talking about. It talks about something that, from the point of view of the verb, has already finished.

For 🖼🗣, we’ve got a trio of perfect markers. Each simple tense has a corresponding perfect form, and they look similar enough to the basics that you can almost imagine they fit. ⏯ marks the present perfect (“he has written”), ⏮ the past perfect (“he had written”), and ⏭ the future perfect (“he will have written”).

Last are two linguistic aspects that English doesn’t mark in a simple way. Other languages do, however, and two emoji perfectly fit the bill for them. Rather than use the technical terms, I’ll describe them more informally. ⏺ marks an action that is beginning (“he is starting to write”), while ⏹ says that an action is ending (“he isn’t writing anymore”). As you can see, these aren’t easy to translate, but the concepts aren’t too hard to grasp.

Combining the tense and aspect markers works just fine. You can use one of each, and the order doesn’t matter. Add in the adverb 🚫 “not”, and you can express some fairly complex ideas in just a few symbols. 🤳 🚫 ✍⏭⏹ “I will not have stopped writing”. Wow.

Back to pronouns

About that last example, though. You’ll notice I used 🤳 as the first-person pronoun. Last time, as you may recall, I mentioned that this is an acceptable substitute, and now it’s time to explain why.

Any 🖼🗣 pronoun can take 🤳 as a suffix meaning “-self”. (Get it? Because it’s a selfie.) Most of the time, you’d use this as the object of a phrase: ♀ 👀 ♀🤳 “she sees herself”. But that’s a little repetitive, so there are other ways. Placing this “reflexive” pronoun as the subject lets you say the same thing in a more concise way: ♀🤳 👀.

So far, so good. But the other meaning for 🤳 is as an “intensifier”. Those of you who know Spanish may recall that subject pronouns are optional in that language. Indeed, using them regularly is one of the hallmarks of beginner speakers. But when they do appear, it’s usually to indicate emphasis. In effect, they say that I’m doing this, not somebody else.

While our emoji script doesn’t allow omitting most pronouns, the emphatic use of 🤳 works just fine. And that’s our loophole to let us use 🤳 as an acceptable alternative to 👁️‍🗨. Language geeks rejoice.

We’ve also got a few other pronouns to cover before we go. These are the indefinite sort, and they’re all formed as compounds using 🔳 “some”. Thus, you have the following:

  • 🔳◻ – something
  • 🔳👤 – someone/somebody
  • 🔳📍 – somewhere
  • 🔳⌛ – sometime
  • 🔳〰◼ – somehow

Moving forward

So that about wraps it up for this one. Next time around, I promise we’ll get more into making actual sentences. We’ll also go a little deeper into what makes up words, including some of the more regular compounding constructions. 👀▶ 💮 🔜!

🖼🗣 : the emoji conlang, part 2

In the previous article, I showed that it is possible to create a kind of modern-day hieroglyphic script using the ~1200 emoji characters available in Unicode. Now, let’s expand on that.

Rather than go through a formal grammar, we’ll work our way up from a few simple phrases and sentences, much in the same way as a student learning a new language. 🖼🗣 is, after all, a bit like it’s own language.

Preliminaries

First off, let’s define a few very simple words. These are all “content” words, as you’ll see; grammatical particles (what few we truly need in 🖼🗣) can come later.

  • 👨 – man
  • 👩 – woman
  • 👤 – person
  • 🧒 – child
  • 🐕 – dog
  • 🐈 – cat
  • 👁 – eye
  • 👄 – mouth
  • ✋ – hand
  • 👣 – foot
  • 🍴 – to eat
  • 🥤➡ – to drink
  • 👀 – to see
  • 👂➡ – to hear
  • 🧠➡ – to know
  • 🚶 – to walk
  • 💧 – water
  • 🌬 – air
  • 🔥 – fire
  • 🌐 – earth
  • 🌞 – sun
  • 🌝 – moon
  • ⛅ – sky
  • 🔴 – red
  • 💚 – green
  • 🔷 – blue
  • ◻🌈 – white
  • ◼🌈 – black
  • ♨ – hot
  • ❄ – cold
  • 😃 – happy
  • 😢 – sad
  • 💪 – strong
  • ⬜ – big
  • 🧠〰 – smart

For most of these, the meanings should be fairly obvious. Some, however, are compounds. As an example, the color terms for white and black, ◻🌈 and ◼🌈, combine their first glyphs (ordinarily simple nominal particles) with 🌈, a regular derivation that makes color terms. Similarly, the numerous verbs with ➡ are derived from nouns; the second symbol here acts as a verbalizing suffix. And for adjectives, you can often use 〰, as we did with “smart”: 🧠〰.

Simplicity

The simplest sentences are those with nothing more than a subject, verb, and object. And, to make things even simpler, we’ll start with the most basic verb of all: “to be”. In 🖼🗣, that’s 👉. No need to worry about agreement suffixes or anything like that, though. For our purposes here, 👉 is all we need. (We’ll get to tenses in a later part.)

Here are a few examples to show what I mean:

  • 🧒 👉 😃. – The child is happy.
  • 👩 👉 🧠〰. – The woman is smart.
  • 👨 👉 💪. – The man is strong.
  • 🔥 👉 ♨ – Fire is hot.

Note that we don’t need any special word for “the”, either. It’s understood. (If you really think you need it, you can use 👇, though its meaning is closer to “this”.)

Our other verbs aren’t quite as easy to work with, but we can manage. The principle’s the same, after all:

  • 🧒 👀 🐕. – The child sees a dog.
  • 👨➿ 🚶. – The men are walking.
  • 🐈 🥤➡ 💧. – The cat drinks water.

Once again, don’t worry about the difference between English simple and progressive forms. 🖼🗣 doesn’t bother distinguishing the two.

You, me, and all the rest

Today, everybody’s worried about pronouns. Well, I’ve got you covered there, because 🖼🗣 has plenty of them.

Most languages make a distinction between persons: first, second, and third. To some extent, that’s what we’ll do here, but modern communication, especially on the Internet, is more geared towards a distinction between speaker, audience, and others. (Technically, that’s all the three degrees of person represent, but bear with me.)

A speaker’s solo pronoun is 👁️‍🗨. If they’re including others (whether inside or outside their audience), then this becomes 🤲. These are like “I” and “we”, respectively:

  • 👁️‍🗨 👉 🧠〰. – I am smart.
  • 🤲 👉 😃. – We’re happy.
  • 👁️‍🗨️ 👀 🔷 ⛅ – I see the blue sky.

(Important note: Some systems are not able to display or input the “compound” emoji 👁️‍🗨️. If yours is one of them, don’t despair. You can use 🤳 instead. It doesn’t mean exactly the same thing, as we’ll see in the next part, but it’s close enough.)

But here’s where it gets interesting. If you’re only speaking of yourself, there’s really no reason to need that cumbersome pronoun. It’s implied, because you’re the one talking. So that first sentence can become “👉 🧠〰.” instead, and it’ll mean the same thing.

Only the singular speaker pronoun can be dropped like this, which is far different from most spoken languages which allow such things.

The listener pronouns are much simpler. In fact, they’re not even pronouns at all, because there’s only one of them: 💮. Example:

  • 👁️‍🗨️️ 👀 💮. – I see you.

As with English “you”, this works for both singular and plural.

Last are what most languages call the third-person pronouns. Here, 🖼🗣 has a wide variety to choose from, so let’s take a look.

  • For talking about people in general: singular 👤, plural 👥
  • For talking about anything not human: singular ◻, plural ◻◻
  • For talking about only men: singular ♂, plural 👥♂
  • For talking about only women: singular ♀, plural 👥♀

Mostly, the first two pairs should be preferred, and the “general” form is required when you’re referring to mixed groups. And, of course, using the “non-human” pronouns when you want to talk about people is just wrong.

Some examples using these pronouns:

  • 👥 👉 😃. – They are happy.
  • ♂ 👉 ⬜ 👨. – He is a big man.
  • 👀 ◻. – I see it.
  • 👥♀ 👂➡ 💮. – They (i.e., those women) can hear you.

Possessed

Last in this little lesson, we’ll discuss the possessive form. As with many parts of 🖼🗣, that’s a little different from what you might expect. In fact, it’s one of the few cases where the script recycles English punctuation.

Our key here is the apostrophe, or single quote mark: ‘. When put between two nouns (pronouns included), it indicates that the first possesses the second. So we might say 🧒’🐈 for “the child’s cat” or ♂’✋ for “his hand”.

These aren’t exactly compound nouns, but they can function much like them, fitting into sentences with ease.

  • 👁️‍🗨️’👁 👉 🔷. – My eyes are blue.
  • ♀’🧒➿ 👉 😃. – Her children are happy.
  • 👀 ⬜ 👨’🐕➿. – I see the man’s big dogs.

In the last example above, you can see a difference between the script and English, as far as word order is concerned. The possessive “attaches” to the head noun, even if there are modifying adjectives before it.

Also, you can “chain” possessives, as in ♂’🧒’👁➿ “his child’s eyes”.

Moving forward

Now that you’ve seen a little bit more of this experiment, does it still seem so outlandish? Stay tuned, as this series will delve even deeper into the weird world of emoji, and the strange things we can accomplish when our language is allowed to use nothing else. 👀▶ 💮 🔜!

🖼🗣 : the emoji conlang, part 1

I talked about this a while back, but now it’s for real. Today, I introduce to you a new conlang: 🖼🗣. Or, to put the name in something pronounceable, Pictalk. Yes, the glyphs making up the name are emoji. Yes, so are all the characters used in the entire language.

Strictly speaking, Pictalk isn’t a full-fledged conlang. It’s written-only, first of all. There is no true spoken form. Instead, it should be considered something closer to a conscript, an artificial writing system, modeled after hieroglyphic and ideographic scripts. But that’s enough to encode ideas, thoughts, sayings, and anything that might need to be written in this modern, digital age.

Glyph inventory

The hardest part about making Pictalk is the very restricted set of available glyphs. True, there are over 1200 emoji characters available, and they cover a wide variety of concepts, from animals to emotions to transportation and more. But I don’t have control over which symbols the Unicode Consortium adds to the list. While that list will grow (they add more each year, it seems), there’s little rhyme or reason to which new characters come in.

But that’s okay. We can do this. English only needs 26 letters, right?

Even with the wide array we have, it’s safe to discard quite a few right off the bat. First, I’ll drop the “cat face” group, such as 😸, because they really only repeat the normal human smileys. Next, toss out the handful of CJK ideographs in circles or squares, like 🈹—I’m an English speaker, and even Unicode gives up on giving them reasonable names. The skin tone modifiers (🏻 and friends) don’t make sense in the context of language; Pictalk thus won’t give them meanings, but will allow them to modify other symbols as a kind of synonym.

Likewise (and here’s where we start getting into the grammar bits), gendered forms like 👩‍🏫 or 👨‍⚕️ are synonymous with their “base” forms. With many languages, particularly in the West, where there is no neuter form, masculine is considered the default. Pictalk, however, is gender-neutral. That’s not out of some misguided idea of social justice or diversity, but simple expedience. Unicode has neuter forms for most of what we might call agentive glyphs. Where it doesn’t, we can use either, and that’s fine.

Last, flags. These take up a good chunk of the emoji list (about 15%, all told), and they’re mostly country flags. Well, for Pictalk, those flags represent their countries, and that’s that. Unlike most other characters, they don’t really participate in the construction processes we’ll see later on.

Non-emoji characters

Before we get to that, let’s go over the rest of Unicode. Obviously, since the whole point of Pictalk is to create a hieroglyphic script using the emoji characters, they’re the focus. But we’ve got a few other options available. One I won’t use is Latin letters. Or, for that matter, any other alphabetic script. In earlier versions of the language, I did utilize them for derivation and some small grammatical particles, but I’ve since removed the need for them. Only proper names use alphabetic characters; these are written as they would be in either the speaker’s or the audience’s preferred language.

Numbers, on the other hand, are perfectly usable. They’re already a little bit ideographic, after all, so it wouldn’t destroy the purity of Pictalk to include them. So 0-9 work exactly as they would in English: as the numerals zero through nine. And you can build on that as you do in English. (Pictalk is base-10, by the way.)

Punctuation works the same, as it’s very difficult to design a conlang that doesn’t need it. So sentences can end with a period, question mark, or exclamation point. Quote marks work for, well, quotes. Commas aren’t as necessary, but you can still use them to mark off clauses. Colons, besides having their normal English function, are used as attention-getters, in a sense, following the intended recipient of a statement or question. And we’ll see the other “special” characters as they come up.

Building words

Quite a few emoji work as words by themselves. Think of 🐕, 😄, or ✈, for instance. In Pictalk, that’s the most basic sort of word, and most symbols can function alone. Some are considered nouns, others adjectives or verbs, but there’s always a way to convert them.

Other symbols are “bound”, in that they can only occur fixed to others. An example here would be the (optional) plural marker ➿. By itself, it has no meaning. Suffixed to a root, whether a single symbol or a string of them, it gains meaning: 🐕➿ “dogs”.

More complex are the compound symbols that make up the bulk of the lexicon. In general, nominal compounds are head-final, as in 🐕🏠 “doghouse”, while verbal compounds are often head-initial, as with 📖🏫 “study”, from 📖 “read”. I’ve tried to refrain from being cute with meanings, striving instead for transparency, but some compounds remain idiosyncratic in meaning.

Last, a form of word-building that English doesn’t often employ comes into its own in Pictalk. Reduplication is productive for many basic words. For nouns, it can create a kind of collective sense: 🏠🏠 “neighborhood”. Verbs instead use reduplication as an intensifier: 💭💭 “to contemplate” (or possibly “to overthink”).

Moving on

All in all, I think this just might work. We can make words using only emoji characters. Next up, we’ll see how far we can go in making a language.

A mad experiment

Today, most of the world uses alphabetic scripts, or something fairly close to them. With the major exception of Chinese (and the writing systems derived from it, such as those in Japan and Korea), alphabets, consonantal scripts, and the like reign supreme. They’re easier to learn, obviously, and far more suited to computers, so it’s only natural. Simple scripts, in the vast majority of cases, work just fine, so that’s what we use.

But it wasn’t always this way.

If you look back at the history of writing, you see that alphabets were not the original form of script. Indeed, assuming current theories are correct, writing developed first as pictorial representations of people, animals, etc. Abstractions came in later, as did the practice of using glyphs to represent spoken language, rather than as something closer to an aide mémoire.

The oldest evidence of writing we have all points in the same direction. Egyptian hieroglyphs, Sumerian cuneiform, and ancient Chinese symbols share the common feature of being, at least in some part, logographic scripts. The same may be true of other, mostly undeciphered writing, such as the Proto-Elamite script of that of the Indus Valley—given their age, it doesn’t seem out of the realm of possibility. While China kept its style of writing through the millennia, occasionally simplifying but never throwing away, the rest have mostly died out, replaced by Latin, Greek, Cyrillic, Arabic, the various scripts of India and Southeast Asia, and so on.

Enter madness

But wait. Anyone with a cellphone (which is to say, well, anybody) has at their disposal a vast and growing collection of bona fide ideograms: emoji. Can we use those as the basis for a modern-day hieroglyphic script?

I know what you’re thinking. “Michael, you’ve gone completely crazy!” you probably shouted at your computer screen.

You’d be right, but hear me out. I am being totally serious. Think about it. As of 2018, there are over 1000 emoji symbols in the Unicode standard, and they’re adding more with every update. Granted, most of the new ones are gender-specific versions of older ones, but you still see a genuine emoji every now and then. (“Lobster” was in the newest batch, I think.)

Most emoji fall into one of two categories. One is clearly nominal in nature: animals, vehicles, people, and so on. The other is the emotional set: grinning faces, smilies, and the like. Those can be considered adjectives, if you look at it the right way. Verbs, now, those are harder, but not impossible.

So here’s what I propose. Take the emoji, minus a few that aren’t really all that useful to English speakers (think the “cat faces”, or the numerous symbols containing Japanese writing), and construct a script. Or, if you will, a written-only conlang. Technically speaking, it would be something more akin to a pidgin. It would have no vocabulary of its own, and the grammar would necessarily be very stripped-down.

The limitations are severe, but operating under limiting conditions is the time-honored path of the hacker (in the original sense of the word). Here, we have no control over the inventory of symbols, no convenient way of even typing them, much less pronouncing them. And there’s no real payoff, either. If I did this, it would be for fun, not for glory.

Yet none of that ever stopped me before, so why should it now?

If you’re interested, stick around. I’ll post something more about this mad scheme in the coming weeks.

The problem with emoji

Emoji are everywhere these days. Those little icons like 📱 and 😁 show up on our phones, in our browsers, even on TV. In a way, they’re great. They give us a concise way to express some fairly deep concepts. Emotions are hard to sum up in words. “I’m crying tears of joy” is so much longer than 😂, especially if you’re limited to 140 characters of text.

From the programmer’s point of view, however, emoji can rightfully be considered a pox on our house. This is for a few reasons, so let’s look at each of them in turn. In general, these are in order from the most important and problematic to the least.

  1. Emoji are Unicode characters. Yes, you can treat them as text if you’re using them, but we programmers have to make a special effort to properly support Unicode. Sure, some languages say they do it automatically, but deeper investigation shows the hollowness of such statements. Plain ASCII doesn’t even have room for all the accented letters used by the Latin alphabet, so we need Unicode, but that doesn’t mean it’s easy to work with.

  2. Emoji are on a higher plane. The Unicode character set is divided into planes. The first 65,536 code points are the Basic Multilingual Plane (BMP), running from 0x0000 to 0xFFFF. Each further plane is considered supplemental, and many emoji fall in the second plane, with code points around 0x1F000. At first glance, the only problem seems to be an additional byte required to represent each emoji, but…

  3. UCS-2 sucks. UCS-2 is the fixed-width predecessor to UTF-16. It’s obsolete precisely because it can’t handle higher planes, but we still haven’t rid ourselves of it. JavaScript, among others, essentially uses UCS-2 strings, and this is a very bad thing for emoji. They have to be encoded as a surrogate pair, using two otherwise-invalid code points in the BMP. It breaks finding the length of a string. It breaks string indexing. It even breaks simple parsing, because…

  4. Regular expressions can’t handle emoji. At least in present-day JavaScript, they can’t. And that’s the most used language on the web. It’s the front-end language of the here and now. But the JS regex works in UCS-2, which means it doesn’t understand higher-plane characters. (This is getting fixed, and there are libraries out there to help mitigate the problem, but we’re still not to the point where we can count on full support.)

  5. Emoji are hard to type. This applies mostly to desktops. Yeah, people still use those, myself included. For us, typing emoji is a complicated process. Worse, it doesn’t work everywhere. I’m on Linux, and my graphical applications are split between those using GTK+ and those using Qt. The GTK+ ones allow me to type any Unicode character by pressing Ctrl+Shift+U and then the hexadecimal code point. For example, 😂 has code point 0x1F602, so I typed Ctrl+Shift+U, then 1f602, then a space to actually insert the character. Qt-based apps, on the other hand, don’t let me do this; in an impressive display of finger-pointing, Qt, KDE, and X all put the responsibility for Unicode handling on each other.

So, yeah, emoji are a great invention for communication. But, speaking as a programmer, I can’t stand working with them. Maybe that’ll change one day. We’ll have to wait and see.