On mountains

The mountain looms large in our imagination. We speak of summits and pinnacles and peaks as though anything could be compared to a mountain. We use them in logos (Paramount) and brands (Denali) to represent quality, immovability, toughness. Mountains have a majesty, and they always have. The Greek gods had their abode on Mount Olympus. Noah’s Ark is said to be on Mount Ararat. Frodo had to take the One Ring to Mount Doom.

That last, of course, is a purely literary creation. (Some would say the others are, too, but that’s not the point of this post.) And that naturally brings us to the question of how to use mountains in a story. What is so special about them? What makes them stand out in literature? Read on for my thoughts.

Reaching the peak

First, I think that a mountain, more than any other geographical feature, represents achievement. In a way, that’s because we often hear tales of mountain climbing, but those tales only came about because people saw mountains as things to be conquered. And that’s a relatively recent phenomenon. Only in the past few decades has it really become a major source of adventure.

But it’s perfect for that. Climbing a mountain can be a grueling, demanding task. For the tallest and most remote peaks, you need some serious training and preparation. The environment is inhospitable at best, deadly at worst. Just catching sight of the summit is an accomplishment. Reaching it is a true achievement, and the flanks of, for example, Everest are littered with stories of failure.

And really, when you think about it, there’s no reason to bother. The whole thing’s a fruitless pursuit, a pure adventure with no true payoff. Why do people climb Mount Everest? Because it’s there. That’s it. No other reason at all, but that it’s something to do, a visible goal we can strive towards.

In that, the mountain serves as the perfect metaphor. Even better, climbing quite naturally gives us a definite climax, as well as the perfect opportunity for a “false ending” where the presumed climax isn’t actually the conclusion of the story. After all, sometimes the hardest part is getting back down the mountain.

But back to the metaphor…well, metaphor. It really does have a lot of levels, but they all find their way back to that same inescapable conclusion: there’s a peak, and we have to reach it. If you’re a writer who can’t find a way to make that work, then you might be in the wrong line of work. You don’t even have to put a volcanic chasm at the top, as Tolkien did. Any mountain can evoke the same sense of accomplishment, of achieving one’s aims.

Scenery

Beyond that, mountains can also make for good scenery, even in written form. Visually, as you know, a jagged line or solitary, snow-capped peak can be downright stunning. Described well, they can make the same impact in a novel, too. But you have to go about it a different way.

In my opinion, mountains as scenery, as backdrop, work best when they’re integrated into the story, but not the primary focus. A mountain is rugged, remote, inaccessible. It’s not the kind of place that is often the center of attention. Thus, it can fade into the background while still casting a shadow over a setting.

Who knows what lurks out there? Mountains can be the abode of gods, monsters, or just backwoods hill folk. Whatever the case, we’re talking about beings who don’t normally visit the cities and towns. They’re wild, but a different sort of wild than the denizens of, say, a forest. Mountains, because of their harsh nature, imply a harder life. We have the stereotypical image of the “mountain man”, as well as legendary creatures such as the Yeti, and these both speak to the myth of the mountain.

All alone out here

Another thing that follows from the idea of mountains being remote is their isolation. They’re the perfect place to get away from it all. The taller ones are bleak, seemingly lifeless, while shorter peaks may be covered in trees, but they share that common bond. The mountain is a retreat.

Today, we might think of that in terms of ski lodges, campgrounds, or hiking trails, but there’s a deeper history here, one that plays into fantasy and other fiction. If you want to escape, you head to the hills, whatever your reason for escaping in the first place. Monasteries (or their fantasy equivalents) work well in the mountains, and what alpine story doesn’t have a secret hideaway somewhere up above the treeline? Nobody knows about these places for the very simple reason that they’re not meant to be found. So what better place to put them than the one nobody would think to look in?

Disaster

Finally, mountains are a great setting for disaster, whether natural or man-made. Obviously, volcanoes are exciting, dangerous spectacles. Avalanches are more sudden, but their aftermath can make for a good survival story. Flooding (possibly from melting snow) can provide a relatively slow, yet no less unstoppable, threat.

On the highest mountains, it’s the storm that is the biggest, most cinematic of disasters. The snowstorm that struck Mount Everest in May 1996, for instance, spawned the book Into Thin Air and the more recent movie Everest. Once the mountain gets tall enough where climbers need oxygen tanks, then that’s a consumable that can run dry at the exact wrong moment. Add in blinding blizzards, hurricane-force winds, deadly cold—you get the picture.

On the artificial side of the disaster aisle, you have the fantasy standby of the siege, especially when the defenders in their mountain fastness are heavily outnumbered; think the battle of the Wall in A Storm of Swords, although that, strictly speaking, wasn’t an actual mountain. Combined with the idea of a hidden society shut away behind the rocky faces, and you have a lot to play with.

