Pull to refresh

Comments 38

Ну и как теперь называться «хакерам», которые были до появления этого языка? :)
Я не очень понимаю эту тягу Facebook сделать из PHP клон Java. Хотя понятно, что с помощью статической типизации компилятор может произвести намного больше оптимизаций.
Если я правильно поняла, то статическая типизация в hack не является обязательной, т.е. даже в пределах одного файла возможна и динамическая и статическая типизация. К тому же, они пишут, что многие типы типы сглаживаются (приводятся) таким образом, чтобы разработка была максимально похожа на работу с PHP. Т.е. используем строгие проверки там, где это действительно необходимо.
они скорее всего это делают затем, зачем и вы ). рассказали-бы о вашем проекте здесь.
UFO just landed and posted this here
Скажем так: во многих проектах возможности динамической типизации не используются де-факто — по сути работает автоматический вывод типов при инициализации, а далее тип никогда не меняется (разве что на null). И во многих проектах есть информация для статического сильного контроля типов — phpdoc.
Извините, если глупый вопрос — но кто мне объяснит, можно ли с помощью Hack/HHVM писать GUI-приложения с использованием сторонних PHP-библиотек? Так мало внятной информации в рунете по поводу «фейсбучного PHP»… :(
Спасибо, посмотрю. Помнится, щупал летом DevelStudio. В целом понравилось, но что-то мне для моего проекта не подошло. Не помню почему именно… Уже скачал заново, попробую ещё раз. Возможно, мои давнишние тревоги были напрасные.

Типы проверяются специальным сервером (сервисом, демоном), который следит за изменением файлов исходного кода на диске.

то есть дальше можно не читать?
Очень интересный язык! Все то чего не достаёт в PHP. Если бы появилась поддержка его в PhpStorm с удовольствием программировал бы на нем.
phpstorm, к сожалению и текущий php фигово поддерживает. Хотя казалось бы — добавить пару аннотаций и все было-бы в шоколаде.
А чего именно вам не хватает в phpstorm?
Ну например работы с ArrayAccess, да и вообще с массивами.
Ясно что когда используются переменные — сложно угадать, что в массиве, но когда явно пишешь:
$arr['foo'] = new Foo();
$arr['foo']->bar(); // тут уже контекст теряется

Ну и всяческих мелких аннотаций, типо @return argument<$object>.
Хотя с поддержкой JS там все еще хуже, так что я молчу и не жужу:)
PhpStorm 7.3.1 — Ваш пример работает без каких-либо аннотаций.
/** @var Foo[] $arr */ 
$arr = [];
//...

Ведь можно и так.
Да, знаю про инлайн-аннотации. Но что если я в массиве разные классы храню?
Я даже не могу представить как это вообще можно проинспектировать. Можно только явно указать все возможные типы через пайп.
Нужно научить IDE исполнять код, вот и все.
А если содержимое массива будет зависеть от данных, которые пришли со стороны пользователя? Я думаю, что тут проще будет научить IDE писать код за программиста… :)
Зря так думаете) Посмотрите хотя бы на COLT. IDE знает какие параметры метод принимает, какие у них сигнатуры. Да и вообще. По вашему $fooBar и $foo['bar'] сильно отличается? На мой взгляд нет.
Не исполнять, а анализировать.
Замечательно! Популярность языка сделала свое дело — он стал развиваться самостоятельно.
Интересно, почему не отказались от <?hh
Особенно радует доработанность языка, не просто добавили типы, но и шаблоны. Супер!
UFO just landed and posted this here
Мне кажется ваши претензии относятся скорее к виртуальной машине, нежели к языку?
Кажется. Или вы считаете, что по запросу «Hack» будет находится этот язык программирования?
Полное название — hacklang. По аналогии Go -> Golang.
Как и многие другие. Автор оригинального комментария сетует на то, что многие современные языки используют в качестве названия имена нарицательные, что иногда слегка, иногда драматически ухудшает поиск инфы по ним. Примеры:
Hack, Go, Rust, Ceylon.

Ещё есть язык D (однобуквенное название).
В PHP это не нужно, если используется сам PHP, а не mod_apache или FPM.
JavaScript – TypeScript (static typing, generics etc.)
PHP – Hack (static typing, generics etc.)
Наконец-то слово хакер (особенно в Америке) перестанет нести налет специалиста по противоправным действиям.
Новый налёт будет тоже не слишком радостным, учитывая отношение остальных разработчиков к разработчикам на PHP. Лично мне всё равно, что думают о PHP'шниках, но я бы предпочёл возвращение первоначального смысла этому слову, т.к. в некотором смысле являюсь хакером сам (без претензий на крутизну). Ну и да, название, на мой взгляд, неудачное по двум причинам:
  1. Одно из значений слова hack, пережившее эффекты журнализма — быстрая правка, решающая проблему здесь и сейчас, без раздумий о красоте кода и о его поддержке. Не очень хорошая ассоциация для языка, на который переводят почти весь свой код такие компании, как Facebook — надолго ли?
  2. Трудность поиска информации по языку. Если же язык станет очень популярным, станет сложно искать просто слово hack. Примеры языков Go и D как бы намекают нам, что, скорее всего, при поиске придётся добавлять -lang к названию языка.
ой да ладно вам. По Си сложно материалы найти?
Sign up to leave a comment.

Articles