Having Fun with Codenames
Developers work hard. So to keep our creative juices flowing, sometimes we need to entertain ourselves and take our mind off work. One way we do this at JetBrains is by having fun with codenames for future product releases. Here are some of the hilarious and weird ways our products get their codenames.
Now over 11 years on the market, our flagship IDE IntelliJ IDEA has carried a lot of goddesses’ names like Stella, Vista, Pandora, Ariadna, Aurora, Pallada, Irida, Demetra, Selena, Diana, Maia, Nika, and the most recent Leda. By the way, if some of these names look misspelled to you, keep in mind that most of the developers are Russian. So cut us some slack, will you? :)
Keeping it human
From day one, our bug tracker YouTrack has focused on human traits, qualities and emotions. Its alpha version was called Charisma for a long time, before we realized the name was unavailable commercially. After it finally shipped as YouTrack, the codenames followed alphabetically: Daring, Energy, and most recently Fascination. Will the next release be dubbed Generosity? Grotesque? Grandeur? We’ll find out soon enough.
Art history course, anyone?
The team behind our .NET profiler dotTrace is chock full of classical art aficionados. Their releases are named after Italian architects and sculptors, also in alphabetical order: Arabella, Bernini, Canova, and Donatello. What’s more, the splash screens for all minor versions of dotTrace are designed based on these artists’ works. Who would have thought, right?
The proverbial islands
As Project Kotlin began to take shape, we thought it would be fitting to name it after an island. You know, what with Java and all. Well, we didn’t have to look far: St. Petersburg, Russia, where our R&D lab is located, includes at least 33 islands that have unique names (and who knows how many others). For something easier to pronounce though, we considered Kotlin, an island 32 km west of the city in the Baltic Sea, housing the fortified town of Kronstadt. And there we have it!
Denizens of the forest
The RubyMine team has only recently started using codenames. The current v4.5 is called Nire, which is Japanese for ‘elm.’ The one before, Tōhi, stood for ‘fir tree’ or ‘spruce.’ While breaking the alphabetical mold, the team is doing one better: they’re using exactly the same number of letters as the version number! Time will show how long they can keep it up.
And then there’s always geography
TeamCity’s naming tradition is based on Indian cities and so far includes: Agra, Benares, Calcutta, Darjeeling, Eluru, and Faradi. Sounds simple, doesn’t it? Well, with an alphabetical method your first letter is a given, but some letters really challenged the developers.
To find a name starting with F that was easy to pronounce, last year the poor developers had to whip out their geographical atlases, maps and even Google Earth. As the team focused on their research, a strange email came through that really took them by surprise. An Indian college offered to buy any number of TeamCity licenses if only we named the next release Falna – the Indian city where this college was located. Apparently, they had figured out our codenaming method for this product and really wanted the publicity!
Understanding came suddenly: it was April Fools’ Day! The only thing they could never figure out is whether the joker was someone on the team or an outsider.
Share your stories too!
So, what fun codenames or naming methods have you come across? We’d love to hear about them!
Subscribe to Blog updates
Thanks, we've got you!
BeamSearch in code generation
In the previous article devoted to full-line code completion, we looked into the vocabulary that the neural net of our full line completion plugin uses for Python. However, just having 16384 tokens like self., or, s.append(, return value, and others described in the article is not enough to generate…
Looking at Python through the eyes of a neural net
The JetBrains full line code completion plugin for Python is now available as a public beta. We would like to talk about some of the technologies and algorithms used to create the plugin and share statistics about Python programming that we’ve collected in the process. What is “full line code co…
Code Completion, Episode 4: Model Training
The previous articles from the series covered the following topics: In the first episode, we discussed general code completion scenarios.The second episode was devoted to the difficulties of heuristics-based implementation and explaining the necessity of machine learning.In the third episode, we …
Code Completion, Episode 3: Where Is the Dataset?
As we discovered in the second installment of this series, a modern code completion system needs machine learning to rank the suggestions most effectively. Machine learning has one thing in common with human learning: it requires data to extract knowledge. There are many aspects to that process. …