Last on the list, in a strange twist, is what was actually the first mountain disaster movie I ever watched: Alive. The true story of the 1972 Andes plane crash is a gripping tale that needs no embellishment. Weeks of cold, of starvation and injury and general privation, ended in death for most, miraculous survival for a very few. The same story could be told on a deserted island or in the middle of the ocean (In the Heart of the Sea works for the latter), but the mountain setting of this disaster gives it a starkness that anywhere else in the world would lack. For beating the odds, it’s hard to beat the peaks.

First glance: Kotlin

In my quest to find a decent language that runs on the JVM (and can thus be used on Android without worrying about native compilation) while not being as painfully awful as Java itself, I’ve gone through a number of possibilities. Groovy was an old one that seems to have fallen by the wayside, and it’s one of those that always rubbed me the wrong way. A bit like Ruby in that regard, and I think that was the point. Scala was another contender, and I still think it’s a great language. It’s a nice blend of functional and object-oriented programming, a true multi-paradigm language in the vein of C++, and it has a lot of interesting features that make coding in it both easier and simply more fun than Java.

Alas, Scala support is sketchy at best, at least once you leave the world of desktops and servers. (Maybe things have picked up there in the past year and a half. I haven’t checked.) And while the language is great, it’s not without its flaws. Compilation is fairly slow, reminding me the “joys” (note sarcasm) of template-heavy C++ code. All in all, Scala is the language I wish I could use more often.

A new challenger

Enter Kotlin. It’s been around for a few years, but I’ve only recently given it a look, and I’m surprised by what I found. First and foremost, Kotlin is a language developed by JetBrains, the same ones who make IntelliJ IDEA (which, in turn, is the basis for Android Studio). It’s open source under the Apache license, so you don’t have to worry about them pulling the rug out from under you. Also, Android Studio has support for the language built in, and Google even has a few samples using it. That’s already a good start, I’d say.

At the link above, you can find all the usual hallmarks of a “modern” programming language. You’ve got docs, tutorials, lots of press-type stuff, commercial and free support, etc. In that, it’s no different from, say, Typescript. Maybe there’s a bit more emphasis on using IDEA instead of Eclipse or Netbeans, but that’s no big deal. All in all, it’s nothing special…until you dig into the language itself.

Pros

Kotlin’s main mission, essentially, is to make a better Java than Java. Maybe not in the wholesale sense like C#, but that’s the general vibe I get. Java interop is an important part of the documentation, and that’s a good thing, because there’s a lot of Java code out there. Some of it is even good. It’d be a shame to throw it all away just to use what’s undoubtedly a better language.

But let’s talk about why Kotlin is better than Java. (Hint: because it’s not Java.) It borrows heavily from Scala, and this is both intentional and promising. Like Scala, there’s a heavy pressure on the programmer to use the immutable val where possible, while reserving the mutable var for those situations where it’s needed. Personally, I’m not a fan of the “all constant, all the time” approach of e.g., Haskell or Erlang, but the “default constant” style that Kotlin takes from Scala is a happy medium, in my opinion.

In addition, Kotlin makes a major distinction between nullable and non-nullable types. For instance, your basic String type, which you’d normally use for, well, strings, can’t be assigned a value of null. It’s a compile-time error. (If you need a nullable type, you have to ask for it: String?.) Likewise, you have an assortment of “safe” syntax elements that check for null values. Compiler magic allows you to work with a nullable type without hassle, as long as the compiler can prove that you’ve checked for null. That only works with immutable values, another instance where the language guides you onto the “right” path.

Those two alone, nullability and mutability, are already enough to eliminate some of the most common Java programming mistakes, and Kotlin should be lauded for that alone. But it also brings a lot of nifty features, mostly in the form of syntactic sugar to cut down on Java’s verbosity. Lambdas are always nice, of course. Smart casts (the same compiler trick that lets you dispense with some null checks) are intriguing, and one of those things that makes you wonder why they weren’t already there. And then you have all the little things: destructuring assignments, ranges, enum classes, and so on.

All told, Kotlin is a worthy entry in the “what Java should be” competition. It fits the mold of the “modern” language, taking bits and pieces from everywhere. But it puts those pieces together in a polished package, and that’s what’s important. This isn’t something that involves arcane command-line incantations or a leaning tower of 57 different build systems to get working. If you use IDEA, then it’s already there. If not, it’s not hard to get. Compared to the torture of getting Scala to work on Android (never did manage it, by the way), Kotlin is a breeze.

Cons

Yet no language is perfect, and this is no exception. Mostly, what I find to be Kotlin’s disadvantages are minor annoyances, silly limitations, and questionable choices. Some of these, however, give rise to bigger issues.

