Data-centric programming languages