Одной из основных причин, по которой старая работа над PHP 6 была остановлена, была внутренняя сложность, которую она принесла, и объем работы, которую почти никто не понимал.
Немного истории: реализация Unicode в PHP 6 была разработана с учетом потребностей более крупного пользователя PHP и пыталась сделать Unicode «правильным». После некоторой оценки основной разработчик поддержки PHP для поддержки Unicode решил добавить новый тип строки, который внутренне является Utf-16, и разрешить использование различных кодировок в разных местах. Таким образом, код может быть написан в одной кодировке, выходные данные могут использовать другую кодировку и «операции runtme» в другой кодировке. Причиной выбора UTF-16 было то, что работа должна быть основана на ICU livrary, которая использует UTF-16, и было обнаружено, что это кодирование позволяет быстро выполнять обычные строковые операции, в то время как разговоры между utf- и utf-16 относительно дешевы. , Все идет нормально.
Теперь следствием этого является, прежде всего, введение нового типа строки. Внутренняя система типов PHP до того времени имела несколько типов (NULL, bool, int / long, float / double, string, array, resource, object), и у большого количества кода были некоторые предположения на этот счет. Помимо таких допущений, все функции, работающие со строками, и их много, должны оцениваться индивидуально, и должно быть решено, как обрабатывать кодировки. Должны ли они работать с двоичными или юникодными строками? Если требуется преобразование, какую кодировку следует использовать и т. Д., И это большая работа, а в некоторых случаях довольно сложно сделать правильно. Кроме того, внутренние API стали довольно сложными, так как большинство ключевых API в PHP получили версии для двоичных строк (старые), а затем часто версии для строк, закодированных во время выполнения,
Из-за этого многие разработчики споткнулись о простоте, стали раздражаться из-за utf-16, и им не нравился тот факт, что это увеличило бы использование памяти более чем вдвое и потратило много времени на преобразование строк, ломая большинство существующих приложений. Итак, PHP, движимый добровольцами, все меньше и меньше разработчиков работали над ним, и другие вещи накапливались, и участники становились несчастными, и в конце концов от этого пришлось отказаться.
Что может принести будущее? - Происходит медленная эволюция, когда все больше и больше вещей в PHP строятся вокруг utf-8. Не слишком хорошо с пользовательским типом и форсированием всего, и в настоящее время разработчики не заинтересованы в том, чтобы трогать это горячее железо. Можно надеяться, что у кого-то есть хорошее предложение, чтобы оно работало хорошо, но в настоящее время «все» убегут, если только услышат слово. :)