The heavy emphasis on tracking nullability is worthwhile, but the documentation especially turns it into something akin to religious dogma. That gets in the way of some things, and it can make others cumbersome. For example, although the language has type inference, you have to be careful when you cast. The basic as cast operator doesn’t convert from nullable to non-nullable. That’s good in that you probably don’t want it to, but it does mean you sometimes have to write things in a roundabout way. (This is particularly the case when you’re taking data from Java code, where the null-checks are toned down.)

Interop, in fact, causes most of Kotlin’s problems. There’s no solving that, I suppose, short of dropping it altogether, but it is annoying. Generics, for instance, are just as confusing as ever, because they were bolted on after the JVM had gone through a few revisions, and they had to preserve backward compatibility.

Except for syntax choices, that’s my main complaint about Kotlin, and I recognize that there’s not a JVM language out there that can really fix it. Not if you want to work with legacy Java code, anyway. So let’s take a look at the syntax bits instead.

I can’t say I like the belt-and-suspenders need to have both classes and methods final by default. I get the thinking behind it, but it feels like the same kind of pedantry that causes me to dislike Java in the first place.

Operator overloading exists, after a fashion. It’s about as limited as Python’s, and one of the few cases where I wish Kotlin had swiped more from Scala. Sure, you can make certain methods into infix pseudo-operators, but that’s not really anything more than dropping a dot and a pair of parentheses. You’re not making your own power operator here.

The verdict

Really, I could go on, but I think you see the pattern. Kotlin has some good ideas, none of them really new or innovative by themselves, but all bringing a welcome bit of sanity to the Java world. The minor problems are just that: minor. In most cases, they’re a matter of personal opinion, and I’ll gladly admit that my opinion is in the minority when it comes to programming style.

On the whole, Kotlin is a good language. I don’t know if I’d call it great, but that’s largely because I don’t really know what would make a programming language great these days. I’m not even sure we need one that’s great. Just one that isn’t bad would be a start, if you ask me.

And that’s what we have here. If I get back into Android development in 2018, I’ll definitely be looking at Kotlin as my first choice in language. Anything is an improvement over Java, but this one’s the biggest improvement I’ve seen yet.

Languages of the Otherworld: Introduction

In this new year of 2018, I think my “Let’s Make a Language” series can be retired. Maybe it’ll come out of retirement at some point down the line—that’s all the rage these days, isn’t it?—but it’s at a good stopping point, in my opinion.

But that means I need something else to write about, something to do with constructed languages. Well, since I’ve been writing so much on my own fiction, and one of my main settings involves heavy use of conlangs, why not use that? So here we are. This is another one of my sporadic post series, and it will focus on the languages I have created for my Otherworld setting. So far, I’ve put out 8 short novels (or long novellas, if you prefer) over at my Patreon, with another 6 shorter novellas coming this year. All told, I have plans for a total of 50 stories in the “main” course of this setting, and the languages are a key element. They’re pretty much the reason I started Otherworld in the first place. (That, and because Stargate Universe got canceled. The one thing I can thank Comcast for, I guess?)

So here’s how this is going to work: I don’t know. Seriously. I’m just going to write, and we’ll see what happens. I do want to talk about the creation of languages in general, using my own as both inspiration and example. I want to show off a little, too, and I hope you don’t mind. Most of all, I want this to be a kind of “behind the scenes” set of posts, a producer’s commentary for one element of the Otherworld.

Lay of the land

For this introductory post, I won’t go into too much detail about the languages themselves. Instead, I’ll give a broad overview of my thought processes going into the creation of the Otherworld setting.

First off, when I started Otherworld back in 2013, I had a goal in mind: to create a believable world. I’m not opposed to the kind of generic fantasy that gives no thought to its own backstory, but my preference is verisimilitude. I like a “realistic” world, one that I can imagine myself visiting, living in.

Thus, when making the languages of Otherworld, I didn’t set out to create anything too outlandish. The core conceit of the setting is that the fictional world is inhabited by a parallel development of humans that branched off from the first inhabitants of the Americas at the end of the Ice Age. Given the time and distance differences separating them from our familiar Old World languages, I felt comfortable creating those of the Otherworld from scratch. Too little is known about the protolanguages of America to disprove me, but that also means I didn’t really have much to work with. No matter. I prefer the a priori approach.

Early on, one of my ideas was a multiracial world, though one where the races were superficially similar to those of fantasy literature. So I needed at least one language for each race, because we’re dealing with a pre-modern world that wouldn’t have the normalizing elements of TV, radio, and other mass media. To preserve my sanity, though, I’m only fully detailing the most prominent examples of each. I justify this in text by simple expediency: the protagonists are too far away from other examples. They’re placed in an area that sees members of other races, but doesn’t always recognize their internal differences. So they consider the “Arassea“, for instance, to have a single language, and they name that language after its only known speakers.

My main concession to bias, I suppose, would be the mild stereotyping I’ve done with some of these languages. The Fassea race, to take one example, inhabits islands and coastal regions, and I drew heavily on Polynesian grammar and phonology for them.

All told, Otherworld has nine living races, and thus nine main conlangs. The tenth belongs to the Altea, mythologized forebears that, I must admit, are heavily inspired by the legends of Atlantis. They were human, but highly advanced, and they were the ones who originally colonized (and, for that matter, terraformed) the Otherworld itself. The timing just barely works, based on current archaeological evidence and theories.

So that’s our jumping-off point. Next time, we’ll get to looking at “Virisai”, the common tongue of the main story area. It’s by far the most well-developed of the Otherworld set, so it’s only natural that it gets top billing. Later on, I’ll work the others in where possible.

PPC in 2018

So 2017 has been an eventful year, and that’s just for me. I’ve written more in this single year than in the rest of my life combined, and I’ve found that I love that feeling. I love being able to escape this world and enter those that I create. I love looking over at my bookshelf (or, more often, stack) and seeing my own name on a cover.

There is a problem, though. I want to write more fiction, more stories and novels and books. Yet I don’t want to forsake my posts here. That’s a conundrum, because the schedule I’ve set for myself in 2018 doesn’t leave a lot of room to give this site the attention it deserves. For this year, I cut my posts down from 3 a week to 8 a month, and many of those were simple release announcements. Next year, as much as I hate to do it, I think I’ll have to make further cuts on this side of things.

So here’s how I see it. First off, release announcements are staying. They have to, because this site is my Internet home. It’s where I want to show off my creations. And that does mean I’ll continue linking to Patreon and the Kindle store, but so be it. Also, November Novel Month isn’t going anywhere. That’s my public declaration of my own progress, my single concession to ego.

As for original content on here, though, I don’t see how I’ll have time for too much of it. There are still a few posts I want to do, like more entries in the “Future Past” alt-history series, or more coding posts, or even picking up that “RPG town” thing I did this time last year. However, these are going to be more sporadic than before. There may be months where I make only a single post, others where I throw up 5 or more. I can’t guarantee anything yet, except that the volume will be lower than before. I’m sorry for that, but until I can work through these stories in my head that so long to be released, that’s how it has to be.

Let’s make a language, part 28c: Entertainment (Ardari)

Ardari, as usual, prefers creating native terms rather than borrowing. We see this in jevikön “television”, literally a “far seeing thing”, a fairly straightforward loan translation. (German does the same thing.) This process also shows up on the word list below in allgarògh “football”.

With the other words, you can see a lot of the derivational processes at work. Some words, such as rògh “bell” and rhòma “horn”, are onomatopoeic. A few, including drakön and tylyankön, are agents. The word for “match”, as in a single playing of a game, is rejnyn, which more literally translates as “a thing that is played”.

The “native-first” approach of Ardari extends far beyond this small set, as well. In some cases, however, there are matched pairs. A speaker of Ardari might talk about a kompyutör, but another could instead refer to his dätyekön. Both words mean the same thing, but the first is obviously borrowed (it would be used in, for example, advertisements), while the second is native-born.

Word list

  • actor: drakön (from dra “theater”)
  • art: käpi
  • artist: käpikön
  • athlete: avilkön
  • ball: rògh
  • bell: dola
  • doll: nanyi
  • drum: nang
  • football (or soccer): allgarògh
  • game: bynèr
  • horn: rhòma
  • match (game): rejnyn
  • music: tylyan
  • musician: tylyankön
  • song: azalli
  • sport: bynèrölad
  • story: gard
  • television: jevikön (from je-ivit-kön “far-seeing-thing”)
  • to defeat: tòve-
  • to lose: gru-
  • to play: rej-
  • to sing: ajang-
  • to win: twè-
  • toy: bèb

Otherworld talk 8

And so it ends. Well, the first season, at least. I’ll be revisiting the Otherworld for some time to come. But today, in the aftermath of Long Road’s End, let’s see how far we’ve come, and maybe where we’ll be going.

Trajectories

Each of the 7 main characters of the story grew. They learned, they improved—or so they like to think. The experience of the Otherworld was life-changing in most cases. In a few, it was instead life-affirming, but the principle is the same. After eighty days of living in a different world, a different culture, each takes something away.

Amy was the first character we saw, all the way back in Chapter 1 of Out of the Past. She spent most of her first morning in the Otherworld hiding in a corner, and she often had to be dragged or cajoled into helping with the overarching mission of survival. But that all changed with her first visit to the village of Alwan. The tiny town fit her like a glove, to the point where she learned to love her strange surroundings, and she most definitely went out on a high note. Now, she wants nothing more than to go back.

