Let's Prove Leftpad; Content Aggregation
Hi everyone!
First of all, I published a new blog post. It's an explanation of my Let's Prove Leftpad project. Give it a read!
Now because I can't in good conscience send a one-line newsletter, here's a bit more motivation for the post and the project. The post is entirely inspired by this tweet:
A tip for writing more: expand your definition of completing a project (any project, no matter how small) to include writing a blog post (or README or similar) that explains that project
— Simon Willison (@simonw) October 6, 2022
(Man I'm gonna miss Twitter)
The broader motivation for the project is that I'm a big believer in the value of aggregation content. Doing research into a field means comparing a lot of different things in that field. I mean, how do you know the best tool for the job if you don't know the available tools for the job? But to compare a lot of different things you need to find a lot of different things and then normalize them, which are both difficult and time consuming processes.
If someone aggregates all that information in one place, though, you don't need to do any of the finding or normalization! You can just jump right to the comparison part. This encourages a lot more people to actually do the comparisons. The best part is once you have an aggregation, people will be inspired to contribute new things to it. So it encourages new developments in the topic you aggregated.
Some other aggregations I like:
- Dimensional Analysis in Programming Languages: How different programming languages represent units of measure, like how you multiple kilograms and meters but can't add them.
- Literature review on the benefits of static types: Reviews of a bunch of different empirical papers on static type effectiveness, mostly skeptical. A big inspiration for why I got into studying Empirical Software Engineering!
- TodoMVC: An aggregation of frontend frameworks all on the same problem. Also a good example of how aggregation supports new innovations: Quickstrom used the projects as a testing benchmark, discussed here.
I generally don't like Awesome Lists of Awesome, because they don't provide any more information on the collection. I also don't like "top fifteen plugins for FOO" because they rarely are more than copypasting the pitch for each plugin. To be a good aggregation the author needs to do work; all good aggregations are also curations.
Anyway, that's why I decided to aggregate FM proofs. If I was given one programmer-year to improve our field as much as possible, I think "producing a wide variety of aggregations" would be a great way to spend it.
Wait, did I just reinvent the think tank? Dang
If you're reading this on the web, you can subscribe here. Updates are once a week. My main website is here.
My new book, Logic for Programmers, is now in early access! Get it here.