На чем написан facebook
Перейти к содержимому

На чем написан facebook

  • автор:

Facebook выпустила собственный язык программирования

Facebook представила язык программирования Hack, который должен упростить и ускорить разработку сложных интернет-приложений. На языке Hack с некоторых пор базируется почти весь сайт Hack с его более чем миллиардом пользователей. Компания находится на финальной стадии миграции с PHP.

Социальная сеть Facebook представила новый открытый язык программирования под названием Hack. Он схож с PHP и предлагает присущую ему быстроту программирования, но одновременно отличается от него статической типизацией, используемой в C++, Java и других современных языках.

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

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

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

Для запуска приложений, написанных на Hack, необходимо установить виртуальную машину HHVM (HipHop Virtual Machine). Она поддерживает одновременно и Hack, и PHP. Поэтому разработчикам не придется разом переделывать весь код из PHP в Hack, они могут делать это постепенно, по необходимости. Виртуальная машина поддерживает смешанный код, поэтому разработчики могут продолжить писать на PHP, но уже использовать функции нового языка программирования.

Hack похож на PHP, но отличается статической типизацией (вверху: фрагмент кода PHP, внизу: тот же код на языке Hack)

Как в России потратят 145 млрд рублей на развитие технологий искусственного интеллекта
Цифровизация

Для загрузки Hack и HHVM требуется Ubuntu 12.04 LTS, Ubuntu 13.10 или Debian 7. Пользователи также при желании могут скачать код Hack и скомпилировать его самостоятельно.

Facebook — не единственная ИТ-компания, которая создала собственный язык программирования. В июле прошлого года собственный вариант PHP — KittenPHP — представила крупнейшая российская соцсеть «ВКонтакте». Переход на новый язык, на разработку которого ушло более года, и который вдвое увеличивает производительность, соцсеть завершила в мае 2013 г. В марте 2014 г. компания предоставила открытый доступ к языку.

Собственные разработки в области средств программирования имеет и поисковый гигант Google. В ноябре Google выпустила высокопроизводительную замену языку JavaScript под названием Dart, разработка которого велась более 2 лет. Еще один собственный язык программирования Go корпорация предлагает разработчикам приложений для настольных операционных систем, включая Windows и OS X.

На каком языке пишутся сложные сайты?

Здравствуйте, хотелось бы начать изучать языки для создания веб-сайтов, но не обычных, простеньких, а сложных, например: vk.com, imhonet, youtube. На каких языках подобные сайты пишутся? Что нужно вообще знать для написания подобных проектов?

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

  • Вопрос задан более трёх лет назад
  • 103680 просмотров

1 комментарий

Оценить 1 комментарий

Сложные сайты пишут на сложных языках.
Решения вопроса 1

Jump

Системный администратор со стажем.

Их не пишут, нельзя вот так вот взять и написать yotube.
Во первых не стоит называть такие проекты сайтами. Сайт это просто аккуратно оформленная страничка с данными доступная по протоколу http.
Т.е вордовский документ размещенный в сети интернет это и есть сайт.

А то что вы назвали — vk.com, imhonet, youtube это не сайты.
Это программно аппаратные комплексы.
Т.е нужны сервера, датацентры размещенные в ключевых точках, нужна система обеспечивающая взаимодействие этих серверов.
Это продукт труда множества системных администраторов, программистов, инженеров, электриков, маркетологов, и.т.д..

Ответ написан более трёх лет назад
Нравится 60 10 комментариев
qamar65 @qamar65 Автор вопроса

Да, не правильно выразился. Под «сложными сайтами» я имел как раз таки их, а не просто странички. Что нужно знать, что почитать по такой тематике можно? Просто, я такая личность, которая любит создавать что-либо свое, но не хватает навыков и знаний для этого.
Может быть, стоит начать с создания простых сайтов?

Jump

Да, самый правильный путь это начинать с азов. Т.е с создания простых сайтов.
В процессе создания будет приходить понимание того, что нужно еще, куда двигаться дальше.
А выбор инструмента (языка программирования) дело не главное, хотя и довольно ответственное.
С одной стороны инструмент должен быть удобен для вас, понятен, с другой стороны у этого инструмента должны быть перспективы.

qamar65 @qamar65 Автор вопроса
Grienders: вопрос только в нагрузке

Jump

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

Артем: как говорится, Москва не сразу стоилась и ютуб и вк не сразу такими монстрами были.

edli007

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

Оба они начинались с самого банального PHP, несмотря на что этот язык всегда в «догоняющих», он остается самим популярным для сайтов и веб стартапов. Низкий уровень вхождения, рождает тучу фанатов, что рождает предложение и удовлетворяет спрос.

Далее, конечно для вк и фб было мало пхп, и начались переделки. Не скажу за сегодня, но последний раз когда слышал об этом.
— для фб написана собственная база данных на С(не вспомню каких именно), и по сути, вся нагрузка лежит на этой базе.
— для вк они разработали собственный язык программирования, FastPHP, где от php остались только названия функций. В тоже время, у них еще есть Jabber сервер, это то где все ваши сообщения, обновления стены и прочее, этот сервер написан на Node.js.

Как видите, «крутые» ресурсы, так или иначе используют легендарную сишку, для разработки собственных инструментов.

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

На чем писали Facebook — программный код сайта

Любопытные пользователи фейсбука часто задаются этим вопросом (особенно те юзеры, которые интересуются IT-технологиями). Так давайте же разберемся в этом вопросе и дадим однозначный ответ на него!….

На каком языке программирования написан Facebook?К сожалению, однозначный ответ дать — вряд ли удастся.

Начнём с веб-версии социальной сети — ну той что на ПК. Возможно, вы уже знаете : подавляющее большинство страниц в интернете — это html-документы (в этом можно легко убедиться, просто зажав ctrl+shift+I — на экране отобразится соответствующий программный код).

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

→ Поэтому разработчики используют не статичный код, а адаптивный php .

На этом языке программирования построены многие другие социальные сети, онлайн-магазины и так далее. Однако стоит отметить, что не весь фейсбук написан на php. Многие его функции прописаны на Javascript или C++

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

Это что то Новое

А вы знали, что с 2014 года, весь фейсбук был переписан на другой язык программирования, разработанный лично данной компанией — “HHVM”. Но на самом деле, это почти тот же самый php, только немного перестроенный под сам Facebook (это было необходимо разработчикам для более гибкой настройки соц.сети).

То есть все его основные функции полностью сохранились, а второстепенные были или удалены, для облегчения языка программирования, или наоборот добавлены для большей функциональности! Вот на чем писали весь Facebook!

Так что в итоге ?

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

  1. На “HHVM” (php) написано около 90% всего содержимого,
  2. а оставшаяся часть прописана на C++, C # или Javascript!

Facebook создаёт компилятор PHP?

От людей, посетивших офис разработчиков Facebook, появилась информация о том, чем сейчас занята большая команда программистов этого проекта. Судя по всему, они переписывают PHP-скрипты заново. Как известно, 90% кода Facebook написано на PHP.

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

Наиболее вероятна версия, что результатом их работы станет нечто вроде компилятора PHP. С его помощью якобы можно ускорить исполнение программного кода чуть ли не в пять раз и уменьшить загрузку CPU на серверах на 80% Эта же информация подтверждается одним из сотрудников Facebook на условиях анонимности (все они подписали NDA). Он говорит о неком HPHP (Hyper-PHP), что представляет собой практически новую версию языка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *