URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 95000
[ Назад ]

Исходное сообщение
"Facebook представил Hack, вариант языка PHP со статической т..."

Отправлено opennews , 21-Мрт-14 10:20 
Facebook представил (https://code.facebook.com/posts/264544830379293/hack-a-new-p.../) новый язык программирования Hack (http://hacklang.org/), основанный на синтаксисе языка PHP и предназначенный для выполнения  с использованием виртуальной машины HHVM (http://hhvm.com/) (HipHop Virtual Machine). Приложения на языке Hack могут бесшовно взаимодействовать и сочетаться с существующим кодом на языке PHP, так как окружение HHVM поддерживает выполнение и немодифицированных PHP-скриптов.  Код Hack распространяется (https://github.com/facebook/hhvm/tree/master/hphp/hack) под свободной лицензией PHP.

Отличия Hack от PHP сводятся (http://docs.hhvm.com/manual/en/hacklangref.php) к поддержке статической типизации и ряда расширенных возможностей, заимствованных из других языков программирования. Например, в Hack поддерживаются такие возможности, как обобщения (generics (http://docs.hhvm.com/manual/en/hack.generics.php) по образу C# и Java),  null-значения (http://docs.hhvm.com/manual/en/hack.nullable.php), коллекции (http://docs.hhvm.com/manual/en/hack.collections.php) (типы Vector, Map, Set, Pair), Lambda-выражения (http://docs.hhvm.com/manual/en/hack.lambda.php) (аналог PHP closures), механизмы асинхронного программирования (категории функций async и await (http://docs.hhvm.com/manual/en/hack.async.php)), составные shape-структуры (http://docs.hhvm.com/manual/en/hack.shapes.php), средства для переопределения имён типов (type aliasing (http://docs.hhvm.com/manual/en/hack.typealiasing.php)). Указание типов осуществляется через систему аннотаций (http://docs.hhvm.com/manual/en/hack.annotations.php), например указывается "function increment(int $x): int {" вместо "function increment($x) {".


Из возможностей PHP, поддержка которых прекращена (http://hacklang.org/manual/en/hack.unsupported.php) в Hack, можно отметить операторы goto, break N, continue N,  global, "if:...endif", AND, OR, XOR (нужно использовать "&, |, ^"), ссылки ("function foo(&$x)"), символ приглушения вывода "@", использование "if/then/else without" без обрамления блока символами "{}", elseif (правильно "else if"), средства динамического вызова (eval, $$x и т.п.), переменные в переменных ($a = "hello"; $$a = "world"; echo "$a + $hello"), задание имени функции через переменную  ($func = 'myFunc'; $func(1,2);), объекты ArrayAccess. Отдельно можно подчеркнуть, что имена функций в Hack вызываются с учётом регистра символов, в то время как в PHP регистр не учитывался.

Hack реализован на уровне виртуальной машины HHVM, поддерживающей JIT-компиляцию. HHVP в полной мере поддерживает обычный PHP 5, но при выполнении программ на языке Hack обеспечивается существенно более высокая производительность, так как благодаря наличию информации о типах в процессе JIT-компиляции удаётся сгенерировать более оптимальный и компактный машинный год. Бесшовная поддержка PHP в  HHVM существенно упрощает портирование на язык Hack - проект может переводиться на статические типы поэтапно, смешивая код и  сочетая файлы ".php" и ".hh" (в одном файле может смешиваться статическая и динамическая типизация).


Кроме того, доступны (http://hhvm.com/manual/en/install.hack.conversion.php) инструменты для автоматической трансляции PHP-кода на язык Hack. Предоставляются (http://hacklang.org/manual/en/install.hack.bootstrapping.php) средства мгновенной проверки типов через использование специального локального сервера (hh_server), отслеживающего изменения в файловой системе и сообщающего данные о возможных ошибках. Подготовлены плагины для интеграции поддержки Hack в Vim и Emacs.


URL: https://code.facebook.com/posts/264544830379293/hack-a-new-p.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=39368


Содержание

Сообщения в этом обсуждении
"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 10:20 
По-моему теперь выбор языка для будущих проектов очевиден.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено A.Stahl , 21-Мрт-14 10:22 
Си? Джава? Питон?
Нет, не очевиден...

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 18:27 
Вообще-то nodejs.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено еще один аноним , 21-Мрт-14 19:58 
nodejs уже язык, а не платформа?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено EuPhobos , 24-Мрт-14 10:18 
Накидал тесты по циклам в секунду
https://github.com/EuPhobos/utils/tree/master/tps

nodejs уступает php5-cli
а php5-cli уступает go
а go уступает java


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено AlexAT , 24-Мрт-14 11:08 
Отличный пример теста с отрицательной ценностью. Тестирует сферического коня в вакууме xD

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено EuPhobos , 24-Мрт-14 11:34 
Видать я заражён форониксом

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Admins , 21-Мрт-14 23:09 
Конечно же Си.

"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 10:41 
> По-моему теперь выбор языка для будущих проектов очевиден.

конечно: DLang.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено NikolayV81 , 21-Мрт-14 10:56 
Но мода как всегда выберет другой путь :(

"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 11:01 
> Но мода как всегда выберет другой путь :(

ну и фиг с ней. D зато вон живёт, развивается, готовится в gcc 4.9 пойти. vibe.d, опять же. а моды приходят и уходят.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено йцу , 21-Мрт-14 15:42 
вот только vibe.d под gdc пока не собирается (к сожалению)

"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 15:46 
> вот только vibe.d под gdc пока не собирается (к сожалению)

а не надо дубом собирать, дуб унылый. и gdc надо брать из гита, там уже 2064, а для вайба, насколько помню, минимальные требования — 2063.

впрочем, я на dmd вертел, надо на свежем gdc попробовать.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено Crazy Alex , 24-Мрт-14 00:36 
А чем тебе дуб не угодил?

"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 24-Мрт-14 00:55 
> А чем тебе дуб не угодил?

yet another build system. оно-то понятно, что это такое же развлечение, как тетрисы, калькуляторы и плееры, но я когда вижу очередную «новую удобную систему сборки с программистками в бикини», начинаю рефлекторно нашаривать маузер.

p.s. у меня тоже давно есть своя система сборки, само собой. и переучиваться на чужие мне неохота: я не для того свою делал.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 18:20 
> вот только vibe.d под gdc пока не собирается (к сожалению)

кстати, категорически протестую. только что таки уговорил дуб запуститься, собрал в виде примера echoserver: работает. собрал http_server: работает. естественно, собирал при помощи gdc.

так что смело можно пробовать. срез gdc несколькодневной давности, для gcc 4.8.

p.s. вайб тоже из git'а.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено Аноним , 21-Мрт-14 12:21 
> конечно: DLang.

Для вебни то? А по-моему, заменить пых на вот это было бы довольно разумно?


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 12:49 
>> конечно: DLang.
> Для вебни то? А по-моему, заменить пых на вот это было бы
> довольно разумно?

а по-моему, vibe.d намного круче сабжевой фиготени. а когда там hotswap полностью заработает — и ещё «намножее».


"Facebook представил Hack, вариант языка PHP со..."
Отправлено Аноним , 22-Мрт-14 15:29 
> а по-моему, vibe.d намного круче сабжевой фиготени.

А это что? URL?


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 22-Мрт-14 20:35 
>> а по-моему, vibe.d намного круче сабжевой фиготени.
> А это что? URL?

научу пользоваться поисковиками. дорого.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено MPEG LA , 21-Мрт-14 14:00 
в D уже можно вместо сегфолта просто поймать исключение на этом:

class A { public int b; }

void main()
{
  A a = null;
  a.b = 0;
}

?


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 14:10 
> в D уже можно вместо сегфолта просто поймать исключение на этом:

а зачем? это однозначно фатальная ошибка, и она *должна* приводить к сегфолту.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено MPEG LA , 21-Мрт-14 17:15 
для того, чтобы фатальная ошибка влияла только на текущий поток и его стек, а не на всё приложение.

"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 17:21 
> для того, чтобы фатальная ошибка влияла только на текущий поток и его
> стек, а не на всё приложение.

это фатальная ошибка всего приложения, и падать должно всё приложение. изволь не писать говнокода.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено MPEG LA , 21-Мрт-14 17:35 
> это фатальная ошибка всего приложения, и падать должно всё приложение.

не согласен. fault-tolerancy должен присутствовать.

>изволь не писать говнокода.

какое отношение имеет говнокод к возможности ловить и обрабатывать ошибки?



"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 17:42 
>> это фатальная ошибка всего приложения, и падать должно всё приложение.
> не согласен. fault-tolerancy должен присутствовать.
>>изволь не писать говнокода.
> какое отношение имеет говнокод к возможности ловить и обрабатывать ошибки?

if (a is null) throw new Exception("too bad i'm dead");
assert();
enforce();
in {}

не пишем говнокода. попытка работать с null — фатальная ошибка и признак того, что говнокод таки написали.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено MPEG LA , 21-Мрт-14 17:48 
>if (a is null) throw new Exception("too bad i'm dead");

assert();
enforce();
in {}

отлично. вот хотелось бы это самое на уровне языка, чтоб писанины меньше было. В идеале - опционально.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 17:55 
> отлично. вот хотелось бы это самое на уровне языка

это и есть «на уровне языка». не ленимся, прописываем контракты: это полезно и наглядно. а в случае assert(), in {} и invariant {} — ещё и опционально (т.е. отключаемо в «релиз-версии» одним флагом компилятора).

ленимся? не прописываем? чем раньше такой говнокод сегфолтнется — тем лучше.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено MPEG LA , 21-Мрт-14 18:03 
>> отлично. вот хотелось бы это самое на уровне языка
> это и есть «на уровне языка». не ленимся, прописываем контракты: это полезно
> и наглядно. а в случае assert(), in {} и invariant {}
> — ещё и опционально (т.е. отключаемо в «релиз-версии» одним флагом компилятора).

мы плюсисты ассертим все что нужно и как нужно, да и смарт поинтеры в ходу. а вот попробуй это похапистам вписать в мозг (тред о php vs vibe.d).

> ленимся? не прописываем? чем раньше такой говнокод сегфолтнется — тем лучше.

да по мне что ассерт, что сегфолт - плохо перехватываемые события, и таки да, чем раньше сбойнет - тем лучше. а код без ошибок и кодеры пишущие исключительно верно без багов - утопия. увы.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 18:12 
> а вот попробуй это похапистам вписать в мозг (тред о php vs vibe.d).

очень хорошо вписывается при помощи простых денежных стимулов. один сегфолт — минус премия. на code review не видно контрактов? минус премия. минус три премии — выход вон там.

>> ленимся? не прописываем? чем раньше такой говнокод сегфолтнется — тем лучше.
> да по мне что ассерт, что сегфолт - плохо перехватываемые события

ни то, ни другое «перехватывать» не надо. если это произошло — это баг и катастрофа. не ленимся, пишем unittest'ы, прогоняем их — для этого больше не надо отдельные фрэймворки держать.

> ну и разговор не о том, что контракты это круто/некруто, а об
> элементарном nullreference exception.

это баг. исключения не предназначены для отлова багов.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено volax , 25-Мрт-14 14:37 
> это баг. исключения не предназначены для отлова багов.

Ээээ... А для чего они предназначены?


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 25-Мрт-14 15:23 
>> это баг. исключения не предназначены для отлова багов.
> Ээээ... А для чего они предназначены?

для разруливания ошибочных ситуаций. ошибочная ситуация — это не баг. нет файла на диске — это не баг, это ошибочная ситуация. передача null туда, где его не ожидают — это баг, а не ошибочная ситуация.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено Аноним , 25-Мрт-14 15:49 
>>> это баг. исключения не предназначены для отлова багов.
>> Ээээ... А для чего они предназначены?
> для разруливания ошибочных ситуаций. ошибочная ситуация — это не баг. нет файла
> на диске — это не баг, это ошибочная ситуация. передача null
> туда, где его не ожидают — это баг, а не ошибочная
> ситуация.

нет файлв нв диске тоже проверяется, и. т.д.
Тут обращение к недействительному указателю, объект может быть уничтожен по разным причинам, к примеру из за нештатного отмонтирования фс ( физически выдернули флешку ), городить огород с откатом транзакций в потоках в этом случае будет сложной задачей...
Ставить ещё одну проверку на null к той, которую ставит компилятор - избыточный код.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 25-Мрт-14 16:08 
вроде бы и не пятница, а бухие уже тут…

"Facebook представил Hack, вариант языка PHP со..."
Отправлено volax , 25-Мрт-14 23:48 
Бред.
Нафиг вообще тогда exception-ы, если можно проверять код возврата? (Для умных - тех кто знает, где может и не может прилететь null).
Зачем плодить море спец. проверок, если можно унифицировать, поставив один catch с case-ом и поиметь ОДНООБРАЗНУЮ обработку ошибок?
Разве это не упрощает разработку?
Или только hardcore?

"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 26-Мрт-14 04:44 
спасибо, мнение говнокодеров очень важно для меня.

"Facebook представил Hack, вариант языка PHP со..."
Отправлено volax , 26-Мрт-14 15:52 
Вот не люблю я опеннетовских аналитегов, упёртые дураки ещё хуже стандартных...

"Facebook представил Hack, вариант языка PHP со..."
Отправлено ACCA , 26-Мрт-14 17:05 
Девочки, не ссорьтесь.

Есть два принципиально разных подхода к обработке исключительных ситуаций во входных данных.

1. Для интерактивных приложений - вывести сообщение и/или подставить default.
2. Для потоков - немедленно упасть, если не понимаешь, что это за данные.

Не дело web-форме падать по кривому почтовому индексу и не дело процессинговому центру подбирать подходящий номер кредитки.

Если тебе не сказали явно, что делать в исключительной ситуации - не умничай. Тот, кто придёт за тобой, знает где искать segfault, но за***ся искать, откуда прилетел illegal input event.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 26-Мрт-14 17:07 
> Вот не люблю я опеннетовских аналитегов, упёртые дураки ещё хуже стандартных...

ну не я же виноват, что ты дурак.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено ACCA , 26-Мрт-14 17:16 
>> а вот попробуй это похапистам вписать в мозг (тред о php vs vibe.d).
> очень хорошо вписывается при помощи простых денежных стимулов. один сегфолт — минус
> премия. на code review не видно контрактов? минус премия. минус три

Походу, ты проект в одно рыло собрался писать. Как может, так и пишет. И это твоя задача подогнуть бизнес-процесс так, чтобы учесть эту особенность.

Ты ему минус премия, а он свалил от тебя на поддержку 1С. И денег больше, и нет до***ба начальника.

Через 3 года в Штатах у программёров ожидается конкурс 0.75 человек на место, при оптимистическом прогнозе по иммигрантам и выпускникам технических кафедр. Остальные страны на очереди.



"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 26-Мрт-14 17:22 
> Походу, ты проект в одно рыло собрался писать.

походу, в одно рыло будет лучше, чем разгребать потом говнокод. сроки релиза те же самые (потому что разгрёб говнокода неминуемо приводит к оооогромным срывам), зато код нормальный.

> И это твоя задача подогнуть бизнес-процесс так, чтобы учесть эту
> особенность.

например, избавляться от идиотов как можно раньше.

> Через 3 года в Штатах у программёров ожидается конкурс 0.75 человек на
> место, при оптимистическом прогнозе по иммигрантам и выпускникам технических кафедр. Остальные
> страны на очереди.

(пожимает плечами) их проблемы. ремесленников всегда было пучок за пятачок, а мастера всегда в цене.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено MPEG LA , 21-Мрт-14 18:05 
>> отлично. вот хотелось бы это самое на уровне языка
> это и есть «на уровне языка». не ленимся, прописываем контракты: это полезно
> и наглядно. а в случае assert(), in {} и invariant {}
> — ещё и опционально (т.е. отключаемо в «релиз-версии» одним флагом компилятора).

ну и разговор не о том, что контракты это круто/некруто, а об элементарном nullreference exception.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено A.Stahl , 21-Мрт-14 10:21 
>средства ... проверки типов через использование ... сервера, отслеживающего изменения в файловой системе

Это как?


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено AlexAT , 21-Мрт-14 10:33 
FAM/Gamin?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено A.Stahl , 21-Мрт-14 10:39 
И как это поможет проверке типов?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 13:01 
Сервер увидел, что погромист поменял тип переменной - сразу посмотрел, где код от этого сломается, и выдал предупреждение.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено oxyum , 21-Мрт-14 13:08 
Ну как-как, скорее всего простейший демон, который через какой-нить inotify ловит изменившиеся файлы и запускает на них проверку, а результаты сливает через IPC или сеть в клиента, который уже цепляется к IDE и гадит туда списком ошибок.

У Scala примерно тоже самое делается через SBT.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено piteri , 21-Мрт-14 23:16 
Они там специальную тулзу написали watchman, в лине работает через inotify. Ловит изменения в указанном каталоге. Юзаю её для мелкой автоматизации, весьма удобно.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 10:23 
Может я что-то в этой жизни пропустил? В PHP из bash перекочевала структура "if ... endif"? )))
Если даже они убрали родной PHP'шный "if() {}", то кому нужен этот язык без if'ов...

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 10:26 
Ошибся, endif это альтернативный синтаксис if ...

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 10:37 
if ():

endif;


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 10:45 
Ну зачем, если есть java, нужна статика выберай

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 11:56 
Не нужно закрытое нутро runtime жабы.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено VoDA , 21-Мрт-14 12:26 
google OpenJDK - все нутро открыто.

закрыты только плагины, которые не являются обязательной частью.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено некто1120 , 21-Мрт-14 18:18 
> google OpenJDK - все нутро открыто.

продемонстрируйте пожалуйста. есть система. на системе компиляторы/интерпретаторы всех языков кроме явы. как мне получить яву, не ставя бинарь?


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 18:25 
есть система. на системе компиляторы/интерпретаторы всех языков кроме cи. как мне получить си, не ставя бинарь?

"Facebook представил Hack, вариант языка PHP со..."
Отправлено Canis Dirus Leidy , 22-Мрт-14 15:11 
> как мне получить си, не ставя бинарь?

(trollface.png) http://ru.wikipedia.org/wiki/Раскрутка_компилятора


"Facebook представил Hack, вариант языка PHP со..."
Отправлено Аноним , 22-Мрт-14 15:32 
> как мне получить си, не ставя бинарь?

Ты прикинь, а первые компьютеры программировали не имея компиляторов :).


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 22-Мрт-14 20:38 
молодцы, чо. что ж вы предыдущему вопрошающему это не рассказали?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено a3k , 12-Фев-19 12:14 
Потому что Facebook может себе позволить.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 10:47 
пхп становится самым настоящим комбаином. Нужна статика есть java,D,Go. Нужна динамика есть Python, Ruby.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено йцу , 21-Мрт-14 15:43 
а если нужно всё вместе - PHP :D

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено piteri , 21-Мрт-14 23:19 
> а если нужно всё вместе - PHP :D

а если нужно всё вместе - перепишите пхп, напишите свою вм для переписанного пхп и т.д.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено rd , 21-Мрт-14 11:07 
По-моему название языка неподходящее. Гуглить по нему материалы будет проблематично.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 11:08 
Не хуже, чем у Go.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено wd , 21-Мрт-14 11:38 
скорее будет наоборот, кинешься искать фильм "хакеры" - нет, вот на тебе маны по пхп

оно и сейчас - сунешься за маном по сяшной функе в гугл (ну например когда обычных манов под рукой нет), ан нифига, 3 мана по пхп и 7 новостей, что в этой функе в пхп критическая уязвимость


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено NikolayV81 , 21-Мрт-14 11:41 
> скорее будет наоборот, кинешься искать фильм "хакеры" - нет, вот на тебе маны
> по пхп
> оно и сейчас - сунешься за маном по сяшной функе в гугл
> (ну например когда обычных манов под рукой нет), ан нифига, 3
> мана по пхп и 7 новостей, что в этой функе в
> пхп критическая уязвимость

C oracl-ом ещё веселее, ссылает на docs.oracle но там справка по mysql, при этом особо и в глаза сразу не бросается.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено redwolf , 21-Мрт-14 11:10 
Когда я вижу запись &$x, у меня что-то внутри подпрыгиваеет.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено pavlinux , 23-Мрт-14 02:09 
&$x[i->j]:!x?y


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено ACCA , 26-Мрт-14 17:26 
> Когда я вижу запись &$x, у меня что-то внутри подпрыгиваеет.

"Уже и в роботов PHP напихали" (с)


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено бедный буратино , 21-Мрт-14 11:28 
круто

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено jOKer , 21-Мрт-14 11:35 
Без условно, медведя можно научить кататься на велосипеде. Но вот будет ли от этого медведю удовольствие и польза?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено NikolayV81 , 21-Мрт-14 11:36 
> Без условно, медведя можно научить кататься на велосипеде. Но вот будет ли
> от этого медведю удовольствие и польза?

Конечно, в цирке за это кормят, не будет кататься будет меньше еды...


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 12:34 
> Без условно

Значение знаешь?


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 13:03 
>> Без условно
> Значение знаешь?

Не, курить!


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 13:04 
Без условно!

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено vn971 , 21-Мрт-14 11:39 
Если кто-то будет теперь захваливать PHP -- я знаю какую ссылку ему кидать.)

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено бедный буратино , 21-Мрт-14 12:53 
> Если кто-то будет теперь захваливать PHP -- я знаю какую ссылку ему
> кидать.)

