Language can help a bit in making it clearer and giving the programmer more time to work on the important parts - but this actually goes both ways. Not having to worry about memory is a definite plus, but it can also be a big minus when you need to do something specific with that memory. For example, mutating in place is very easy in C when its required, but trying to mutate in place in some of the newer languages is very difficult.
Also it's doubtful if Tarsnap would be better if it was in Python. It might (or might not, depending on optimizations) have been quicker to write it originally in Python - but nobody would trade an already created C tarsnap for a Python tarsnap because the Python one would use more ram and run slower.
Implementing HN in APL is left as an exercise for the reader.
I don't get this.
I would chose reddit over HN any given day technically / ergonomically speaking.
Actually if https://news.ycombinator.com was returning a 301 to https://reddit.com/r/hackernews I would be very happy.
I agree that it's an odd implementation choice though. I guess it made sense when HN was smaller and it could grant more ressources to each user. Nowadays, Reddit's simpler system (with risks of duplicates or missing rising links as you go deeper) would probably make more sense.
Not only that, but it's impossible to follow discussions here. You have to go through your comment history to find threads you reply to.
Could you expand/elaborate on this? I've never viewed HN as particularly complex, just tastefully designed with a good community.
https://news.ycombinator.com/item?id=6857138
I'm not sure why that would be impossible in a none-lisp, just less elegant.
But C guides you to simplify, and gives you control. Combined with the right certain amount of taste this can lead to exceptionally good outcomes. See also qmail, plan 9, etc.
But I've always wondered: if Colin were as experienced with Python as he is with C, would Tarsnap be better served by writing it in Python? It seems like the codebase would be half as large.
In other words, is C the reason why Tarsnap is good, or is it because of Colin? Or is it both?
Example: Lisp, along with PG, is the reason why HN is good. Many of HN's features simply wouldn't be easily accomplished without it, so they wouldn't ever have been implemented. But I'm not sure the same could be said of Tarsnap.
But let's be honest - in how many languages can one retrospectively add a garbage collector?
Many. Lisp in particular. HN's links like /x?fnid=KxPuWC6qnkl4nxcUTDh4xs are an example of this.