2 ms·
It's also worth remembering that developing cross-platform between windows and literally anything else (excepting maybe the xbox? never owned one) is a nightmar
by ForTheKidz 2y ago
It's also worth remembering that developing cross-platform between windows and literally anything else (excepting maybe the xbox? never owned one) is a nightmare. At best managed code will handle some of it, but Windows has many primitives that operate fundamentally differently than other desktop platforms. That alone will ensure I'll never touch that market except potentially as a secondary effort if a product takes off. (I also haven't had to use windows for anything since like 2009, which helps.)
- wtallis 2y agoMy favorite example of this is to look at all the hoops Wine has to jump through to get decent performance for locks. Apparently many developers writing for Windows default to using a locking primitive that can wait for a list of locks (specified by handles), and those locks can be shared between processes. That primitive frequently gets used even for waiting on a single lock confined within a single process, but Wine usually still has to go through the incredibly expensive emulation to handle the general case.
- tomnipotent 2y agoThe NTSYNC driver lands this month with Linux 6.14. I've been following the Wine MR the last few weeks eagerly waiting for it. Especially for Nvidia users this should help close some of the performance gap between Windows/Linux while the GPU drivers catch up. https://gitlab.winehq.org/wine/wine/-/merge_requests/7226 https://gitlab.winehq.org/wine/wine/-/merge_requests/7226
- robocat 2y ago> and those locks can be shared between processes. That primitive frequently gets used even for waiting on a single lock confined within a single process And why not use a cheap primitive and if a lock is detected to be shared between multiple processes then upgrade it to the "expensive emulation"?