Ответ 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 на основе браузера, делающего запрос страницы.
Я понимаю, что ни один из этих ответов не очень популярен. Какой разработчик в вашей команде не хочет переключаться на новейшие и самые лучшие технологии? Но когда вы думаете о бизнес-кейсе и о стоимости поддержки структуры по отношению к размеру вашего бизнеса, вы должны осторожно протестировать.