Jednym z głównych powodów zatrzymania starej pracy PHP 6 była wewnętrzna złożoność, którą przyniosła i ilość pracy do wykonania, której prawie nikt nie rozumiał.
Trochę historii: implementacja Unicode w PHP 6 została zaprojektowana przez potrzebę większego użytkownika PHP i próbowała zrobić to poprawnie. Po dokonaniu oceny główny projektant PHP, który ma obsługiwać Unicode, zdecydował się dodać nowy typ łańcucha, którym wewnętrznie jest Utf-16 i umożliwić stosowanie różnych kodowań w różnych miejscach. Tak więc kod może być zapisany w jednym kodowaniu, dane wyjściowe mogą wykorzystywać inne kodowanie, a „operacje runtme” inne kodowanie. Powodem wyboru UTF-16 było to, że praca powinna opierać się na jednostce ICU, która używa UTF-16 i stwierdzono, że to kodowanie sprawia, że wspólne operacje na łańcuchach znaków są szybkie, a konwersja między utf- i utf-16 jest stosunkowo tania . Jak na razie dobrze.
Teraz konsekwencją tego jest przede wszystkim wprowadzenie nowego typu łańcucha. Wewnętrzny system typów PHP do tej pory miał kilka typów (NULL, bool, int / long, float / double, string, tablica, zasób, obiekt) i mnóstwo kodu miało pewne założenia, że tak jest. Oprócz takich założeń, wszystkie funkcje działające na ciągach znaków, a jest ich wiele, należy oceniać indywidualnie i należy zdecydować, jak obsługiwać kodowanie. Czy powinny działać na ciągach binarnych lub ciągach Unicode? Jeśli wymagana jest konwersja, które kodowanie należy zastosować itp. I jest to dużo pracy, aw niektórych przypadkach dość skomplikowane, aby zrobić dobrze. Ponadto wewnętrzne interfejsy API stały się dość skomplikowane, ponieważ większość kluczowych interfejsów API w PHP ma wersje dla ciągów binarnych (stary), a następnie często wersję dla ciągów „zakodowanych w środowisku wykonawczym”,
W trakcie tego procesu wielu programistów potknęło się o coplexity, zirytowało się utf-16 i nie podobało mu się to, że spowodowałoby to więcej niż podwojenie użycia pamięci i poświęcenie dużej ilości czasu na konwersję ciągów przy jednoczesnym zerwaniu większości istniejących aplikacji. Tak więc PHP napędzane przez wolontariuszy, coraz mniej programistów pracowało nad tym, a inne rzeczy gromadziły się, a autorzy byli niezadowoleni i ostatecznie trzeba było porzucić.
Co może przynieść przyszłość? - Następuje powolna ewolucja, w której coraz więcej rzeczy w PHP jest zbudowanych wokół utf-8. Nie w mocny sposób z niestandardowym typem i zmuszaniem do wszystkiego, a obecnie programiści nie są zmotywowani do dotknięcia tego gorącego żelaza. Można mieć nadzieję, że ktoś ma dobrą propozycję, aby działał dobrze, ale obecnie „wszyscy” uciekną, jeśli tylko usłyszą to słowo. :)