Saying Linux has "locked down" software because there is software that only runs on Linux is like saying I'm locking all my code to x86 because I haven't gone to the effort of cross-compiling it for other architectures. In the case of most unported Linux software, all it would take is a bit of grappling with Autoconf or CMake or whatever. Even .Net was designed by Microsoft to be highly portable, they just didn't go to the trouble of porting it themselves. You can mention clang/llvm and cups, but neither of those projects were started by Apple, only acquired by them later. If they had locked them down, the open source community would have just forked an earlier version like they did with Solaris and OpenOffice when Oracle bought Sun. I don't know any project Apple has created from scratch by themselves that isn't closed-source and hardware-locked. It's kinda dumb really, because even MS releases Office for OS X -- not out of some kind of goodness, but because people with Macs have money that they probably aren't spending on Office for Windows.
|It includes low-level primitives such as types, flow control, and operators|
Types, flow control and operators are "low-level" now? Assembly language doesn't have "types", types are an abstraction; assembly languages have numbers, smaller numbers and bigger numbers. Most CPUs don't really even distinguish between signed and unsigned integers. It does have flow-of-control, in that the CPU is able to execute one instruction and then execute a different one, but that's not quite the same as if/while/for/etc., and I doubt Swift's flow-of-control works by modifying a register (directly). As for operators, assembly doesn't really have those either (except for pre-computed offsets). It has operations
, but they're not quite the same.