By this I mean YOUR programming language. The one you created. Not the one someone else created that you're using.
Hear me out.
I built my own programming language. Goblin. I built things with it. I'm actually to the point where I'm starting to tell people about it. Trying to build a community for it. Dredge up some interest. I have to promote it and somehow elucidate its amazingness.
In doing all this, I feel it's important to share the things I've learned along the way (I'm still learning). Perhaps the most important lesson of all is:
Nobody gives a shit about your programming language.
Why should they?
There are literally thousands of programming languages. I won't name them all here.
But I actually think it's only going to get more difficult to secure interest in new programming languages from here on out, and I'll tell you why in a minute. Hold your horses. Or your pony. (I just really wanted to mention Pony because I think that's a magnificent name for a language.)
Reason One: They Already Invested in Another Language
I call this the Magic the Gathering problem. Back when I tried to make my own trading card game, I learned very quickly that nobody cares about your trading card game, either. Why? Because they already spent hundreds or thousands on Magic the Gathering, or one of the other "Big Four". All their friends already play it. They know all the rules. You get the idea.
It would be too much of a pain in the ass to switch to a new thing nobody's ever heard of and nobody's playing.
Well, same thing with languages. These people already know Javascript. Or Python. Or Pony. They had to do work to learn it. They are able to be productive in it.
You are asking these people (people who have names for their community like Rustaceans, Gophers, Rubyists) to abandon the comfort of their favorite thing for something that, for all intents and purposes, might suck dramatically worse than anything has ever sucked, even worse than merge conflicts.
So yeah. They're already invested.
Your language isn't competing against syntax. It's competing against familiarity, experience, momentum, habit. If the only thing your language offers is cleaner syntax or a few interesting language features, nobody's leaving the gopher hole for you.
There has to be a compelling reason. Some ideas:
- your language solves a problem better than existing ones
- your language enables a style of dev that's different
- your language integrates with a framework or platform people actually use
- some other reason I haven't thought of
But you have to give people something more than just "Ruby but with types."
Reason Two: You're Competing Against Entire Ecosystems
One mistake I made early on was thinking I was competing only against other languages. (You are, in a way, competing for attention still.)
I'm not.
I'm competing against ecosystems.
Python isn't successful because of its syntax. Rust didn't become popular because people loved typing match. JavaScript isn't everywhere because developers woke up one morning and collectively decided it was the perfect language (I'm convinced people only code in JS under duress).
Those languages all have momentum.
They have documentation that's been refined for years. They have mature package managers (although some of these are like a 2am cougar who might be down for anything, but you end up with a nasty case of supply chain attacks as a lovely parting gift). They have editor support, debuggers, libraries, tutorials, books, videos, conference talks, Stack Overflow answers, and millions of developers who have already solved the problems you're likely to encounter.
Your new programming language starts with almost none of that.
And people sense this. People can somehow look at a new programming language and just intuitively surmise, "I bet this doesn't have a lot of the things these other legacy languages have."
The moment someone slams into an issue, there's a good chance they're the first person to ever encounter it. Like, imagine the first person to discover cheese. That's scary. That means you are the documentation, you are the community, and you are technical support.
You can't just tell people to turn it off and then on again.
Reason Three: AI Is Now Part of the Ecosystem
This is something language creators have to think about today that simply wasn't a factor twenty years ago.
People are going to use AI.
Devs nowadays prompt their asses off to explain compiler errors, answer questions, generate boilerplate, and help them learn unfamiliar technologies. Whether you like that trend or not doesn't really matter. It's how a lot of people write software now.
If your language is brand new, AI doesn't know it.
It hasn't seen years of documentation. It hasn't learned from thousands of open-source projects. It doesn't understand your syntax the way it understands Python, TypeScript, Rust, or JavaScript. It's more likely to hallucinate APIs, misunderstand your language, or confidently generate code that doesn't even compile.
Ask me how I know.
This creates another adoption problem that language creators didn't have to worry about a decade ago: today, documentation isn't just for humans. It's increasingly for AI as well.
Why would someone struggle back and forth with the LLM to get your language just to work when they could just use a language it already knows?
Reason Four: People Usually Discover Languages Through Something Else
I also think many language creators have the adoption funnel backwards. People are more likely to use your language or learn it when they are exposed to it through some tool or framework. These kids aren't out here clamoring to learn Lua just because. They got there through Roblox and Minecraft.
Ruby exploded because of Rails. PHP spread because the web was full of software written in PHP.
People came for the application.
The language came later.
That's one of the reasons I'm building more than just a language (Sheriff). If people find value in the ecosystem around it, they'll naturally become interested in the language that powers it.
Reason Five: The Big Dogs Have Backing
Many of the newer languages that come out have some huge corporate backer, which gives it more street cred and more marketing power. Look:
- C# and Typescript by Microsoft
- Swift by Apple
- Go and Dart by Google
- Rust by Mozilla
- 8 million langs by IBM
This gives these languages a significant advantage over the guy in Sackinutts, Iowa creating his own compiler. When one of these companies says, "We're making this thing," it's already halfway around the world.
You, the guy from Sackinutts, have to put in a lot more work. You have to not only make the language, make sure it works, build something out of it, but you also have to tell people about it and then you have to get people to want to use it.
This is what we refer to in the software industry as "hard."
You're going to have to post on X. Write blog posts. Submit to Hacker News maybe. Write more blog posts. Start a subreddit and a discord. Maybe make some videos.
All by yourself.
Building the Language Is Only the Beginning
Writing the compiler isn't the finish line.
It's the starting line.
Once your language exists, if you want people to use it, you still have to build documentation that people can actually follow. You need tutorials, examples, syntax highlighting, editor extensions, debuggers, package management, installers, sample applications, videos, and somewhere people can ask questions when they inevitably get stuck.
People are going to break shit in ways you never even imagined.
Every piece of friction is another reason for someone to retreat back to loving arms of the language they already know.
Creating a programming language is an engineering problem. Convincing people to adopt it is a product problem.
Those are very different skills.
Final Thoughts
If you're thinking about building your own programming language, I hope this doesn't discourage you. Quite the opposite. (Never let me tell you what to do! Do you understand me?) I think creating a language is one of the most rewarding software projects you can take on.
Just don't fall into the trap of believing that the language itself is the product.
It isn't.
The language is the foundation. The ecosystem is the product.
You have to give people a reason to use your language over all the others. And you also have to remember, people are also looking for reasons NOT to use your thing.
Are you compelling people or repelling them? Ask yourself this for every part of the chain. Is the language itself compelling or repelling? Is the tool compelling or repelling? Is the ecosystem? Is the community? What about me? Am I attracting people or pushing them away? Am I zigging when I should be zagging?




Top comments (0)