Redis's performance (compared to traditional databases) comes from the fact that the data structures are maintained in memory, which turns out to be a really good tradeoff when your data set is small. That has nothing to do with POSIX, or unix. The point of contention is the fact that Windows does not have an efficient implementation of fork, which enables copy-on-write semantics. Redis uses that to periodically dump data to disk without blocking the original process. This is a really clever use of a feature unique to unix, but one man's cleverness is another man's limitation.
Building cross platform software really forces you to examine your architectural decisions, learn about other platforms (and by extension, the limitations of your own), and your software always ends up having a better architecture when you're done with the porting process (in addition to being usable by more people).
@antirez's arguments regarding complexity, additional testing, etc. make total sense, but your performance/stability argument doesn't hold water.
What a wonderful argument in support of @antirez's suggestion that other people port and maintain it. In every case each port was done after the fact, into its own project. They may since have been reintegrated back as part of the source release (5 years later). But the core team certainly didn't do it. Carmack ported Quake to GL in '96 and IIRC that was used for a linux port. Again, not on main branch, not being committed while the team was working Quake 2.
I've made cross platform video games and I don't find your opinion remotely credible. I've also ported video games from one platform to another. A game that was highly optimized for one platform required a complete rewrite of the graphics engine for the other. Companies like Naughty Dog and Insomniac, that can focus on a single platform, have a much easier time of it.
Also it's not that hard to #ifdef 42 graphic backends to a dead code base. It obviously becomes a nightmare as soon as you want to extend and evolve the core code.
Building cross platform software really forces
you to examine your architectural decisions
Or it makes you to reevaluate your priorities and question yourself if you really want a half-baked multi-platform implementation, that tarnishes the brand and negates the advantages you had - like performance, agility and simplicity.Quake has different implementations for different platforms.
@antirez wants to take advantage of the underlying POSIX platform and as such Redis takes advantage of unique features only available on *nix. His point is merging the patch increases the size and complexity of the project (whilst reducing stability) - detracts from his mission of making Redis run exceptionally well on POSIX platforms.
He also highlights that Windows/.NET shops like StackOverflow have no problem setting aside linux servers to run host Redis servers in production.