Извините за оффтоп, но хочу спросить ваше мнение.
На хабре полно материала о том, что большинство сайтов недоступны с выключеным js. И в целом полно негатива, что страницы нынче очень тяжёлые и тормозные.
Буду говорить образно.
Я скоро должен буду начать относительно большой для себя проект. Стартовать можно сразу на том же Sapper, Nuxt - как пример. Он во многом нуждается в этом.
На тему JS полно шума и мне трудно разобраться - довольно мало опыта.
Я могу начать на условном Django и строить фронт на его темплейтах, минимально используя JS. Но из-за этого я буду обязан разбить проект на части: которые могут полностью без него, и которые только с ним - отдельный раздел для прослушивания музыки, например - вне основного темплейта сайта.
Или же я могу взять инструменты выше, от Django взять лишь api. Тогда у меня будет единое приложение, и можно сделать тот же глобальный музыкальный плеер, который не будет рваться при переходах по всем страницам.
Это проект только мой. Я могу уступать в каких-то моментах в пользу других, и гнуть его в любую сторону.
Вопрос чисто в идеалогии, наверное. Я понимаю, что сейчас диктует текущее развитие.
Что вы думаете об этом?
Мне что-то подсказывает, что я нахватался мусора в избыточном количестве и следует наращивать умения в чем-то конкретном актуальном, а не так. Вероятно, тогда веб на каплю весом станет легче - если правильно готовить.
Извините, если это все звучит глупо.
Я сейчас тоже в свободное время делаю бету очередного finance tracker. До этого моим основным языком был Python в связке с Django и template-driven разработкой.
Всё зависит от вашего конкретного проекта. Расскажу про свой.
Для меня критично, чтобы бэкенд кушал минимальное количество ресурсов. Хотелось какой-то изоморфичности, чтобы какие-то простые куски кода можно было переиспользовать между платформами (константы, интерфейсы в TS, простая бизнес-логика и т.д.).
По этим двум требованиям питон у меня отпал. Django и их ORM синхронные и корутины не поддерживают; втащить через channels поддержку сокетов — адище полное, работает как говно. FastAPI же очень херово интегрируется с SQLAlchemy (encode/database вообще не оправдал ожидания). Я видел, как на 100 rps хорошая машина за $80 на DigitalOcean выжирала всю память и выдавала пятисотки.
Поэтому я решил делать бекенд на TS + Express + Sequelize (худшая ORM в моей жизни), и пока я доволен, а клиент на Sapper. Одной машины по моим тестам хватит где-то на 90к открытых сокетов до оптимизаций v8 и на 400-800 rps (главный боттлнек, на самом деле, будет база).
При таком раскладе также получится сделать более красивый и удобный клиент. Надо признать, что Jinja2 — так себе шаблонизатор. Он только про составление XML-дерева, а для стилей и JS придётся придумывать какой-то огород некрасивый. Сделать даже один интерактивный компонент будет морокой.
Сайд-преимущество: одна экосистема (везде Jest: в компонентах, в бизнес-логике на клиенте, в сервисах на бекенде).
Как-то так.