Подтвердить что ты не робот

Почему facebook не использует jQuery (или аналогичный)?

Facebook сильно основан на JavaScript. Почему он не полагается на jQuery (или любую другую подобную библиотеку)?

Изменить: Зачем закрывать этот вопрос? это не субъективно. facebook не использует jQuery (или любую другую инфраструктуру) по какой-то причине, о которой я прошу.

4b9b3361

Ответ 1

Короткий ответ: вам нужно спросить команду разработчиков Facebook.

Лучшие догадки:

  • Крупные компании с крупными программными продуктами (и зрелые кодовые базы) склонны придерживаться того, что работает, даже когда есть популярная инфраструктура, уже присутствующая там, на которую приходится переходить. Помните, что Facebook был задолго до того, как JQuery считался стандартным.

  • Скорее всего, они будут поддерживать свой существующий код еще на много лет вперед. И коэффициент соотношения затрат на создание "переключателя" на новый язык или структуру может быть слишком низким, чтобы гарантировать переписывание или переход. Пример: Sun не переносила большую часть Solaris на Java. На С# написано только предельное количество Windows.

  • В 2011 году, когда я впервые написал это: если вы действительно смотрите сайт Facebook, их структура DOM не такая сложная. У них не так много анимаций. Это не очень тяжелый сайт AJAX. Учитывая, что JQuery может быть нецелесообразным для них. Обновление - в 2015 году: FB намного более динамичен, чем лет назад. Таким образом, № 3 здесь не имеет такого же веса, как в 2011 году.

  • Кроме того, когда у вас есть несколько команд, которые участвуют в одном программном продукте (или веб-сайте), важно, чтобы все стандартизировались в одной и той же структуре. Если каждая команда интегрирована с другой структурой, тогда код быстро раздувается, связывая все эти разные библиотеки. В случае веб-сайта это означает более длительное время загрузки страницы.

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

  • FB может не захотеть слишком "заперться" в JQuery. Известно, что JQuery имеет несколько ошибок с некоторыми из более новых браузеров, которые были в бета-версии. Теперь, если у Facebook есть миллион строк кода на основе JQuery 1.6, это может быть ошибкой при работе в IE 10, FF 5 и Chrome 12 в течение года. Чтобы сделать эту работу, они должны были перейти на JQuery 1.7, но это означает, что огромное количество тестов выполняется по всей их кодовой базе.

  • Наконец, у них может быть что-то внутреннее, что работает лучше, чем JQuery. Я не удивлюсь, если Facebook уже имеет серверную структуру, которая выводит HTML + JS на основе браузера, делающего запрос страницы.

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

Ответ 2

Потому что они предпочитают делать свою собственную вещь?

Ответ 3

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

Ответ 4

Поскольку они сами создают то, что им нужно, jQuery также является Javascript.

Ответ 5

Если вы хотите мое мнение:

Я думаю, единственная причина в том, что Facebook был в 2003/2004 году, jQuery в 2006 году. В этот момент было слишком поздно, чтобы переконвертировать все js в jQuery

Ответ 6

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

Ответ 7

@yes123: Когда вы создаете веб-сайт, который заканчивается тем, что обслуживает половину планеты, вы начнете сталкиваться с стенами, каркасы любого типа, как правило, в конечном итоге навязывают. Когда вы создаете собственные пользовательские фреймворки, языки запросов к базам данных и т.д., У вас есть намного больше контроля и вы действительно можете перейти к оптимизации оптимизации сайта, который должен обслуживать огромное количество запросов в секунду.

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

В любом случае, это не вопрос для StackOverflow...

Ответ 8

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