Jeff doesn’t have to go back; he’s already there. That’s a complete turnaround from the timid, nerdy linguist having nightmares of being left behind, but he’s got a very good reason. Okay, two reasons, the second being that he’s a young man who’s been snared by a borderline nymphomaniac. At least he realizes that much, and he does remember his goal in the coming months: to learn everything he can about the locals and their history, so the next group won’t have to go in blind.

Jenn doesn’t want to stay in the Otherworld, but she doesn’t mind visiting every year—but only if she’s in charge. Her biggest discoveries about herself were that yearning to be a leader and her faith. Put the two together, and she’s the most like the last group of people to find a whole new world full of Indians. But she did prove herself, and she wants the chance to do so again. Whether that’s as a leader, explorer, or missionary, she doesn’t really care.

Ryan was his own sort of leader. He had the charisma Jenn lacked, and he used that to immerse himself more in the local culture. That, in essence, was his plan all along, but he was really the only one out of the group who could pull it off. Maybe he spent two months on a summer construction job, but he feels those were productive months. Even his injury didn’t stop him; in reality, it gave him a new respect for the abilities of the natives. And now he sees the Otherworld as an opportunity to prove himself to, well, himself.

Lee, of course, had the most dramatic time of it. He sprained his ankle while falling into a lake, got married to a thief, saw her get abducted, rescued her, and made an enemy in his new home. His most important aspect remains his race—he’s the closest to the locals of anyone—but he spun that into an advantage. Now, he’s among people like those he always to meet, and he’s becoming one of them. In a way, his story is almost done, but those around him will have their tales to tell.

Alex started out as the geek of the squad, and so he remains. But he was able to take that and run with it, because the natives don’t see him as a nerd, but a wise, intelligent man. A teacher. One of them hopes to see him as much more, which leaves him baffled, but his experience in the Otherworld is all about learning and teaching. It may not be his kind of adventure, and he went through a rough middle portion of the journey. Since that didn’t kill him, he hopes it will make him stronger. It certainly made him thinner.

Ashley, last of our original seven, began her stay in the Otherworld as the feminist outraged at being stuck in a society dominated by men. She made friends—almost all women—because that’s how she is. And her specialty was sociology, so she felt it her duty to learn as much about the local culture as possible. That brought about her two most surprising revelations. For the native culture does, in its own way, like women just as much as men…and so does she. For Ashley, the hardest part will be dealing with these discoveries without letting them consume her.

Still to come

The remaining four members of the expedition didn’t get as much screen time, but they’re not forgotten, and that leads us into the plan for the future. There will be a Season 2. Right now, it’s titled Return to the Otherworld, though that may change.

Before that, however, I have a series of 6 shorter novellas, A Bridge Between Worlds. These cover the intervening time, because, if you’ll recall, there’s still nine months to go before the next time anybody can go through the gateway in Mexico. I didn’t want to pick things up then, as I’m not really a fan of skipping ahead like that, so this was my solution.

First up is “The Code Breaker”, centered around Lee and Nimiesa as they deal with troubles in their home and their potentially growing family. This one builds on some of the storylines first introduced in Episodes 7 and 8, as well as setting the stage for the rest of the “bridge” stories and Season 2.

That’s followed by “The Red Magician”, which, as you may expect, is Ayla’s story; Niel, the native student first met in Episode 6, has a supporting role as he tries to figure her out while she’s figuring out how best to bring science to a world that doesn’t really want it.

Next up is “The Control Variable”. This one’s a bit out of place, as it’s set on Earth. Following Amy and Alex, it’s almost a bit of a travelogue. They’re coming to terms with their journey, but also going around the country in search of the other Altea sites. Do they find them? You’ll see.

Fourth on the list is “The Dark Continent”, which only has a single point of view: Damonte. Except for that brief interlude at the end of Episode 8, he’s been missing for quite a while now. This is his story, almost completely apart from the others, and it’s our first real chance to get into his mind. As it turns out, that place can be darker than his skin, as he’s haunted by his last real encounter with the rest of the expedition.

Following that is “The Lessons Learned”. That one is Jeff’s story, as he delves into the history of the natives, hoping to find references to the even older Altea. But it’s also a story for Irai, because she has a tale to tell. Her chapters are a marked contrast to, say, Nimiesa’s; though they’re essentially in the same situation (in love with an Earthling), they treat it in two very different ways.

