Судя по статье (на которую ссылается вики) Redis портируется под винду сотрудниками Microsoft, а не самими разработчиками. Так что это не отменяет факта о ненужности винды на серверах :)
Ни разу не писал на PHP, но почему-то кажется, исходя из наличия метода password_get_info(), что в $hash хранится алгоритм, и эти сведения используются в password_verify
Например Ejudge — для проверки задач в ACM-стиле (то есть дается файл с входными данными, решение участника проверяется на различных тестах и пишет ответ в файл, ваш чекер сверяет его ответы из файла с эталоном по вашим алгоритмам)
В моем уютном мире я пользуюсь 64-битной Ubuntu уже 4 года, весь софт за некоторым проприетарным исключением все это время стоял 64-битный. Даже более того, Debian официально поддерживает не только такие распространенные архитектуры как x86 и amd64 (начиная с 2005), но и такие как powerpc (2000), armel (2009) и sparc (1999).
У Microsoft (насколько я себе представляю) и у людей пишущих под винду никогда не было особого понимания, что существует что-то кроме традиционной x86 архитектуры, поэтому часто происходили ошибки вида присваивания указателя к целому числу, что на 64-битных системах приводило к неопределенному поведению. Возможно еще возникали проблемы из-за того, что в функции люди передавали по указателю что-то вроде long, вместо DWORD, что в принципе работало, но не соответстовало документации. Далее, до совсем недавнего времени в Windows были большие проблемы с 64-битными системами сборки, еще пару лет назад 64-битного рабочего mingw фактически не было, MSVS Express включал (а может еще и включает, не знаю) в себя только 32-битный компилятор и т.д… По поводу win-специфичных 64-битных проблем, я думаю, Andrey2008 смог бы рассказать лучше чем я.
Но все эти проблемы не касаются Unix/Linux/MacOS миров. Оригинальный Unix и GNU изначально писались с пристрелом на различные платформы. Linux еще с 1995 года стал поддерживать отличные от x86 платформы (Alpha, SPARC и MIPS). MacOS за свою историю уже пережила 3 переезда (PowerPC -> x86 -> amd64).
Так это не проблема языка, а отсутствие знаний (в частности стандарта и межпроцессорных особенностей). Если писать без нарушения стандарта (там где нужно гарантировать размер — использовать int*_t типы), использовать сетевой формат для передачи чисел (между PowerPC/Arm/x86), то никаких проблем не может быть в принципе.
А в чем хоть какая-нибудь сложность в написании кода под разные процессорные архитектуры на Си/С++? Этот язык изначально создавался, чтобы как раз таких проблем не было.
А вас не напрягало использование XML внутри бинарных данных, запакованных внутри других бинарных данных?) В частности так устроены XTraz'ы (через которые шлются x-статусы).
Многие Jabber библиотеки пишутся с использованием XPath, где документом является каждая отдельно пришедная станза с сервера, все отлично работает и парсится.
А Redis все таки — сторадж, пусть и для небольших объемов данных.
Легко, вот пример на чистом C++ без сторонних библиотек :) Даже студия, вроде, уже научилась так делать.
Так почему же это не hash_map?
У Microsoft (насколько я себе представляю) и у людей пишущих под винду никогда не было особого понимания, что существует что-то кроме традиционной x86 архитектуры, поэтому часто происходили ошибки вида присваивания указателя к целому числу, что на 64-битных системах приводило к неопределенному поведению. Возможно еще возникали проблемы из-за того, что в функции люди передавали по указателю что-то вроде long, вместо DWORD, что в принципе работало, но не соответстовало документации. Далее, до совсем недавнего времени в Windows были большие проблемы с 64-битными системами сборки, еще пару лет назад 64-битного рабочего mingw фактически не было, MSVS Express включал (а может еще и включает, не знаю) в себя только 32-битный компилятор и т.д… По поводу win-специфичных 64-битных проблем, я думаю, Andrey2008 смог бы рассказать лучше чем я.
Но все эти проблемы не касаются Unix/Linux/MacOS миров. Оригинальный Unix и GNU изначально писались с пристрелом на различные платформы. Linux еще с 1995 года стал поддерживать отличные от x86 платформы (Alpha, SPARC и MIPS). MacOS за свою историю уже пережила 3 переезда (PowerPC -> x86 -> amd64).