Вот да. Феникс "как библиотека" дает абстракции типа "контроллер", "вьюха" и слегка допиленный роутер. Может что еще по мелочи. Как фреймворк - соглашения о том как все это связать вместе с Plug, Ecto, Gettext, etc. и пару советов как бизнес-код организовать. Дает генераторы, чтобы автоматически все настраивать и пачку макросов. А сверху это вполне себе явный OTP app, да еще и с выделенным delivery layer.
Какую-то адекватную критику я слышал только про макросы. Но их немного. И разобраться в них несложно. Невелик минус.
От себя могу добавить, что мне не очень нравится "implicit view rendering". Когда чисто на нейминге автоматически вьюха для рендеринга подбирается и подобное.
Оба минуса - по большей части вкусовщина. Деливерить не мешают. Превозмогаются знанием как это работает.
А в остальном - все вполне себе годно. И все гораздо более explicit чем в той же рельсе. И проще чем в том же Hanami.
Скажем так - выпилить феникс из проекта довольно легко. А выпилить рельсу - почти невозможно.
Вот и бомбит, когда берут и
- смотрите вот папочки ... как рельса ... вот говно рубисты написали!
- а я из библиотек могу hello world собрать прочитав 0 документации, а в Phoenix навеоротили, наворотили-то!
Если человку сложно прочесть доки фреймворка - я не доверю ему писать код без фреймворков.
меня не менее ядерно бомбит с учебников по какой-нибудь технологии или языку, в которой используется подход "чёрного ящика" — прям руки тянутся к лопате
если в первой же главе не описана в общих чертах архитектура, общие принципы, и кое-какие ключевые внутренности — начинаешь башкой круть-круть, а нет ли чего более вменяемого из литературы ? а оно и нетути
— а давайте бахнем генератором helloworld c БД и пабсабом
— а теперь присядем, пёрнем, дёрнем, выполним десяток команд — ыыы, смотрите кнопочка появилась