4 ms·
> sure, you can compile an application, but if you want to target everyone, you have to do it on at least 3 architectures (linux, mac, windows) Is that really
by ScottFree 7y ago
> sure, you can compile an application, but if you want to target everyone, you have to do it on at least 3 architectures (linux, mac, windows)
Is that really a big deal, though? From what I understand (and I could be wrong, so correct me if I am), most of the headaches involved in multi-platform development is the OS specific UI. Video games, for example, don't find porting to multiple architectures all that challenging because 1) they design for it and 2) they're not expected to adhere to OS UI guidelines.
- runevault 7y agoGames are also expected to be battery pigs, so doing 60+ FPS GPU rendering instead of however native UIs are rendered helps. Everyone certainly COULD just write their apps as 2d OpenGL but laptop battery life would suffer for it.
- billti 7y agoIt really depends on how complex your code is and what you're targeting. For example, the V8 JavaScript engine has a ton of ifdefs depending on OS (Windows, Mac, Linux, Fushia), bitness (32 or 64), chipset (ARM, ARM64, PPC, x64, etc.) and combinations thereof. For example, see some of the defines in https://github.com/v8/v8/blob/master/src/common/globals.h#L154 https://github.com/v8/v8/blob/master/src/common/globals.h#L1... and their uses throughout the codebase. EDIT: I forgot Android, and all the compiler specific flags. (https://github.com/v8/v8/blob/master/include/v8config.h https://github.com/v8/v8/blob/master/include/v8config.h is probably a better reference).
- em-bee 7y agoat this point it is mostly a problem of perception, and apparent complexity. portability is not the problem, but you still need to learn how to package for each different system, you have to maintain at least 3 sets of build-to-package instructions and understand each ecosystem. for example, i only develop on linux. yet, packaging for all linux distributions is still a hurdle. why can't i just compile and upload to my website? i have never packaged for windows or mac, and the thought having to learn those alone makes me turn away in disgust. i am probably wrong, and packaging for both is way easier than i think. but that's exactly the point of the problem being based on perception and apparent complexity. in order to package for all three systems, i need to first of all want to do that. and i find that i don't care enough to want it.