Wordpress и веб-разработка

Facebook хочет создать лучший PHP с помощью Hack. Спойлер: Это действительно хорошо.

Facebook хочет создать лучший PHP с помощью Hack. Спойлер: Это действительно хорошо.

10 лет назад в комнате Гарвардского общежития был запущен Facebook. Первоначально Марк Цукерберг просто взламывал кодовую базу, которая состояла исключительно из кода PHP. , взаимодействуя с базой данных MySQL.

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

И, таким образом, они создали Hack, который представляет собой специально разработанный язык, позволяющий быстрее разрабатывать большие группы разработчиков, в то же время поддерживая полную совместимость с популярным языком программирования PHP.

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

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

Что такого особенного в хаке?

Отличный вопрос Возможно, вы знаете, что некоторые языки программирования скомпилированы в байтовый код, который выполняется на специальной виртуальной машине (например, Java и Clojure), тогда как другие языки (например, PHP, Ruby и Python) работают в интерпретаторе.

Вы также, вероятно, знаете, что интерпретируемые языки по своей природе медленнее, чем языки, которые генерируют байт-код, который специально оптимизирован для виртуальных машин, на которых они работают. Именно по этой причине существуют диалекты Python и Ruby (называемые Jython и JRuby соответственно), которые работают на виртуальной машине Java.

Hack уникально работает на своей собственной виртуальной машине, называемой Hip Hop Virtual Machine. Именно эта виртуальная машина использовалась Facebook для масштабирования миллиардов ежедневных пользователей.

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

Установка Hack

У меня плохие новости для пользователей OS X и Windows. Хак либо не работает на этих платформах, либо поддержка настолько ненадежна, что обсуждать не стоит. Вместо этого вам либо придется запустить Linux VPS. или ВМ.

хак-SSH

Из-за своей лени я решил создать Linux VPS с Digital Ocean, который является одним из моих любимых VPS провайдеров. Я создал небольшую капельку под управлением Ubuntu 13:10 , а затем установите Hack с помощью следующих команд.

wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - echo deb http://dl.hhvm.com/ubuntu saucy main | sudo tee /etc/apt/sources.list.d/hhvm.list sudo apt-get update sudo apt-get upgrade sudo apt-get install hhvm-nightly 

Как вы можете видеть здесь, я загружаю ключ GPG для репозиториев Hack; добавить репозиторий в мой список источников; обновить определения моих источников; обновить мою систему и затем установить Hack. Просто, правда.

Взлом с помощью взлома

Теперь пришло время написать код Hack. Мы начнем с проверенной и проверенной программы «Hello World». Этот не будет работать в веб-браузере, а скорее выведет «Hello World» на консоль.

Создайте новый файл с именем HelloWorld.php (да, по какой-то причине Hack настаивает на использовании .php в качестве расширения файла по умолчанию) в вашем любимом текстовом редакторе (мой предпочтительный выбор — VIM ) и добавляю следующие строки.

взломать-привет

 <?hh echo "Hello World"; 

Который должен выводить Hello World на консоль, когда запускается с ‘hhvm’, вот так.

хак-привет перспектива

Хорошо, давайте попробуем запустить программу Hack в браузере. Во-первых, нам нужно установить Apache и PHP. Я уже упоминал об этом в предыдущей статье. , но чтобы освежить вашу память, я снова пробежусь по ней. Запустите следующие команды.

 sudo apt-get install apache2 sudo apt-get install php5 

Вы также можете установить Apache, PHP, MySQL и целый ряд других полезных утилит с помощью следующей команды. (Не забудьте про каретку в конце строки — лампа-сервер — это не отдельный пакет, а коллекция)

 sudo apt-get install lamp-server^ 

Рекомендуется выполнить это, если вы планируете более внимательно и серьезно взглянуть на веб-разработку с помощью языка программирования Hack, поскольку он содержит множество инструментов, которые могут оказаться весьма полезными.

