Если под "расширением языка" мы понимаем добавление новых лексических конструкций, как, например, корутины в C++20 или ключевое слово let в ES6, то мой ответ - библиотеки для развития языка программирования важнее. Что значит "эффективнее", не очень понятно.
Можно увидеть на конкретных примерах, что язык сначала становится популярным, потому что на нём пишут много кода, а потом только в него по запросам пользователей добавляют новые фичи, когда их невозможно выразить в виде библиотеки.
PHP, Javascript, Python, Java, даже C++, все шли и идут этим путём. Если хочется, чтобы твой язык стал мейнстримным, пиши под него библиотеки. C# настолько тесно связан с .NET, что новички даже их не различают. C++ постоянно интегрирует сторонние библиотеки в виде компонентов стандартной.
Haskell, Common Lisp, Prolog, перекачанные уникальными фичами под завязку, кое-как ещё держатся на плаву, только потому что энтузиасты продолжают пилить под них библиотеки.
Go, Rust, Dart всё ещё пытаются набрать достаточно популярности, чтобы стать мейнстримными, только потому что для них написано ещё недостаточно много библиотек.