что значит "захваливать", и как это выглядит?


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 13:02 
> что значит "захваливать", и как это выглядит?

Это примерно то, что ты делаешь с питоном.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено бедный буратино , 21-Мрт-14 13:15 
а что я делаю с питоном?

и вообще, это не я! оно само!


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 22-Мрт-14 15:34 
> и вообще, это не я! оно само!

Вот, лучший пруф что у питонистов рантайм умнее программиста.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено некто , 21-Мрт-14 11:55 
Как расширение это может и хорошо, но в целом это мало кому нужное замусоривание языка.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено бедный буратино , 21-Мрт-14 12:52 
Это решает (не язык даже, а весь стек) многие детские проблемы php, но при этом синтаксически с ним совместим. Те, кто при словах python и ruby начинают плакать и звать маму, смогут загрузить этот nethack, и постепенно привыкать к хорошему.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено некто , 21-Мрт-14 13:07 
Если это не будет выходить за пределы расширения, то терпимо. Но все равно есть опасность выпустить джина из бутылки, особенно когда пойдет по сети прикладной код и/или придется публиковать API.

Возникает другой вопрос: если фб не может себе позволить разработку языка, а ограничивается лишь хаками, то это несколько странно.

Проблемы тормозов вполне решаемы.

Ничего плохого в строгой проверке типов нет, но это не решение.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 13:17 
фб не могут себе позволить переписывать весь код с похапэ на Новый Стильный Язык. вот и лепят костыли.

