My Tech Stack

Posted on May 28, 2017

This is a compilation of the tech I use, written as blatant propaganda. I love to talk and spread knowledge of all of these, so don’t hesitate to ask me!

Haskell

What is it?

Haskell is a programming language which allows programmers to express themselves in code that follows the shape of mathematical tools. Because of its powerful compiler, code written in Haskell is shorter and runs faster than code in dynamic scripting languages, like Python, Ruby, and Javascript. The advanced type-checking facilities in the compiler also make it easier to write correct code in Haskell than it is in compiled languages like C++ or Java.

I used to think that Haskell was really cool, but not practical. However, recently I’ve discovered more and more real world applications of Haskell, to the extent that I think Haskell is far more versatile than Python or Java, just in terms of breadth of usage. And it’s becoming more and more popular, breaking out of hobby use and into industry. Not only that, but ideas pioneered in haskell are being integrated into all sorts of other languages.

Why?

  • Safety

The elephant in the room with almost every other language is how easy it is for things to blow up in your face. Haskell programmers can be confident that their code will not error because so many errors are prevented at compile time by static typing and by lack of mutability.

  • Composability

For a large number of reasons, including culture, enforced lack of side effects, and powerful primitives, Haskell code and libraries is very easy to add together, and almost any repeated pattern can be factored out. This leads to concise code and rapid development.

Stumbling Points

Learning curve, and network effect.

Nix and NixOS

What is it?

Nix is a pure configuration language, and NixOS is a operating system that uses Nix for all of its configuration.

Again, when I first came across NixOS I thought it was completely impractical. But then I used it for a year and a half, and I couldn’t be happier. At no point will your layman Joe or Josy use NixOS, but I believe that it could slowly become a highly relevant server operating system, just as Linux is today.

Why?

  • Reproducibility

When something works in Nix, it works forever, wherever. This allows the community to solve problems and have them stay solved, which means you have the accumulated best practices of thousands of developers at your fingertips.


Site proudly generated by Hakyll with stylistic inspiration from Tufte CSS