For non-developers, it may seem like a new computer language is created every day, each with an uninformative name. Even developers sometimes feel that way. At TXI, we’re always assessing ways to solve our clients’ problems, whether that’s a new schema for critiquing design or a new language well-suited to a necessary function. Still, the pace of new languages can make it difficult for our developers to try them out — and their new ways of solving problems
To broaden our thinking, this week several members of the TXI team participated in a challenge: to take the coding exercise we ask our interview candidates to complete, and to build it in a language that’s unfamiliar. Each developer then presented the results to the group, so the whole team could each get an understanding of the new languages available, and an understanding of how our teammates approach a new language.
We wound up with nine presentations in eight languages. The first was Swift, Apple's next-generation language for iOS and Mac development. We use this extensively, but not everyone is familiar with it. The challenge gave those people a chance to test it out.
Then we had three languages that we’d all heard something about, but few of us had used. Each of these might be perfect for a future project, or part of a project, so we wanted to familiarize ourselves with them ahead of time.
- Clojure, a Lisp-based language on top of the Java VM
- Elixir, a pattern-matching functional language built on top of Erlang
- Lua, a small scripting language often used for dynamic game logic
Elixir, in particular, seemed to get a lot of interest, especially because of its syntax for “pattern matching”, choosing which method to execute in the codebase based on the values of data at runtime. Pattern matching can be used to simplify complex coding logic — by separating the logic of different cases, we can make each individual case smaller and easier to write.