"Facebook представил Hack, вариант языка PHP со..."
Отправлено некто , 21-Мрт-14 13:51 
> фб не могут себе позволить переписывать весь код с похапэ на Новый
> Стильный Язык. вот и лепят костыли.

Проверку типов можно сделать интерфейсами и заворачиванием в объекты, единственная проблема это контроль типа возвращаемого значения. Но и это решаемо: например обернуть возвращаемое значение в принимающую функцию с нужным типом. Для скорости переписать на C и сделать для всех pecl.

Оно конечно понятно: контроль типа, хорошее средство для борьбы с ошибками. Чем раньше программа завалится - тем лучше. Идеально, это когда валится на этапе компиляции. Для того чтобы это разрешать успешно - настроить свой редактор на linting. Благо средства для этого есть, хотя проблему контроля возвращаемого/принимаемого значения не решает к сожалению. Но это уже другой вопрос - лучше тогда уж делать компилятор нормальный, с раскруткой термов и контролем, если это возможно - и то не всегда... Эту проблему надо решать с другой стороны имхо.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено кто , 21-Мрт-14 13:22 
судя по их уродливому API - у них тонны дерьма на php которое уже давно никто не понимает - отсюда и желание не переписать это на нормальном языке - а ускорить существующее

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено некто , 21-Мрт-14 13:43 
похоже на то, но и как-бы намекает о внутренних противоречиях...

