Una de las razones principales por las que se detuvo el antiguo trabajo de PHP 6 se debió a la complejidad interna que traía y la cantidad de trabajo que hacer, que casi nadie entendió por completo.
Un poco de historia: la implementación de Unicode de PHP 6 fue diseñada por la necesidad de un usuario PHP más grande y trató de hacer Unicode "correctamente". Después de alguna evaluación, el diseñador principal del soporte to-be-Unicode-PHP ha elegido agregar un nuevo tipo de cadena que internamente es Utf-16 y permitir que se usen diferentes codificaciones en diferentes lugares. Entonces, el código podría escribirse en una codificación, la salida podría usar una codificación diferente y "operaciones de ejecución" alguna otra codificación. La razón para elegir UTF-16 fue que el trabajo debería basarse en la biblioteca de la UCI que usa UTF-16 y se descubrió que esta codificación hace que las operaciones de cadena comunes sean rápidas mientras que la conversación entre utf- y utf-16 es relativamente barata . Hasta aquí todo bien.
Ahora la consecuencia de hacer esto es ante todo la introducción de un nuevo tipo de cadena. El sistema de tipos interno de PHP hasta entonces tenía algunos tipos (NULL, bool, int / long, float / double, string, array, resource, object) y muchos códigos tenían algunas suposiciones sobre este caso. Además de tales supuestos, todas las funciones que operan en cadenas, y hay muchas de ellas, deben evaluarse individualmente y debe decidirse cómo manejar las codificaciones. ¿Deberían funcionar en cadenas binarias o cadenas unicode? Si se requiere una conversión, qué codificación se debe usar, etc., y esto es mucho trabajo y, en algunos casos, bastante complicado de hacer bien. Además, las API internas se volvieron bastante complicadas, ya que la mayoría de las API clave en PHP obtuvieron versiones para cadenas binarias (la antigua) y luego a menudo una versión para cadenas "codificadas en tiempo de ejecución",
Durante el proceso, muchos desarrolladores tropezaron con la complejidad, se molestaron con utf-16 y no les gustó el hecho de que esto duplicaría el uso de la memoria y pasaría mucho tiempo convirtiendo cadenas y rompiendo la mayoría de las aplicaciones existentes. Entonces, al ser PHP impulsado por voluntarios, cada vez menos desarrolladores trabajaban en él y otras cosas se acumulaban y los contribuyentes se volvieron infelices y al final tuvo que ser abandonado.
¿Qué nos depara el futuro? - Está ocurriendo una evolución lenta que cada vez más cosas en PHP se construyen alrededor de utf-8. No de una manera fuerte con un tipo personalizado y forzando todo y actualmente los desarrolladores no están motivados para tocar este hierro caliente. Uno puede esperar que alguien tenga una buena propuesta para que funcione bien, pero actualmente "todos" huirán si solo escuchan la palabra. :)