And last we come to “The Candle’s Flame”. The final bridge between Seasons 1 and 2 remains set in Mexico, following the other interplanetary couple: Ramón and Etanya. He brought her back with him for a reason, and this story is that reason. It’s also the only one of the set where it’s the native who’s the main character, but there’s a good reason for that: she’s the one out of place. She’s learning about a whole new world, and doesn’t that sound familiar?

This set of stories will come out through 2018. Hopefully, they’ll tide you over until I can finish Season 2. I’m hard at work on that, though, so you shouldn’t have to wait too long. I hope you’ve enjoyed this journey of mine. It’s had its highs and lows, its ups and downs, but I like to think I’ve created something great. No, I want to think I’m still creating it, because there are many more stories to be told in the Otherworld.

Release: Long Road’s End (Chronicles of the Otherworld 8)

So here it is. We’re at the end of our road, our long road. Appropriately enough, Episode 8 of Chronicles of the Otherworld is the season finale, and it’s titled Long Road’s End.

The end is in sight.

Over two months ago, eleven students found themselves stranded in another world. Now, they have made it their second home, but the time has come to return to their first. Before that, all that remains is a week-long holiday. A festival. Surely nothing can go wrong now, can it?

The trials are not done, and the members of the expedition know that nothing is set in stone. Until they are safely on Earth once more, anything can happen. And what if some of them don’t want to go back?

I hope you’ve had fun. I know I have. I took this journey long ago, but I feel I’ve been reliving it over these past few months, and not only because I’ve reread the series many, many times since then. Whatever your December holiday of choice, I hope you’re having a good one, and consider this last story of 2017 my gift to you. Yes, you have to pay for it, and you can only get it as a Patreon exclusive, but I’d say that 8 novel-length stories (a total of over 400,000 words) for only $3 is a good deal. And if you don’t like them, you can always find a reader in your family who does.

This may be the end of Chronicles of the Otherworld, but it’s most certainly not the end of the Otherworld setting. Join me in 2018 for A Bridge Between Worlds, and keep checking back here and on Patreon for info on Season 2, Return to the Otherworld. Thank you, and enjoy the rest of the year.

Let’s make a language, part 28b: Entertainment (Isian)

Isian speakers have a fairly developed art history, including music, performance, dance, and song. Games, sports, and athletic competitions are also common, though they weren’t really organized until modern times and foreign influence came along. Most of the obvious stuff is there, though, from balls to drums to paints.

One linguistic peculiarity is that some of the “agent” terms are actually compounds, and they can be a little funny. The word for “athlete”, esposam, is a slightly altered compound of espot (a borrowing of “sport”), combined with sam “man”. On the other hand, the words for “artist”, dohas, and “musician”, etihas, are constructed from the root has “person”. This is historically significant: while most forms of art have always been open to Isian speakers of either sex, organized sports started as men-only, and the terminology involved reflects this.

Today, of course, there are a lot more borrowed words for entertainment. Telefishon is one such, but Isian has also borrowed terms for movies and much more. Usually, these come from American English, but British English and even French also appear.

