Introducing Exray
This past weekend I had the itch to build a tool for inspecting the intermediate values of subexpressions in a more complex expression. The result is Exray.
I didn't really need this tool. But next semester I'm teaching a class on developing software with AI, and I need projects that I'm willing to share or co-develop with AI. I have been too selfish to share my other projects, just as I have been unwilling to let someone else raise my children.
In some ways, sharing is hard. I really like programming and am in no rush to develop faster than I can think. At the same time, I have to admit that there are parts of software development that I do not enjoy. These parts are either monotonous (like implementing 20 subclasses of BinaryOperator based on an example) or they require particular knowledge that I do not currently have (like how to write a type signature for a class literal in TypeScript). In one case, I think before using it. In the other, I think after using it. Either way, I'm thinking.
There are been a number of occasions where AI has showed me a technique that I went on to use in other situations in which I wasn't using AI. I am using it to develop myself as much as software.
Interestingly, even though GitHub Copilot was a great help, I still feel like Exray is mine.