надо яву? пиши на яве. или .net.
Это значит что не нужно развивать пых? Типа язык, рожденный «фракталом плохого дизайна» не имеет права развиваться? )
Можно, конечно, быть как ребята из VK, которым достаточно кастрированного kPHP. Но ведь хочется чтобы код был выразительный и распиздатый :)
И, кстати, лямбды появились в Java только в 8-й версии, которая всего несколько дней назад релизнулась.
Чем можн оменя мотивировать перевести живой реальный проект на hack ?
Ну или а) отсутствие других занятий или б) какие-то очень специфичные причины, которые мне неизвестны :D
Не подумайте, что я советую бросать всё и заменять все свои <?php на <?hh. Проект только вылупился. Ещё нет ни сформировашегоcя сообщества, ни годных примеров, ни «родных» библиотек, которые бы продемонстрировали все эти фичи в деле.
Но по крайней мере, эта штука достойна того, чтобы обратить на неё внимание и пристально следить за развитием.
Сам хочу заставить себя выбрать время и переписать какую-нибудь относительно небольшую либу, используя возможности Hack'а.
обратно совместим?
Собственно, он может бесшовно цеплять исходники на обычном PHP — всё крутится в общей виртуальной машине. Что касается самого Hack, то там есть аж
четыре режима «строгости», которые в том числе, влияют и на совместимость. В подробностях наверное не стану рассказывать, чтобы случайно не соврать :) Но процитирую анонс с opennet'а:
Из возможностей PHP, поддержка которых прекращена в Hack, можно отметить операторы goto, break N, continue N, global, "if:…endif", AND, OR, XOR (нужно использовать "&, |, ^"), ссылки ("function foo(&$x)"), символ приглушения вывода "@", использование "if/then/else" без обрамления блока символами "{}", elseif (правильно "else if"), средства динамического вызова (eval, $$x и т.п.), переменные в переменных ($a = "hello"; $$a = "world"; echo "$a + $hello"), задание имени функции через переменную ($func = 'myFunc'; $func(1,2);), объекты ArrayAccess. Отдельно можно подчеркнуть, что имена функций в Hack вызываются с учётом регистра символов, в то время как в PHP регистр не учитывался.