Profile cover photo
Profile photo
Jon Purdy
Brilliant for a hopeless fool
Brilliant for a hopeless fool

Jon's posts

Post has attachment
Lately in Kitten
At the turn of the new year, I resolved to work on Kitten every week of 2017, and so far it’s been going pretty well. With the success of This Week in Rust , I thought I’d make a point to continue documenting my thought processes when designing and implemen...

Post has attachment
Arithmetic Types in Kitten
In order to motivate myself to work on my programming language, Kitten , I’ve decided to publish my notes on various aspects of the design as I figure them out. This is partly to solicit comments and drum up interest in the project, but mostly an exercise i...

Post has attachment
“Weird” is intellectually lazy
Saying “X is weird” is equivalent to saying “I don’t understand X, and I blame X for it.” I often have to make this point in discussions of programming languages. I enjoy writing in Haskell, and I’ve taught it to a number of developers. People who are accus...

Post has attachment
Thoughts on using fractional types to model mutable borrowing of substructures
In type theory, a pair is denoted by a product type , with a constructor pair and two projections fst and snd : $mathjax[
\textrm{pair}(a, b) : a \times b \\
\textrm{fst} : a \times b \to a \\
\textrm{snd} : a \times b \to b
]$ These projections are destruc...

Post has attachment
When I walk down the streets of San Francisco, people sometimes ask me for money. And if I have the time, as I almost always do, I stop and talk with them about what brought them to where they are. And if I have the cash, as I almost always do, I give it to...

Post has attachment
Don’t say what you mean.
In conversation, I used to think it was good to say what you meant. I thought doing so would help me be understood. But I learned very quickly when tutoring computer science students in college that this strategy does not work in general. The real challenge...

Post has attachment
Consent is important. Don’t oversimplify it.
Rape happens. It’s an awful reality, which a lot of good people are working very hard to fix. That starts with teaching people about consent and why it’s essential to healthy sexual interactions. But a lot of explanations of consent, while undeniably good a...

Post has attachment
Why I Don’t Use Syntax Highlighting
When I’m programming, and a fellow programmer looks over my shoulder, the first thing they invariably say is some variation of “Wow, no syntax highlighting? I can hardly read that.” Ever since I started programming almost 15 years ago, I have preferred very...

Post has attachment
A Simple Argument for Immutable Objects
You have an integer value 4 stored in the variable x . int x = 4; You change x . ++x; In doing so, you have not changed 4 into 5 , you have merely changed x to refer to the value 5 . Now suppose you have a class. class Person {

}; Instances of this clas...

Post has attachment
Caffeine vs. Nicotine
I had been experiencing some pretty severe anxiety off and on for a few months, and I was aware that my love of caffeine was exacerbating this anxiety, so I decided to look for a stimulant that would help me focus, while not worsening my anxiety. I eventual...
Wait while more posts are being loaded