Languages are something of a mess. They evolve over centuries through an unplanned, democratic process that leaves them teeming with irregularities, quirks, and words like “knight.” No one who set out to design a form of communication would ever end up with anything like English, Mandarin, or any of the more than six thousand languages spoken today.
“Natural languages are adequate, but that doesn’t mean they’re optimal,” John Quijada, a fifty-three-year-old former employee of the California State Department of Motor Vehicles, told me. In 2004, he published a monograph on the Internet that was titled “Ithkuil: A Philosophical Design for a Hypothetical Language.” Written like a linguistics textbook, the fourteen-page Web site ran to almost a hundred and sixty thousand words. It documented the grammar, syntax, and lexicon of a language that Quijada had spent three decades inventing in his spare time. Ithkuil had never been spoken by anyone other than Quijada, and he assumed that it never would be.
From Utopian for Beginners, an excellent 2012 New Yorker article about constructed human languages.
Software is eating the world, and doing so using smaller and smaller teams. WhatsApp was able to disrupt the global SMS industry with only a few dozen engineers. Small teams can have a big impact because software development (and deployment) has improved dramatically over the past decade. Some improvements include:
- Infrastructure. Deploying a commercial website ten years ago required significant upfront capital. Now you can spin up virtual servers in minutes. Upfront costs are close to zero and ongoing costs are orders of magnitude lower than before.
- Services. Startups created simple APIs that abstract away complex back ends. Examples: Stripe (payments), Twilio (communications), Firebase (databases), Sift Science (fraud).
- Open Source. Open source dominates every level of the software stack, including operating systems (Linux), databases (MySql), web servers (Apache), and programming languages (Python, Ruby). These are not only free but generally also far higher quality than their commercial counterparts.
- Programming languages. Developers have steadily marched upwards from Assembly to C to Java to, today, scripting languages like Ruby and Python. Moore’s Law gave us excess computing resources. We spent it making developers more effective.
- Special-purpose tools for non-programmers. These tools let non-programmers create software in certain pre-defined categories, thereby lowering costs and reducing the demand for developers. Examples: Shopify (e-commerce), WordPress (blogging), and Weebly (small business websites).
- General-purpose tools for non-programmers. In the pre-Internet era, tools like Hypercard and Visual Basic allowed hundreds of millions of semi-technical people to become software developers. Since then, there hasn’t been much work in these areas, but from what I’ve seen that might change soon. By allowing more people to program, these tools act as a force multiplier for the software industry.
In all likelihood, the demand for software development will continue to dramatically outpace the supply. If so, “software eats software development” will be an exciting area going forward, with lots of valuable startups created in the process.