The emergence of new computing systems, like cloud computing, blockchains, and Internet of Things (IoT), replaces the traditional monolithic software hardware stack with a distributed heterogeneous model. This change poses new demands on the programming languages for developing such systems: compositionality, allowing decomposition of a system into smaller, possibly heterogeneous parts and composition of the individually verified parts into a verified whole; security, asserting end-to-end integrity and confidentiality; quantitative reasoning methods, accounting for timing and probabilistic events; and, as a cross-cutting concern, certification of asserted properties in terms of independently verifiable, machine-checked proofs.