Переписать на нормальном языке будет наверное дороже, ибо нормальные языки требовательны к себе.

Только ускорить пытаются как-то не там и собственно не так... Вполне достаточно расширений на СИ, благо pecl никто не отменял. Другое дело, что php-internals это еще та каша, где хорошо постарался Zend API - до сих пор расхлебывают. Это о том, что жадность ни к чему хорошему не приводит...


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено AlexAT , 21-Мрт-14 14:19 
При слове python лично я беру ружье, при слове ruby - ставлю растяжки. А как у вас?



"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 14:25 
> При слове python лично я беру ружье, при слове ruby - ставлю
> растяжки. А как у вас?

руби хороший. как ребёнок-даун, который безобидный такой, пытается услужить, подражать взрослым. а питон — это даун агрессивный, который пытается всем рассказать, что они живут неправильно и надо брать пример с него, дауна.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено Аноним , 22-Мрт-14 06:06 
> руби хороший. как ребёнок-даун, который безобидный такой,
> а питон — это даун агрессивный,

А ариша просто даун. Поэтому в его мире всё и все - дауны.



"Facebook представил Hack, вариант языка PHP со..."
Отправлено Аноним , 22-Мрт-14 16:42 
> А ариша просто даун.

Он не даун. Он Капитан Очевидность. Но у некоторых от этого случается ужасный батхерт. Ну извините, такова наша реальность, что узнавать о себе правду - не всегда приятно.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 22-Мрт-14 20:39 
а вот это явно бидонист был. они — в том числе — отличаются высокой культурой дискуссий.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 12:00 
Расширение файлов ".hh"  давно занято языком C++, будет путаница.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено vitalif , 21-Мрт-14 13:08 
Надо было назвать *.hph

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Pop , 21-Мрт-14 20:04 
cpp -> cc
hp -> hph

