While C/C++ is deliberately designed to not be portable from the get go. Library writers then have to spend quite some effort, in order to make sure their libraries will be portable.

Cosmos is designed to at least facilitate portability, in the usual ways we have come to expect from other modern languages. Which most importantly means that all integer, float and character types are fixed sizes, and consistent alignment across all platforms.

However, Cosmos still facilitates the ability to tailor code to particular platforms, when performance is a necessity. This is possible in part by means of using the word types, and by means of inline assembly.

What's probably more profound is, that Cosmos is meant to also work on embedded systems, with as little as a few kilobytes of memory, and very limited CPU power.

While these goals certainly steers the design choices, Cosmos is still intended to capable and useful at a higher level. In fact, having highly efficient core functionality, leave you with more CPU time, to spend on even more convenience, and ultimately better productivity for the software developers.