Check bird site because why not I still follow some open source maintainers there and... top of the feed is some racist bullshit.

After digging into speeding up recompiliation on large Haskell projects I've come to realize that I still hate build systems and that Nix and Bazel and all that don't make it any easier.

And like many nerds I now have this itch in my brain that wants to fix it.

Is it just me or is writing networking code in Haskell a huge pain in the ass compared to the plain C APIs?

Why do I lust after drum machines and synthesizers? And portable consoles? And tape machines?

The reason it gets under my skin is that at a certain scale, because its a whole programming language, you'll end up with your own custom build tools built in nix and again... only the experts in nix who've been working on this code base will know how it works: there's no way to google it, no quick start conventions you memorize once and can re-use from project to project.

Less software, less code please. I beg you.

Show thread

And you might end up with a half-baked, bug-ridden implementation of half of common lisp besides.

Show thread

zig does this too and I've committed this sin in the past... but I've come to the conclusion that configuration shouldn't be turing complete or programmable.

Declarative expression-oriented config languages with some kind of macro/expansion/evaluation seems fine.

Not a whole programming language.

The problem is that software expands to fill the space you give it. There will come a point when your nix configuration is only understandable by nix experts. It will be utterly incomprehensible to anyone else. And when your nix configuration gets to that size you now need to convince developers to learn a whole other programming language.

Show thread

The thing that annoys me the most about nix is that it's a whole ass programming language. And it's not even good.

The desire to blast off from this world to write types and proofs is strong. “But effects and stuff,” yes yes evaluating programs is cool and all.

Property testing. In a toot:

Property = a mathematical theorem about relationships between objects in an algebra.

Testing = generating examples of an equation to see if the theorem holds

You might have a property to test if, when writing your library, you find yourself making statements like, "This must always hold for this to work." Where "this" is probably the property you want to test: a relationship between some data and the functions that operate on it: an algebra!

You are not writing a property test if you're only using the random generators to create inputs your program and checking if you end up with the right database state.

If you find yourself writing a program where a failure to hold that property would cause harm or damage then you might something more: a model checker or proof assistant.

This message has been brought to you by the Concerned Engineers Tired of Slow Flaky Tests.

Oh yay, the libertarian extremists have kicked off their PoS fork. Because they really care about the environment and all the damage they've already done they're also going to pay reparations to help close the coal plants and communities they've destroyed in the process.

Ok, I made a game with JS that fits into less than 13k. Now back to nicer programming languages. Gotta slum it every once in a while.

info/opsec has come down to trusting the whitehat malware to protect your machines from the blackhat malware.

Do you write code in a programming language and not a hardware ISA? You’re using abstraction. Even if you use that hardware ISA directly you’re using an abstraction. “Avoid abstraction,” is a common piece of advice in some programming circles. I think they mean, “avoid indirection.” Our job and practice is entirely about building abstractions.

Imagine an Elon fan interviewing Elon. Now imagine a crypto fan interviewing Vitalik.

That’s a good chunk of what working in tech is like.

That face when shitty people break up the band before it even starts.

It's almost as if the tragedy of our modern life is reverting my brain back to simpler times. I'm skateboarding again, recording music on 4 track tape machines, playing games on original GameBoys.

My favourite thing lately has been the random general anxiety about everything from being too old to be making music to wondering if civilization is collapsing.

Rick rolled my audience tonight. Streamed working on my js13k game entry instead of Haskell. 🤣

Show older
types.pl

A Mastodon instance for programming language theorists and mathematicians. Or just anyone who wants to hang out.