by Leon Rosenshein

Languages

We’re all multilingual. We speak C, C++ (yes, they are different languages, not dialects), Python, Go, Java, Javascript, Matlab, Assembler, and many others with varying fluency. And that’s good and proper. Using the right tool at the right time is one of the marks of a craftsperson, just as much as the ability to do quality work with the available tools is. Master craftspeople not only know which tool to pull out of their toolbox, they also stay aware of new tools and methods being developed. InfoQ recently published their Programing Languages Trend for 2019. The list and commentary are interesting for themselves, and even more interesting is some of the back story about why people are starting to use those languages. Understanding the problems the different languages are trying to solve can give you a whole new perspective on whatever problem is currently top of mind for all of us.

And, on an unrelated note, I was looking through some of the repos we have and noticed that many of them have .envrc file in the root and was wondering what that was for. I took a look inside one and there was this comment

#!/bin/bash
# Users of direnv can run `direnv allow .` here to automatically update the
# PATH.
# enter this directory or any descendent. <https://direnv.net/>

and suddenly a light went off. I’ve been struggling to deal with multiple repos across ATG and Prime with different (and often incompatible) versions of their toolchains and wondering what to do about it, and there’s the answer. direnv. I think I can even get it to handle switching versions of arc for me as I switch repos, but I haven’t dug that deeply yet. Check out direnv.net. As the kids say these days, 10 out of 10, would recommend.