I recently stumbled across this keynote speech by Clay Shirky for Supernova 2007. The video is titled Clay Shirky on Love, Internet Style. I’ll give you a moment to watch it.
Love might seem like a strange thing to talk about in the context of programming. But I think Clay Shirky’s talk really highlights how important love and community are to a programming language. You need people to love the language for it to continue to grow. And their enthusiasm for the language will draw people in.
Stack Overflow knows this and even includes it as a topic in their developer survey1
While you’ll see a lot of the most popular languages in the top 10, there are definitely some that are boosted to the top by their small but enthusiastic community. A corollary to this is Esperanto which while not the 22nd most spoken language in the world, is ranked 22nd in number of articles on Wikipedia2. This beats out, Danish, Indonesian, Hebrew, Arabic, Korean, and Vietnamese. I’m sure everyone can think of that one thing people just can’t seem to shut up about, whether it’s a programming language, video game or movie. But it makes you curious to try it out, doesn’t it?
So how do you build a community that loves your language? The first step is having a language worth loving. Your language needs to do something that gets programmers excited. Whether that’s improving the experience in working in a particular domain like data science with Julia, or preventing bugs through static typing like Typescript for the web. Building your language with the “right” syntax or programming paradigm, whatever they may be, helps too. Having popular and well respected figures behind the language like Rich Hickey for Clojure, or in the modern era a streamer like The Primeagen3 for Rust or Theo4 for Typescript, create large gravitational pulls that draw in aspiring programmers. Having a cute mascot like the Go Gopher really strengthens your case5. And if people still aren’t getting it, just name your video game framework after the word LÖVE to make it clearer6
Giving the community a place to congregate also helps. A Discourse forum, Subreddit, and Discord are all great places for a budding or established programming language to live. A social media presence helps to increase people’s awareness of the language. An official Twitter is probably the most common for programming languages. Retweeting, liking and sharing work from members in your community has large positive feedback loops. Eventually once a programming language picks up more steam, people will start creating bigger and more impressive projects in the language. People talk about a language’s killer app, All of android or Minecraft for Java, Ruby on Rails, WordPress for PHP, Dropbox for Python etc. Killer apps are difficult to make, but you increase your chances with every bright mind that joins your community. A few really good apps are enough to draw large amounts of people to a language. Killer app creators, and the successful people that build businesses on them, are the pillars of a language community. Think Wes McKinney of the Pandas python fame, who is one of the backbones of Python and the data science community.
All programmers have the members of their community they aspire to be like, and we shouldn’t be ashamed to admit that. We want to know what text editors they use, their keyboards, their setups and their programming languages so we can align ourselves closer to them. As young programmers we make irrational decisions about our tech stacks based on emotion rather than any real experience because we are young and inexperienced. I sure did when I decided to use Emacs just because my boss used Vim. That rash decision has led to a lifelong love of the editor (there's that word again), many contacts with the surprisingly large and active reddit community7 And many hours spent fiddling with init.el.
Just like a Carpenter can have a favorite hammer, we have our favorite tools. I’ll always have a soft spot for Racket as it was the first Lisp I really understood how to program in. I’ll always appreciate Python for being my first language and making programming accessible. Even this blog is an act of love. I owe a great debt to the programming field for everything it has done for me. From giving me the ability to support my family to providing me with the hobby I spend every night working on. I appreciate the community it allows me to be a part of, especially the one that is being developed here. I’m thankful for all of you.
So much of our software today is built on love, and passion, and an excitement to share what we’ve built with the world. It’s built on people who volunteer the precious moments they have on this earth to mentor us, and to make our lives easier. To everyone who has mentored someone, or created something to share with the world because you thought it would be useful to us, thank you. You make all our lives easier, and you don’t get enough praise for it.
Call To Action 📣
If you made it this far thanks for reading! If you are new welcome! I like to talk about technology, niche programming languages, AI, and low-level coding. I’ve recently started a Twitter and would love for you to check it out. I also have a Mastodon if that is more your jam. If you liked the article, consider liking and subscribing. And if you haven’t why not check out another article of mine! Thank you for your valuable time.