HNHacker News
TopNewBestAskShowJobs

seanparsons

242 karma · joined January 29, 2016

[ my public key: https://keybase.io/seanparsons; my proof: https://keybase.io/seanparsons/sigs/o4hvM6Y_1V25CzfSuqR87sYdOWyoq-IsPW8HxBsh28o ]

Blog: https://funwithfunctions.com

submissionscomments
seanparsons··on Founder of GitLab battles cancer by founding companies
Good luck to him, fuck cancer.
seanparsons··on The struggle of resizing windows on macOS Tahoe
Flipping things around as I see it as a desktop Linux user: "OMG this one thing doesn't work in macOS, looks like 2026 wont be the year of the macOS desktop!"
seanparsons··on Cloudflare outage on December 5, 2025
"This type of code error is prevented by languages with strong type systems. In our replacement for this code in our new FL2 proxy, which is written in Rust, the error did not occur." It's starting to sound like a broken record at this point, languages are still seen as equal and as a result, interchangeable.
seanparsons··on Homebrew no longer allows bypassing Gatekeeper for unsigned/unnotarized software
The point is that by the time Gatekeeper closes tight enough that everything must run through Apple and it can't be disabled, most people wont notice and will be stuck with it.
seanparsons··on Homebrew no longer allows bypassing Gatekeeper for unsigned/unnotarized software
My longstanding prediction that Gatekeeper will ever so slowly tighten so that people don't realise like a frog boiled in water is continuing to be true.
seanparsons··on Designing software for things that rot
Here's me hoping this was something for Factorio: Space Age...
seanparsons··on Python developers are embracing type hints
Even if they're not written as TypeScript, there are usually add on definitions like "@types/prettier" and the like.
seanparsons··on Python developers are embracing type hints
My last job was working at a company that is notorious for Ruby and even though I was mostly distant from it, there seemed to be a big appetite for Sorbet there.
seanparsons··on Python developers are embracing type hints
Not ignoring, I just didn't write an essay. In all that time working with TypeScript there was very little that I found to be gradually typed, it was either nothing or everything, hence my original comment. Sure some things might throw in a bunch of any/unknown types but those were very much the rarity and often some libraries were using incredibly complicated type definitions to make them as tight as possible.
seanparsons··on Python developers are embracing type hints
As a static typing advocate I do find it funny how all the popular dynamic languages have slowly become statically typed. After decades of people saying it's not at all necessary and being so critical of statically typed languages.

When I was working on a fairly large TypeScript project it became the norm for dependencies to have type definitions in a relatively short space of time.

seanparsons··on Death to type classes
I'm reasonably versed in Haskell and my response would be that it shouldn't make that much difference to you what they've written in here. I've yet to see any code in the wild using the backpack extension.
seanparsons··on Git-Annex
LFS and git-annex have subtly different use cases in my experience. LFS is for users developing something with git that has large files in the repo like the classic game development example. git-annex is something you'd use to keep some important stuff backed up which happens to involve large files, like a home folder with music or whatever in it. In my case I do the latter.
seanparsons··on JavaScript broke the web (and called it progress)
I think the fact that it's a horrible language is a big contributor to the frameworks being horrible as well. There's all these incidental sacrifices that have to be made which bleed through into everything else, like handling null and undefined.
seanparsons··on Haskell: A Great Procedural Language
I always maintain that this is just familiarity, Haskell is in truth quite a simple language. It's just that the way it works isn't similar to the languages most people have started with.
seanparsons··on Did we lose our way in making efficient software?
Yup, that felt incredible even at the time, let alone now.
seanparsons··on William Adams: English Advisor to the Shogun
Conversely I live in Gillingham, where there's several references to him and his history.
seanparsons··on Haskell is Useless (2011) [video]
Been posted a bunch of times in the past: https://hn.algolia.com/?q=haskell+useless
seanparsons··on Aspect-Oriented Programming
I remember writing a state machine system for a project to replace Windows Workflow Foundation (shudders) using Aspect.Net (IIRC) many years ago and it working but being a faff.

But then I think to something like the bracket function from Haskell: https://hackage.haskell.org/package/base-4.18.0.0/docs/Contr... That's 2 orders of magnitude simpler and doesn't need arbitrary function definitions so a pointcut can be defined against a block of code.

seanparsons··on Setting time on fire and the temptation of The Button
As I now start to wonder how many replies to HN posts are also written by AI systems...
seanparsons··on Virtual Threads Arrive in JDK 21, Ushering a New Era of Concurrency
So how does that make a difference to my point? The title is literally false as multiple other languages have already done it, Haskell in fact has even rewritten the underpinnings at least once the feature has been there so long.
seanparsons··on Virtual Threads Arrive in JDK 21, Ushering a New Era of Concurrency
Well it's not really ushering it in, given that this is what Haskell has had for a decade at least.
seanparsons··on Exercises for understanding Haskell Lenses (2019)
I think most people would find these clearer if they used the functions view/set/etc, rather than the various operators which are just alternatives to those.
seanparsons··on How to Learn Nix
I would say the following for NixOS (which is a distro itself not a way to make a distro):

- I have machine configurations that if say a HDD dies means I can just replace it and be pretty much where I was an hour later from scratch.

- I can update a configuration (even doing the equivalent of a major OS update) without fear as it's possible to just use the old configuration if something is broken.

For Nix in general:

- Can define versioned development environments which aren't awkwardly sandboxed as they are in Docker.

- It's possible to make multi language/ecosystem builds.

- Builds only build what needs building.

- You can build on one machine and ship the build to another as if that machine had built it.

seanparsons··on Features of a dream programming language
It's fine, just disallow jargon like functions, lambdas, addition, concatenation and so on...
seanparsons··on macOS Nix setup: an alternative to Homebrew (2020)
> there is no CLI equivalent to brew install that I am aware of

There is! You use `nix-env` for that by running something like: `nix-env -iA ripgrep`.

seanparsons··on AARD Code, or how Bill Gates finished off the competition
That MBR reference reminds me of the time that OSX just point blank refused to update because I had a multi-boot setup. "It just works!"
seanparsons··on Reflections on Using Haskell for My Startup
I'm not sure where you got the second point from, certainly in my experience it hasn't been a bit issue with Haskell.

The third point is the same with just about every ecosystem in my experience, there are libraries written by big open source contributing companies which are completely dead as far as maintenance. I've even been bitten _this week_ by a JS library which is dead in the water.

seanparsons··on 12 requests per second: A realistic look at Python web frameworks
Depends on if you identify it early enough really and even then halving your app tier costs could be sizable for any company. If you can get some productivity benefits at the same time from say static typing then there's even more reason to switch.
seanparsons··on WTF Python: Exploring and understanding Python through surprising snippets
As an example I recently had someone say that "best practices" are just as good at avoiding the kinds of things a static type system catches. Python seems to be (for whatever reason) a language that creates this kind of ideology with the kind of tropes everyone has heard before.
seanparsons··on WTF Python: Exploring and understanding Python through surprising snippets
I've observed the weird phenomenon that any valid criticism of Python is treated as either some kind of personal attack or because you're a mad static typing ideologue.
Page 1 of 3Next →