Word List

  • actor: satrim (from satri “to perform”)
  • art: do
  • artist: dohas (lit. “art-person”
  • athlete: esposam (lit. “sport-man”)
  • ball: mo
  • bell: ben
  • doll: kedi(r)
  • drum: gon
  • football (or soccer): puscamo
  • game: wana
  • horn: chiran
  • match (game): empe
  • music: eti
  • musician: etihas (lit. “music-person”)
  • song: anli
  • sport: espot (borrowing)
  • story: toyen
  • television: telefishon (borrowing)
  • to defeat: tocore
  • to lose: dos
  • to play: bela
  • to sing: seri
  • to win: gil
  • toy: eney

Modern C++ for systems, part 2

C++ was always a decent language for low-level programming. Maybe not the best, but far from the worst. Now, with Modern C++, it gets even better. Newer versions of the standard have simplified some of the more complex portions of the language, while playing to its strengths. In this post, we’ll look at a couple of these strengths, and see how modern versions of C++ only make them that much stronger.

Types

How a language treats the types of values is one of its defining characteristics. At the highest levels (JavaScript, PHP, etc.), types can be so loosely defined that you barely even know they’re there…until they blow up in your face. But on a lower level, when you want to eke out just a little more performance, or where safety is of the essence, you want a strong type system.

C++ provides this in multiple ways, but older C++ was…not exactly fun about it. Variables had to have their types explicitly specified, and some of those type names could run to absurd lengths, especially once templates got involved. Sure, you had typedef to help you out, but that really only worked once you knew which type you were looking for. It was ugly. You could very easily end up with something hard to write, harder to read, and nearly impossible to maintain.

No more. That’s thanks to type inference, something already present in a number of strongly-typed languages, but brought into the core of C++ in 2011. Now, instead of trying to remember exactly how to write std::vector<MyClass>::iterator, you can just do this:

auto it { myVector.begin() };

The compiler can tell what type it should have, and you probably neither need nor care to know. For temporaries with ridiculously long type names, auto is invaluable.

But it’s good everywhere, and not only because it saves keystrokes. It’s safer, too, because declaring an auto variable without initializing it is an error. (How could it not be?) So you know that, no matter what, a variable declared auto will always have a valid value for its type. Maybe that won’t be the right value, but defined is almost always better than undefined.

The downside, of course, is that the compiler may not get the right hints, so you may need to give it a little help. Some examples:

auto n { 42 }; // type is int
auto un { 42u }; // type is unsigned int

auto db { 2.0 }; // type is double
auto fl { 2.0f }; // type is float

auto cstr { "foo" }; // type is const char *

// (C++14) ""s literal form
auto stdstr { "bar"s }; // type is std::string

That last form, added in C++14, requires a bit of setup before you can use it:

#include <string>
using namespace std::string_literals;

But that’s okay. It’s not too onerous, and it doesn’t really hurt compilation times or code size. After all, you’re probably going to be using C++ standard strings anyway. They’re far safer than C-style strings, and we’re after safety, right?

That’s key, because one of the benefits of Modern C++ over C is its increased safety. Type safety, prevention and warning of common coding errors, we want these at the lowest level. And if we can get them while decreasing code complexity? Of course we’ll take that.

Using the compiler

Unlike more “dynamic” languages, C++ uses a compiler. That does add a step in the build cycle, but we can use this step to take care of some things that would otherwise slow us down at run-time. Languages like JavaScript don’t get this benefit, so you’re stuck using minifiers and JIT and other tricks to squeeze every ounce of performance out of the system. With the intermediate step of compilation, however, C++ allows us to do a lot of work before our final product is even created.

In past versions, that meant one thing and one thing only: templates. And templates are great, until you get into some of the hairier kinds of metaprogramming. (Look at the source code to Boost…if you dare.) Templates enable us to do generic programming, but they’re easy to abuse and misuse.

With Modern C++, we’ve got something even better. First off, compilers are smarter now. They have to be, in order to handle the complexities of the language and standard library. (People complain that C++ is too complex, but modern versions have hidden a lot of that in the underbelly of the compiler.)

More important, though, is the notion of constant expressions. Every compiler worth the name can take an expression like 2 + 2 and reduce it to its known value of 4, but Modern C++ takes it to a whole new level. Now, compilers can take some amazing leaps in calculating and reducing expressions. (See that same video I mentioned in Part 1 if you don’t believe me.)

And it only gets better, because we have constexpr to let us make our own functions that the compiler can treat as constant. The obvious ways to use this capability are the old standbys (factorials, translation tables, etc.), but almost anything can fit into a constexpr function, as long as it doesn’t depend on data not available at the time of compilation. With C++14 and 17, it only gets better, as those did away with the requirement of writing everything as a single return statement.

With const and constexpr, plus the power of templates and even metaprogramming libraries like Boost’s Hana, Modern C++ has a powerful tool that most other programming environments can’t match. Best of all, it comes with essentially no additional run-time cost, whether space or speed. For low levels, where both of those are at a premium, that’s exactly what we want. And the syntax has been cleaned up greatly since the old days. (Error messages are still a bit iffy, but they’re working on that.)

Plenty of other recent changes have eased the workload for low-level coding, even as the high levels have become ever simpler. I haven’t even mentioned some of the best parts of C++17, for instance, like constexpr-if and if initializers. But that’s okay. C++ is a big language. It’s got something for everybody. Later, we’ll actually start looking at ways it helps make our code safer and smarter.

On deserts

Arrakis. Tatooine. Mars. The desert is a compelling setting in science fiction. Some of our greatest stories are told against the backdrop of dry, baked rock and harsh sands. And that is by no means limited to the scientific. No, all types of literature have ventured into the desert for a good tale. Modern fantasy (Deadhouse Gates, The Thousand Names) loves the setting. Movies old (Lawrence of Arabia) and new (The Mummy) find it to be the most spectacular of scenery.

Why? What is it that draws us to the desert, this most inhospitable of climes? And how, as writers, can we make use of that? Read on for my thoughts on the matter.

Full of emptiness

One definition of “desert” is any region averaging less than 250 mm (10 inches) of annual rainfall. That doesn’t require extreme heat, like the Sahara or the Mojave; the Gobi is a desert, as is Antarctica, but you’d never confuse either of those for hot. This lack of precipitation, though, makes the desert what it is: a seemingly barren, lifeless stretch of emptiness.

But we know it isn’t. Life on Earth is ubiquitous, finding a foothold everywhere we look. Even in the harshest, driest regions, life finds a way. Dig down into the Sonora or Atacama, and you’ll find bacteria. And on the macro scale, you often have cacti, carrion birds, and the like. So the desert isn’t lifeless. It just looks that way compared to a lush grassland.

Already, we see one part of the desert’s allure. That emptiness, that loneliness, can be a powerful reflection of the same feelings within oneself. Here we see a place not conducive to the kind of life we live, and that leaves us feeling alone. Deserted, to put it bluntly.

Deserts evoke loneliness not just for the lack of notable flora and fauna, but also for the lack of civilization. Maybe it’s different for, say, Bedouins, but Westerners, I think, see a desert as a stretch of nothing. We see endless sands, perhaps some broken hills, and the occasional oasis. It’s not like in more hospitable lands, where we can walk a mile or two to find a new farm or town. Even in older days, when civilization wasn’t as urbanized, when populations weren’t as densely packed, you didn’t have such barren wilderness between settlements.

Thus, a desert is, in a sense, a metaphor. Someone lost in the desert is alone, wandering. Cut off from civilization, from the simple pleasure of another person’s company. That’s powerful.

Warning signs

Deserts are also dangerous. Not just from the heat or lack of water, but what wildlife there is tends to be aggressive and deadly. It has to be, in order to survive. So deserts are the abode of scorpions and snakes, of prickly, poisonous plants. That, again, draws us to them.

Maybe that doesn’t make sense at first, but think about it. Some of the most gripping tales of humanity are those of survival. That’s why we can have a movie like 127 Hours, or a whole subgenre of reality TV dedicated to people wandering around lost in places no sane person would ever go, drinking their own urine and eating whatever insects landed on them during their first nap in three days. We like seeing people survive. We want to see the odds beaten.

Nowhere on Earth are the odds more stacked against us than the desert. There’s almost nothing to eat, nothing to drink. There are no amenities, not even the most basic. Friendly faces are few and far between. When our intrepid heroes finally do make it out alive, we cheer that much more.

This even extends into a class of stories that might best be described as “campaign fiction”. Most common in fantasy, these are the stories of a military or paramilitary unit making not a last stand, but a death march. It may be the main thrust of the tale, or just a subplot, but the chronicle of this doomed army makes for a wonderful read.

Cut off from supply lines, forced to forage in a foreign land where that just isn’t possible, they must make their way to some distant, dubious goal. Along the way, they face trials and conflicts, whether from their surroundings, the locals, or themselves. People die, from hunger and thirst, from battles, from knives in the dark. Every stop—usually an oasis, spring, or abandoned village—sees the force whittled down a little bit more, until, battered but not broken, they reach the end, where their final test awaits.

As a reader of fantasy, I’ve seen this one quite a few times. Some examples include Dany’s march in A Clash of Kings (George R. R. Martin), the epic Chain of Dogs sequence in Deadhouse Gates (Steven Erikson), and the Holy War of The Warrior Prophet and The Thousandfold Thought (R. Scott Bakker).

To be fair, these grand adventures aren’t limited to deserts. You can have a death march on a tropical island, or across forested hills and valleys. (Bataan and the Trail of Tears are examples from the real world.) But the desert heightens the danger. Here’s a place where one wrong step could be the end, and you’re forced to make all wrong steps. When you reach the end, the payoff is that much greater.

Using the land

If you want to use a desert as a setting for your own works, keep that in mind. Deserts are harsh, unforgiving, and yet they possess an undeniable beauty. As a backdrop, as a location, you need to retain all of those qualities, while still juggling the needs of your story. It’s tough, but doable, and the reward is a moving tale of human ingenuity under duress.

Remember to set the stage. People from wetter lands going into a desert are, in a sense, entering an alien environment. Thus, you probably want to use environmental storytelling to show off how they react to their surroundings. (Or, sometimes equally important, how their surroundings act to them.) If this story is supposed to involve an extended stay in the desert, without the benefit of civilization, technology, or other aids, then survival will likely play a large role. That goes double for a desert march or military campaign.

As the desert is a lonely place, it also makes a good environment for introspection. Without outside pressures, it’s perfect for setting up small-scale interpersonal drama. And the hauntingly beautiful views are a great place to practice your descriptive prose. All in all, the desert is the writer’s paradise. It’s strange, really, that such a barren land can be so fruitful for an author. It constrains, yet that somehow makes it liberating.

Not every story, not every genre, can benefit from the desert. But many of them can. It’s a wonderful place, one we come back to again and again, and there has to be a reason for that. There’s something in the desert that speaks to us, something that makes a good story great. Maybe it’s a mirage, or maybe it’s why we keep fighting in the Middle East. Whatever the reason, it is a great place to escape to, even if you wouldn’t want to live there.