Much of Scala’s power comes from its flexibility and generality as a language. You can
mold it quite extensively to suit your particular problem domain or coding style.
The downside of this is that Scala can sometimes be permissive and accommodating to a fault.
You often hear Haskell or F# users attest to a sense of “if it compiles, it works” – in my experience
this is not generally the case with Scala.
To illustrate this point, let’s walk through a few examples, all of which are distilled
from honest-to-goodness I-swear-I’m-not-making-this-up bugs my team or I have encountered.
I’m happy to publicize a little project I’ve been working on recently: 1Poshword, a
PowerShell client for the 1Password password manager. Code
is available at https://github.com/latkin/1poshword.
There is a page in the Hugo documentation
that describes how to use MathJax to embed nicely-typeset mathematics in one’s
For my own site, I took this as a starting point and made a few improvements. Here’s
how I do the math typesetting in this blog.
This is a bug/curiosity in PowerShell that I stumbled upon a few years ago, but never
wrote up. The behavior hasn’t changed significantly in the intervening verions, so now
I’m finally getting around to a quick blog post.
As part of the small minority of devs at my company who primarily run Windows,
I’m accustomed to working around occasional Unix-specific behaviors in our build
and deployment systems. Cygwin makes most stuff just work, I can fix simple
incompatibilities myself, and as a last resort I can always boot into OSX for a
while if needed.
One oddity that took me quite some time to diagnose, though, was Git’s strange
behavior when dealing with files in our repo whose names contained a colon.