24 ms·
The author frames this as a contest between two architectures: either spend a lot of effort building custom developer tools, or repurpose the compiler as a serv
by brzozowski 6y ago
The author frames this as a contest between two architectures: either spend a lot of effort building custom developer tools, or repurpose the compiler as a server for multiple clients. Both approaches have their tradeoffs: the first, as the author mentions, violates DRY [1]. The second violates the Unix philosophy [2].
However, there is a third way. Both developer tools and compilers can be seen as special cases of a much simpler and more general pattern known as a graph database [3, 4, 5].
[1]: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
[2]: https://en.wikipedia.org/wiki/Unix_philosophy https://en.wikipedia.org/wiki/Unix_philosophy
[3]: https://www.youtube.com/watch?v=WxyyJyB_Ssc https://www.youtube.com/watch?v=WxyyJyB_Ssc
[4]: https://petevilter.me/post/datalog-typechecking/ https://petevilter.me/post/datalog-typechecking/
[5]: https://arxiv.org/pdf/2004.03082.pdf https://arxiv.org/pdf/2004.03082.pdf