Аббревеатура


"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 21:16 
> Аббревеатура

пикард.webp


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 12:03 
Там на самом деле есть статическая типизация, или как в Dart?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 12:43 
отличное развитие
если язык развиваеется - значит, у языка есть будущее

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено некто1120 , 21-Мрт-14 12:44 
> использование "if/then/else" без обрамления блока символами "{}"

скоро как в питоне обяжут отступы делать ровно 4 пробелами


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 17:11 
Я бы везде обязал единый синтаксис.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 22-Мрт-14 18:11 
> Я бы везде обязал единый синтаксис.

Начни с себя - серая униформа зэка ждет тебя!


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено кто , 21-Мрт-14 13:08 
когда же они сделают php парсером в LLVM?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено кто , 21-Мрт-14 13:12 
ссылки то нафига убрали?!!

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 14:16 
Над PHP столько издевательств, не легче уже изначально разработать язык с нужным функциональными качествами, вместо этих попыток из того что есть попытаться сделать что то хорошее

"Facebook представил Hack, вариант языка PHP со..."
Отправлено arisu , 21-Мрт-14 14:18 
ну, если ты готов ударными темпами переписать на этом новом языке весь код fb…

"Facebook представил Hack, вариант языка PHP со..."
Отправлено Аноним , 21-Мрт-14 17:15 
> ну, если ты готов ударными темпами переписать на этом новом языке весь
> код fb…