После этого перезапустите виртуальную машину Hip Hop с помощью следующей команды.

 sudo /etc/init.d/hhvm start 

Убедитесь, что Apache запущен, открыв браузер и перейдя по IP-адресу вашего веб-сервера. Если все работает, вы должны это увидеть.

взламывать-itworks

Большой! Теперь перейдите к / var / www и удалите страницу, которую вы только что видели (называемую «index.html»), с помощью следующих команд.

 cd /var/www rm index.html 

Теперь создайте файл с именем index.php и добавьте те же строки, которые вы написали ранее.

 <?hh echo "<p>Hello World</p>"; 

Как только вы это сделаете, зайдите на ваш веб-сервер с выбранным вами веб-браузером.

хак-HelloWorld-браузер

Как вы можете видеть, есть некоторая странность, когда Хак распознает конец строки. В результате я хотел бы воспользоваться этой возможностью, чтобы напомнить вам, что хотя эта технология довольно крутая, она все еще довольно сырая и, возможно, не готова к производственному развертыванию. Тем не менее, я добавлю, что я использую ночную версию Hack, которая является самой передовой из доступных версий. В результате не должно быть слишком удивительно, что некоторые вещи не работают идеально.

Если вы знаете PHP, вы можете распознать оператор Echo, который я использовал ранее. Ну, Hack может вызвать любую функцию PHP. Здесь я называю ‘phpinfo ();’ в рамках программы Hack.

хак-phpinfo

Некоторая функциональность

Hack приносит много полезного для новых языковых возможностей. Я обсуждал некоторые из них раньше, включая объявления типов. К сожалению, мы не сможем охватить все в этой статье, но я подумал, что было бы неплохо взглянуть на то, как Хак обрабатывает определения типов.

Итак, подведем итоги: в определениях типов вы определяете переменную на основе содержимого, которое она будет содержать. Как это работает? Ну, немного так.
хак-типов

 <?hh bool $trueorfalse = false; string $myname = 'Matthew Hughes'; int $myage = 22; 

Как видите, мы начинаем с объявления типа, за которым следует имя переменной (начиная со знака доллара, как в традиционном PHP), за которым следует значение, присвоенное переменной.

Это также вступает в игру с объявлениями функций. Когда вы объявляете функцию и передаете ей параметр, вы должны объявить тип переменной, которую вы передадите ей. Если вы этого не сделаете или передадите неверный тип переменной, ожидайте плача и скрежета зубов.

Итак, как это на самом деле работает в Hack? Давайте разберемся.

Создайте новый файл с именем ‘function.php’ и напишите следующие строки.

хак-функция

 <?hh function hello (string $yourname): void { echo 'Hello ' . $yourname; } hello('dave'); 

Если вы использовали PHP в прошлом, вы можете расшифровать некоторые из них. Мы создали функцию, которую мы назвали «привет». Затем мы передаем ему строку, которая затем выводится на консоль, после слова «Hello».

Но что это : пустота ? Ну, в Hack, мы должны сообщить компьютеру, будет ли функция возвращать значение. Если это не так, мы говорим, что функция void. Как и в случае с Hack, мы должны объявить тип значений, которые будут возвращены.

Затем мы запускаем этот код с помощью приложения командной строки ‘hhvm’, и мы должны это увидеть.
хак-hhvm-привет-Дэйв

Вывод

В Хаке есть что любить.

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

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

Но это только мое мнение. Будете ли вы попробовать? Оставьте мне комментарий ниже и дайте мне знать, что вы думаете.

Похожие посты
Wordpress и веб-разработка

Добавить красивые слайд-шоу в сообщения WordPress с помощью SlideDeck

Wordpress и веб-разработка

Сделайте свой WordPress блог iPad удобным с Onswipe

Wordpress и веб-разработка

Как создать карту изображения с помощью GIMP

Wordpress и веб-разработка

WordPress: еще 3 скрытых жемчужины в наборе плагинов Jetpack, а также обновлено приложение WordPress!