The LSP Revolution

Remember the days when you had to look for plugins for your editor to support your favourite programming language? Or even the language that isn’t your favourite, but which for some reason you need to write in? Well in case you didn’t notice, those days are gone. They aren’t “long gone,” but the are gone. I thought they weren’t gone, but they are. Gone. For real. Because there’s LSP. What started as an interface between VS Code and completion engines at Microsoft, became the godsend for all of us that want to declare “dotfile bankruptcy” every couple of months.

How not to interview software engineers

Don’t ask them to do an overly time-consuming assignment, unless you’re going to pay them. If they need to spend more than a couple of hours and you expect the solution to ship a full suite of tests, you’re doing it wrong. Live-coding is fine, but tell them in advance. Some people get very stressed during those interviews, so make sure they can prepare, technically and emotionally (also they may need a drink or seven, which I think is totally fine).

VS Code

The best, most entertaining and immortal topic in software engineering is back! Editor Wars! After reading Roben Kleene’s blog post I realized that I’ve been using VS Code all-day every-day for over a year now. I’m not willing to admit it because in my mind I’m a die-hard (n)vim user, but the reality is this: VS Code is brilliant. Kleene makes many great points about key ingredients of VS Code’s success (popularity/MS backing, plugin ecosystem, client-server architecture), and you should read his post.

One of Go’s features is that it doesn’t have an excess of features, and frankly, I think that feature is undervalued.

There’s an interesting discussion on Quora about the differences between Golang and Scala.

As a former academic with tendencies towards functional programming, I used to be very tempted by Scala.1 It offers all the functional goodness without the exoticism of Haskell, and came with reasonably good tools and frameworks. Like Clojure, it’s a functional language you can actually do some work with.

The problem with Scala is, the more advanced you get, the more complicated (unreadable?) your code becomes. I remember that back in grad school the dude who was able to doodle the craziest and mathematically most challenging solution to some problem in Haskell was someone everyone looked up to. But it turns out in the “real world” simplicity always trumps virtuosity and sophistication, which is one of the many reasons I love Golang so much. A language with no “magic,” good concurrency support, great documentation and community that compiles into machine code and runs faster than Python? Yes, please.

Read the whole Quora thread, though, there’s a lot of interesting stuff there.

  1. This is not to say that I don’t like Scala. I really do, it’s just that my love for it is, hm, not as unconditional as it used to be.