В одиночку этого не добиться. А у тех кто делает тот же Hack вполне себе могут позволить написать язык с нуля. Если говорить о Hack то он появился в результате того что это нужно самой Facebook так что не думаю что их нужды разделит кто то еще кроме самой Facebook. И открытость кода еще не гарантирует его популярность. Спасибо конечно за труды, если этот код может кому то принести пользу кроме самой Facebook.


"Facebook представил Hack, вариант языка PHP со..."
Отправлено Аноним , 22-Мрт-14 18:13 
> В одиночку этого не добиться. А у тех кто делает тот же
> Hack вполне себе могут позволить написать язык с нуля.

Вот только остановить фэйсбук который уже есть и работает им никто не даст. И ждать пока они его весь перепишут на свой кульный ЯП тоже всем обломно. Ничего личного, это бизнес.


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 14:36 
Аннотации типов для локальных переменных не работают, пичалька.

<?hh

function lal(string $name) {
    string $hello = 'Hello';
    /*array<string>*/ $words = [$hello, $name];
    return implode(' ', $words);
}

echo lal('world') . PHP_EOL;

Fatal error: syntax error, unexpected T_VARIABLE in /tmp/hh/lal.hh on line 4


"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 15:53 
Где benchmark этого hack?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 21-Мрт-14 17:20 
facebook.com, не?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Pop , 21-Мрт-14 17:51 
kPHP скопипасили у вконтакта

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено George , 21-Мрт-14 18:08 
Facebook вообще клон ВКонтакта, даже тему скопипастил

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено arka , 21-Мрт-14 18:13 
Даже поддержку ООП?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 23-Мрт-14 12:37 
Мне не совсем понятно зачем надо было делать этот новый ЯП с несколькими своими недофичами относительно похэпэ. Нельзя было аннотациями phpdoc пользоваться?

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено george , 14-Дек-15 14:32 
А я вот люблю, и рэп, и хип хоп, но хаком все равно не стану пользоваться) ПХП как то постабильней да и побогаче в плане поддержки модулей.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 23-Мрт-14 20:52 
Терпеть не могу хип-хоп и рэп. Поэтому даже на страницы проектов заглядывать не буду. Я понимаю, что это модные жарны в музыке среди молодёжи, но на мой взгляд такие названия - неудачный ход для раскрутки. Тоже монжо сказать и про Хак.

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Потерпевший , 24-Мрт-14 12:49 
Сначала придумаем языки с динамической типизацией, а потом героически решим проблему с производительностью кода, убрав эту самую динамическую типизацию. #hiphop #asm.js и пр.

"http://bdo168.com"
Отправлено bdo168.com , 20-Янв-15 08:13 
"must say that overall I am really impressed with this blog. It is easy to see that you are passionate about your writing. If only I had your writing ability I look forward to more updates and will be returning.
"

"Facebook представил Hack, вариант языка PHP со статической т..."
Отправлено Аноним , 24-Июн-15 11:32 
Короче переизобрели Java... На что люди только не идут лиж бы не переписывать код :D