Rethinking Database Programming