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

  • Edmund Richardson
  • 0
  • 2962
  • 664
Реклама

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

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

И, таким образом, они создали Hack, который представляет собой специализированный язык, позволяющий быстрее разрабатывать большие группы разработчиков, в то же время поддерживая полную совместимость с популярным языком программирования PHP. Учимся строить с помощью PHP: ускоренный курс Учимся строить с помощью PHP: ускоренный курс PHP это язык, который Facebook и Wikipedia используют для ежедневного обслуживания миллиардов запросов; де-факто язык, используемый для обучения людей веб-программированию. Это красиво просто, но невероятно мощно. .

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

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

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

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

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

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

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

Установка Hack

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

Из-за своей лени я решил создать Linux VPS с Digital Ocean, который является одним из моих любимых VPS провайдеров. Я создал небольшую капельку под управлением Ubuntu 13:10 Ubuntu 13.10, запущенный с друзьями, Dash Filters и многое другое Ubuntu 13.10, запущенный с друзьями, Dash Filters и другие Canonical выпустил новейшую и отличную версию самого популярного в мире бесплатного и открытого кода настольная операционная система, Ubuntu 13.10 “Дерзкая саламандра”. , а затем установил взломать с помощью следующих команд.

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 установить hhvm-nightly

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

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

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

Создайте новый файл с именем HelloWorld.php (да, по какой-то причине Hack настаивает на использовании .PHP как расширение файла по умолчанию) в вашем любимом текстовом редакторе (я предпочитаю VIM: 7 главных причин дать текстовому редактору Vim шанс Лучшие 7 причин дать текстовому редактору Vim шанс В течение многих лет я пробовал один текст Редактор за другим. Вы называете это, я пробовал. Я использовал каждый из этих редакторов более двух месяцев в качестве основного ежедневного редактора. Каким-то образом я…) и добавляю следующие строки.

Который должен распечатать Привет, мир в консоль, когда запускается с 'HHVM', как это.

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

sudo apt-get установить apache2 sudo apt-get установить php5

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

sudo apt-get установить ламповый сервер ^

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

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

sudo /etc/init.d/hhvm start

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

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

cd / var / www rm index.html

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

Привет, мир

«;

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

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

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

Некоторая функциональность, специфичная для хака

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

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

 

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

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

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

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

 

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

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

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

Заключение

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

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

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

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




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