@arjun Okay wait I'm sorry but I just have to ask... @ayaankazerouni tells me that you're part of a team that has implemented mutation testing for Racket... in Python? Say it ain't so! Or, perhaps more rationally: perhaps I'm mistaken, or perhaps there's a good idea why writing this in python makes more sense?

@jbclements @ayaankazerouni I didn’t write the code, and I’m quite happy to have people choose whatever tools they wish to use. I deliberately don’t give opinions on choice of PL.

@jbclements @ayaankazerouni It is great to see that some others are interested in applying mutation testing to code written in Racket. If you have not seen the pre-print, you can read more about our work here:

I can't tell if the comment about using a language besides Python is serious, or a joke - but this is a project that we are quite actively continuing to work on. If your comment is serious: would you please explain why it would make more sense for us to choose a different language besides Python? Would it help you to provide a balanced answer for us to share more about the requirements for deploying and maintaining this tool, other than the fact that it mutates code that is written in Racket?

@JonBell @ayaankazerouni Thanks for your response! I can see that there are probably lots of good reasons for choosing Python for this project; it's also one that I think Racket would be a good choice for, and as a fairly enthusiastic zealot for the Racket language, I'm not shy about highlighting opportunities for Racket development.

You also ask why I think it would make more sense to write part or all of this question in Racket, and I'll briefly mention two things: first, parsing Racket using Racket is incredibly robust; it's very unlikely that the Racket parser will lose the ability to parse Racket code, even if the language changes. Indeed, the Racket parser parses not just Racket, but all of the related languages; they all expand into the same core syntax language (Typed Racket, Rhombus, et cetera.) Perhaps you're already using the Racket parser, and I just missed it?

My second reason is much more basic; I think that Racket is a more robust and reliable language than Python, and that code written in Racket is more likely to be correct and to continue to work correctly.

Again, though: it's not my intent to ruffle any feathers or hurt any feelings, and you're certainly free to ignore my comments!

@shriramk @jbclements @ayaankazerouni Yeah. This is the direction that we are likely moving in the short term future (redoing the parser). A mutation testing tool that supports multiple languages is a medium-term goal. Right now we are supporting completely different tools for C, JS/TS, Java, and now Racket :(

Sign in to participate in the conversation

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