© 2020 Strange Loop
Network programming is often taught and practiced in C, but it doesn't have to be. We can build better network stacks -- ones more expressive, intuitive, and robust -- in other languages! There are many non-C network stacks in the world, and we can learn a lot from the diversity of solutions for common problems.
How can we handle side effects like cache entry aging and connection timeouts when using immutable data structures? How can strong types or GADTs help us express validation logic in packet inputs? Many languages have libraries for property-based tests -- let's use them to go beyond the admittedly-useful property "doesn't crash on invalid input".
Mindy Preston is a research assistant at OCaml Labs in the University of Cambridge, where she works on MirageOS. She enjoys packets, memory safety, petting cats, small and strange ARM boards, riding bicycles, and deleting great big gobs of code.