That being said, we pressured — I mean… politely asked — our own web developer Jeremy Hull to tell us what are his current top 5 favorite technologies:
System level programming is a pretty old and set in its ways in the software development space that was pretty much exclusive to two languages, C and C++. The main goal of Rust was to be a memory safe language without sacrificing performance. The feature that allowed this goal to accomplish this is lifetimes. Usually, a C or C++ developer has to keep track of when pointers, of allocated data, are freed from the heap and manual memory management which can be a pain. What lifetimes do is expose the compiler to know explicitly the lifetime of all allocated memory. And having a compiler that knows about these lifetimes, frees up those cycles a developer needs to use initially for tracking memory in their brain.
I’ve used the language for building my FLAC, free lossless audio codec, library and enjoyed the process. Although lifetimes can get in your way at times, once you fix those errors and your compiler stops pestering you about them, you can feel a bit more confident that your software will not crash because of a memory error.
This is my preferred text editor that I use on a day-to-day basis for both work and my hobby projects. The selling point, at least for me, is the fact that it is a modal editor with distinct modes for editing text. What this means is I rarely, almost never, use a mouse allowing me to be as efficient as possible compared to any other editor.
Of course, there are many other features implemented through plug-ins that make for quite a powerful piece of software. And to top it off, it is open source, and it has been that way since it’s conception back in 1991 with the goal of improving on its predecessor VI.
Quite a useful tool to use for different sets of automation for anything that touches the internet. If you visit their site you can see the multitude of protocols it supports — well over 30. What I usually use cURL for is getting previews of data from APIs of third party websites. I also use it for internal development of APIs, just so I know what type of data is and isn’t being exposed to the world.
Although their website is pretty terrible, this is probably one of the most influential pieces of software on my list. Just as an example, Rust uses LLVM and the majority of software on Mac OSX are built with LLVM, so you can see the type of impact it has.
But what even is “LLVM”? It is a collection of modular compiler and toolchain technology. If you know anything about the only other popular open source compiler, GCC, it was originally designed as a monolith program that was pretty much impossible to use a specific part of the compiler for building developer tools. With a bit of market pressure from the growing community of LLVM, they started to make their project more modular and its codebase have improved quite a bit. Within that time, there have been a plethora of tools build around LLVM, including clang the default compiler on Mac OSX.