On Portability
Portability is a powerful term in the development underworld. It is difficult to pin down an accurate definition because it comes in different forms, each with their own trade-offs. It is generally understood to be an indicator of something being particularly effective in a cross-platform application or context, but may also refer to a more nebulous property of digital standards, protocols and patterns which are well-understood by machines (and some humans).
For example:
- S-expressions are portable because they are simple
- XML is portable because it is standardized
- LLVM is portable because it is able to compile optimized code for many different host CPUs
- Electron is portable because it allows developers to build cross-platform apps from the same code, resulting in less code which is easier to maintain
All of these are tools which may be employed by developers and ultimately increase exposure of the things we build, and this exposure can translate into more users.
exposure = more users = ??? = profit
No one will care about your thing if they can't use it so baking in portability is often a good idea. In many markets it's difficult to even compete if you don't support all the platforms your competitors do. Naturally, we ought to leverage portability in order to increase exposure and capture users.