У каждого нового инструмента есть свои пассионарные первопроходцы и это хорошо.
Тот же Angular Light, например ;)
Когда появляется что-то новое я обычно задаю простые вопросы:
1. Какую проблему решает?
2. Как часто эта проблема возникает?
3. Есть ли пересечения или конфликты с существующими инструментами, в том числе из других областей?
4. Насколько технически рынок готов использовать эту новинку, как она реализована?
5. Нравится ли она мне, субъективно?
Ответы позволяют сложить более менее объективное мнение и решить стоит ли это новое времени на изучение и дальнейшее использование.
Заложенные идеи мне нравятся, хотя они и не новы.
Шаблоны работают и сейчас, причем гибче.
Инкапсуляция и пользовательские элементы есть еще со времен object.
Современные библиотеки сделали старый велосипед намного удобнее от первоначального варианта.
Сравнивать возможности web components нужно не с чистым html, а html+библиотеки.
В итоге, это выглядит как более удобный способ делать старые вещи.
Т.е. хоть и велосипед, но на нем удобнее ездить :)
Вместо object мы пишем на html, js, css, что снижает порог для создания повторно используемых компонентов, сохранив прелести инкапсуляции - это приятно.
Возможность избавить браузер от рендеринга неактивных темплейтов и обработки ненужных событий - тоже хорошо.
Но это от браузера зависит, это можно было сделать и другим способом на существующем стеке технологий.
Но популярность зависит в большей степени от:
- возможности и удобства использования,
- возможных проблем при построении более сложных вещей, чем примеры
Одним из ключевых моментов Web Components есть Shadow DOM.
Проверка показывает, что поддержка все еще хромает.
Смущают меня чисто практические вещи:
- количество обрабатываемых файлов (css, js - особенно) растет со сложностью страницы
- тот же js все равно парсится на этапе загрузки, было бы круто вкл/выкл необходимость парсить js при загрузке
- совместная работа компонент плохо проработана (вы это и сами заметили)
- правила обработки событий достаточно сложные, как это скажется на отладке?
- как избежать дублирование оформления и кода обработчиков в сложных приложениях?
- поддержка в браузерах через префикс плюс скорость обновлений Blink может заставить через год все переписывать
- со временем будет туева хуча компонент и разобраться в них будет намного сложнее, чем с js-библиотеками сейчас (низкий порог вхождения)
Исходя из вышеперечисленного, для продакшн я бы не использовал.
Посмотреть, потрогать разок можно.
Нужно ждать внедрения в браузеры как минимум, компоненты и best practics потом появятся быстро - успевай только разгребать :)