Re:C++ and the Culture of Complexity (2013)
by pjmlp on Wednesday January 31, 2018 @09:32AM
(#16274074)
> Win32 or the interfacing is not seamless
Well then Rust, D, Swift, Go, Rust, Haskell, OCaml are not native by that measure.
C# integration with Win32, COM and UWP (aka COM reborned) is painless comparing with any of them.
Re:C++ and the Culture of Complexity (2013)
by gpderetta on Wednesday January 31, 2018 @09:46AM
(#16274188)
I think Rust and D have seamless integration with C style ABIs. Swift is native on iOS. Haskel and OCaml have, as far as I understand, painful FFIs and a relatively heavy runtime so I wouldn't call them native.
edit: to be clear, using 'compiles to object code' as the definition of Native, is both a misuse of the word, and meaningless as it is a implementation detail that can change easily and bound to be obsolete quickly.
I would say that the C family languages are traditionally native of most operating systems [1] as they are polyglot and can directly speak whatever C ABI dialect is used there; they also work with the native platform tools.
C# is really native of the .Net platform and although it can be AoT compiled it either can't talk directly with Win32 or the interfacing is not seamless. Also it has its own set of tools.
Android and iOS are interesting because although they are clearly unix derivatives, the unix interface is not the primary interface; so arguably C and C++ are not really native there while Java and ObjectiveC/Swift respectively are.
[1] Or to be fair, of unix and any operating system that can be made to look like unix (Windows).