Spatial languages: Writing code in 2D