flâneur

Two Kinds of Programs: Closed Worlds and Open Worlds – Sturdy Statistics

blog.sturdystatistics.com · 1,477 words · saved by 1 readers

The first category includes my work in astrophysics and plasma physics, along with the probabilistic models we build at Sturdy Statistics. The second category includes the infrastructure around those models: APIs, web services, data ingestion pipelines, and analysis platforms. Though it’s obvious with hindsight, it took me a while to realize that these two kinds of systems live under very different constraints, and they reward entirely different programming styles. When solving physical equations (extended magnetohydrodynamics in my astrophysics research) or statistical ones (probabilistic graphical models at Sturdy Statistics), the program is essentially an executable version of a mathematical theory. In such systems: In other words, the model’s structure is predetermined. The program exists to faithfully implement a set of mathematical relationships. As a result, formal correctness is everything. Mistakes in this sort of code are subtle and very difficult to find. A wrong index or an

Over the years I’ve found that I write two distinct kinds of software: Programs that solve equations, and Programs that move information around The first category includes my work in astrophysics and plasma physics, along with the probabilistic models we build at Sturdy Statistics. The second category includes the infrastructure around those models: APIs, web services, data ingestion pipelines, and analysis platforms. Though it’s obvious with hindsight, it took me a while to realize that these two kinds of systems live under very different constraints, and they reward entirely different…

saved by

related reading