3 ms·
Quake is one of the most highly-tuned, quality, production high-performance software, and it runs on tons of platforms from Linux, to Windows, to even an iPad.
by coffeemug 15y ago
Quake is one of the most highly-tuned, quality, production high-performance software, and it runs on tons of platforms from Linux, to Windows, to even an iPad. High performance software is not incompatible with portability.
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.
- mythz 15y agoAdding a layer of cross-platform abstraction (and forgoing platform-specific features) will degrade performance and increasing the size / complexity of a project does effect stability.
- tobiasu 15y agoAnd I thought there are many forks of Quake for each of the platform? Is there are "one to rule them all" distro? 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.
- buff-a 15y agoQuake? This quake? http://en.wikipedia.org/wiki/Quake_(video_game) http://en.wikipedia.org/wiki/Quake_(video_game) 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.
- bad_user 15y agoBuilding 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.