Jacques Carette Profile picture
Computer scientist. Programmer specializing in weird languages. ex-mathematician. Loves cooking. Dabbles with machine learning and game design.
Feb 23, 2022 4 tweets 1 min read
Recent tweets reminded me of a building thought of why I (now!) dislike set theory so much: the 'interface' to a set is very poor. Lots of different ways to build sets, but very, very few ways to inspect them. If you look at how mathematicians work, the 'static semantics' of their work is there (else nothing would work), but it isn't *in* their sets at all, it's all at the meta level. You have to remember that something is a group, you can't get a random set handed to you and "figure out" that it's a group. (I mean a set with all the data for the
Nov 9, 2021 10 tweets 2 min read
A lot of (good) PL design goes:
1. what can you (now) say?
2. what can you (now) omit?
3. what *should* you say?
4. what do you actually want to say?
(there's more, but I'm exploring the linguistic side here) Just worrying about 1. leads to operational semantics. Thinking about 2 naturally leads to inference and synthesis. Thinking about 3, especially in the context of 1 and 2, leads you to DSLs, invariants, contracts and more. 4 open all sorts of doors (details later).
Jan 30, 2021 23 tweets 6 min read
Thread on the death and rebirth of symbolic computation.

Like @Stephen_Watt I believe that there is a non-trivial difference between Symbolic Computation and Computer Algebra. He's given some nice talks about that, but seems to have never written up a proper paper about it. 1/ [Thread inspired by some recent discussions with @corless_rob and @3j0hn ]. Roughly speaking, Computer Algebra is when you have adequate representations of algebraic objects. In CS parlance, when your denotational semantics is a bijection, when viewed properly. 2/
Oct 27, 2020 11 tweets 2 min read
I've looked at so many files of potential graduate students with a CS degree and all they know is Java, Python and C++. In effect, they know one paradigm: procedural. [You can't really see what OO is from those languages alone.] 1/ They were never given the chance to see the true beauty of programming! Not that you can't do beautiful things in those language, but without seeing the full field and range of possibilities, it is not really possible to properly see and appreciate it. 2/
Apr 17, 2019 14 tweets 3 min read
Note that floating point isn't math. It's a weird method of approximation that was invented because doing it 'right' was too slow on "early" computers. People are figuring out that many of the underlying design compromises might have been exactly right then, but not so now. Instead, pick a decent textbook on Calculus. I'm partial to Spivak's brilliant tome, but Stewart's will do too, if you insist. Then try to use a computer to help you.
First most current programming languages will not be helpful at all, at least not without a huge amount of work.