LINUX.ORG.RU

JS vs Python для web?

 ,


0

4

Что выбрать из этих двух технологий вне зависимости frontend или backend.

По JS(+React, etc) на мой взгляд вакансий существенно выше чем по Python(Django+Flask). Кто в теме, новомодная Webassembly - это замена JS?

4.3. Сообщения, провоцирующие нездоровые дискуссии.

vvn_black ★★★★★
()

Что выбрать из этих двух технологий вне зависимости frontend или backend.

Если frontend то python наверное

pi11 ★★★★★
()

Ты сравниваешь жопу с пальцем. Django, например, можно использовать вместе с React, а можно и без. Что ты хочешь знать? На чем пилить API для фронтенда? Фронтенд - React/Angular/Vue. Там только JS. Бэкенд - python, nodejs, golang или php. Django для API юзать весьма избыточно.

Если собрался фулстек пилить, то бери Django, аналогов в JS я не видел.

Что касается количества вакансий, то JS сравнивать с чем-либо неуместно, потому что это слово фигурирует уже чуть ли не в каждой вакансии в силу широкой сферы применения. Даже в бэкенд-вакансиях слово JS нередко фигурирует во фразах вида «желательны базовые знания JS». Если говорить об использовании JS чисто для бэкенда, то его доля не столь велика и, думаю, уступает тому же php, например.

dimuska139 ★★
()
Последнее исправление: dimuska139 (всего исправлений: 1)
Ответ на: комментарий от kostya_shestakov

Что выбрать из этих двух технологий вне зависимости frontend или backend.

А frontend — это то, что на клиенте запускается.

te111011010
()
Ответ на: комментарий от dimuska139

Я новичок и хочу выбрать для себя технологию в которой буду развиваться. Определил точно что это будет веб. Мониторил вакансии и выбрал два направления JS и Python. Я из Питера, но вакансий по django мне показалось как-то очень мало. Если же брать JS то там на горизонте маячит WebAssembly. Хотелось бы узнать мнения спецов по этому поводу. Возможно я выбираю не из того(не из JS и Python).

kostya_shestakov
() автор топика

вакансий существенно выше чем по Python(Django+Flask)

а больше всего вакансий продавцами в Дикси

vedowi6419
()
Ответ на: комментарий от kostya_shestakov

WebAssembly

Не маячит - забей

Ты для начала определись, бэкенд будешь разрабатывать или фронтенд - а там уже выбирай язык и технологии. Никто и то, и то одновременно не разрабатывает - сил и времени не хватит, всё очень быстро развивается. Да, есть фулстек-разрабы, но по большей части они работают с легаси тех времён, когда ещё не было всяких ангуляров, а на фронте болталось jQuery. И, да, фулстек - это вечный мидл.

dimuska139 ★★
()
Последнее исправление: dimuska139 (всего исправлений: 1)
Ответ на: комментарий от vvn_black

Обожаю эту аргументацию уровня вброса какой-то поделки сумрачного васяна как пример того, что что-то подходит для веба, особенно когда это что-то написано на js один хер, кек.

anonymous
()
Ответ на: комментарий от vvn_black

Конечно теперь рассказывай что ты просто шутил. В этом дерьме нет смысла как и в твоих оправдашках. Python во фронте не существует без js. Запустить то ты можешь это дерьмо, но кому такая херня нужна, в js и без этого дерьма хватает, эти идиоты и сами справляются.

anonymous
()
Ответ на: комментарий от dimuska139

Вопрос по WebAssembly как замена JS возник по причине: посмотрел видео на youtube у некого айтиборода по blazor.

Если взять Backend, то что бы вы посоветовали с целью дальнейшей работы, а не просто для себя?

kostya_shestakov
() автор топика
Ответ на: комментарий от anonymous

Конечно теперь рассказывай что ты просто шутил

Ну да ну да

Вот это же заметить невозможно (сарказм):

<script type="text/javascript" src="/src/brython.js"></script>
<script type="text/javascript" src="/src/brython_stdlib.js"></script>
vvn_black ★★★★★
()

Что выбрать из этих двух технологий вне зависимости frontend или backend.

JS, ведь он вне зависимости.

gedisdone ★★★
()
Ответ на: комментарий от kostya_shestakov

Дворником трудоустройся и кончай срать на форме тупняком.

WitcherGeralt ★★
()
Ответ на: комментарий от kostya_shestakov

Ну я бы не зацикливался на конкретном фреймворке, это во-первых. Во-вторых, взял бы что-то, что относительно стабильно. JS на сервере используется, да, но там чёрт ногу сломит: всё быстро меняется, а также есть фреймворки на typescript - офигеешь вникать и разбираться. А пока вникаешь, всё уже устареет.

В бэкенде активно используется… да, php. Очень широко распространён этот язык. Если выберешь его, то рекомендую сперва без фреймворков пописать код (не формошлёпство, а API всякие), а потом возьми Symfony (в этом фреймворке код весьма качественный и архитектура) и пиши по-нормальному, соблюдая PSR и покрывая код тестами.

Выберешь Питон если, то, опять-таки, сперва без фреймворков, потом Flask или FastAPI. Соблюдая PEP и покрывая код тестами.

Вообще не столь важно, что ты выберешь, потому что хороший специалист всегда востребован. Не важно, php или python - крутых спецов мало, и они востребованы вне зависимости от количества вакансий на hh.

dimuska139 ★★
()
Ответ на: комментарий от vvn_black

Оригинально, но в реальных проектах это юзать было бы знатным извращением.

dimuska139 ★★
()
Ответ на: комментарий от kostya_shestakov

Вопрос по WebAssembly как замена JS возник по причине: посмотрел видео на youtube у некого айтиборода по blazor.

Гнаться за трендами бесполезно. Вот когда это получит широкое распространение - тогда и изучай. Осваивай то, что уже вовсю широко используется.

dimuska139 ★★
()
Ответ на: комментарий от pawnhearts

Для прототипа - возможно. А так Django, как и DRF - Вордпресс в бэкенде. Большинство проектов на этом - параша с толстыми моделями и неочевидными запросами к БД, которые обычно делаются абсолютно из любого слоя абстракции приложения (хоть из сигнала, хоть из вьюхи, хоть из сериалайзера, хоть еще откуда-то). А производительность Django - это отдельная тема вообще.

Возможно, это дело в самих разрабах, но всё же. Я юзал DRF, и могу сказать, что для API я бы взял лучше FastAPI вместо Django-монстра. Да и асинхронность иногда удобно юзать (в Django её не завезли по сути, и вряд ли нормально завезут в итоге). А вот если б у меня был огромный проект на Django, к которому надо API прикрутить, то DRF - без вариантов.

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

Это всё вопрос прямоты рук. С производительностью - тоже. По крайней мере там есть масса инструментов чтобы её тюнить - отслеживать и отлаживать запросы, автоматическое кеширование и всякие штуки типа https://pypi.org/project/django-auto-prefetching/

pawnhearts ★★★★★
()

На самом деле это вопрос скорее религиозный. Мне хватает django jquery bootstrap.

Webassembly сейчас не готова, и по скорости и по функционалу

И вообше, все решает заказчик, может ему вообше php нужно

ism ★★★
()

Я вспомнил как 10 лет назад корпрорация добра везде пиарила Python и даже хотела добавить его поддержку на клиенте в Хроме. Тогда бы тебя сумасшедшиим объявили и закидали дерьмом, мол на JS сервера не пишут… А потом появился Node.js. Python хорош своей универсальностью. Он полностью заменил Perl на Linux. Куча всяких тулз на нем написана… Но сейчас каждая вторая вакансия на Python от дебилов, жертв всяких бизнес курсов, которые с помощью нейронок пытаются создать аналог SkyNet, но не будем о м*даках… JavaScript выбирай короче, он универсальнее. В путинско-розенберговской радиоактивной нефтепомойке вся разработка сводится к вебу либо 1С. За последний давно мало платят. Сможешь и бэк и фронт писать на одном языке.

tz4678 ★★
()
Последнее исправление: tz4678 (всего исправлений: 1)

Про WebASSembley пишут педе-rust-о-макаки. Их тоже не слушай. Это по-ходу мертворожденная технология как HTTP/2, который все дружно скипнули, не заметив как вышел HTTP/3

tz4678 ★★
()
Ответ на: комментарий от pawnhearts

Ну спорный вопрос. Асинхронности нет - значит, эндпоинты, которым требуется N раз обратиться к СУБД будут это делать строго последовательно. Нечастый кейс, но я неоднократно сталкивался. Ну либо эндпоинт дробить на несколько и из фронта их асинхронно дергать.

всякие штуки типа https://pypi.org/project/django-auto-prefetching/

Для простых выборок сгодится. Но в большинстве случаев это не даёт ничего. Вот тупит у тебя запрос - и тебе DBA сделали его версию, которая работает в 100500 раз шустрее, но там спереди юзается with и ещё несколько плюшек, которые выразить в Джанге не получится. И чего, куда эти prefetch_related после этого засовывать? Тем более, что такие штуки есть во многих ормках, не только в Джанговской. Как и кеширование результатов запросов, кстати.

dimuska139 ★★
()

frontend

Python

🤦‍♂️

JS - должен остаться в браузере, там и умереть. Если перестаёт хватать Python, тогда уже нужно смотреть в сторону Go и остальных.

th3m3 ★★★★★
()
Последнее исправление: th3m3 (всего исправлений: 1)
Ответ на: комментарий от kostya_shestakov

Я новичок и хочу выбрать для себя технологию в которой буду развиваться.

Например, https://ru.wikipedia.org/wiki/Теория_алгоритмов

Определил точно что это будет веб

Кажется, это не технология, а помойка или инструмент...

Мониторил вакансии и выбрал два направления JS и Python

Вакансии дня в Санкт-Петербурге
Гибщик от 60 000 до 85 000 руб. Гнём Всё, Санкт-Петербург

Shadow ★★★★★
()
Ответ на: комментарий от dimuska139

Я всегда думал, что orm - это чтобы сразу на структуру данных выхлоп SQL отмапить, а не избежать SQL руками.

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Я наоборот для инсертов в основном юзаю. Из бд чаще нужно получить несколько полей или результат какого-то рассчёта, а не записи целиком. Если же ты хранишь в бд объекты, то, имхо, напрашивается nosql.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от Shadow

Я тоже так считаю, но реальность такова, что далеко не всегда выхлоп SQL можно замаппить на модели. И далеко не всегда сам запрос можно оптимальным образом сделать средствами ORM.

Как вариант, юзать квери-билдеры и raw-query вместо ORM и маппить выхлоп SQL не на Entity, а на dto-объекты (не связанные с таблицами в БД).

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

Вообще тут много вариантов. Ты можешь выхлоп view или хранимок замапить на модели. Или сериализатор. И большинство запросов таки нормально пишется средствами orm, даже джанговской. А уж какой-нибудь алхимией можно что угодно сделать.

pawnhearts ★★★★★
()
Ответ на: комментарий от dimuska139

Как вариант

Я вот это и имел ввиду.
И SQL сервер при деле, и объекты в порядке.
Тот же peewee ORM raw метод умеет по страницам выводить.

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Nyet. Отмапить выхлоп sql это лишь одна из функций комбайна.

crutch_master ★★★★★
()

Из всего перечисленного я бы взял го.

anonymous
()

C++ бери. Он для веба лучше подходит.

anonymous
()

Для фронтэнда либо JavaScript, либо TypeScript (рекомендую, проект больше одного файла без типов быстро превращается в адское месиво). Третьего просто не надо, особенно если интересует востребованность как специалиста на рынке.

Для бекэнда выбор уже больше. Если хочется писать всё на одном языке, то очевидный NodeJs. Однако и Python подойдёт. Правда, если ты хочешь сделать простое REST API, то Django будет явным оверкилом, тут нужно что-то попроще типа Flask.

Если хочется стабильности и энтерпрайза, то Java со Spring (если хочется синтаксического сахара и новизны, можно взять Kotlin вместо Java). Вакансии будут всегда и очень редки ломающие изменения. 100500 респонсов в секунду 99% проектов не нужны, даже StackOverflow публиковал статистику и там было всего несколько сотен запросов в секунду. Больше можешь ожидать только если ты делаешь новый фейсбук/инстраграмм/гугл etc. С другой стороны, главное БД правильно выбрать и спроектировать работу с ней, бекэнды без проблем можно запустить во множестве инстансов и компенсировать любые тормоза (если только на бекэнде нет лютого говнокода).

Можно попробовать упороться по Scala (база та же JVM) и функциональному программированию. Код красивый и правильный, вакансий мало, но платят много. Ну и если не найдёшь, то так как JVM стек очень легко будет перейти на Java/Kotlin и делать вид на собеседованиях, что ты только на них и пишешь.

Ещё есть Dart и Go, но первый мне не зашёл (во всяком случае на бекэнде), а со вторым не работал.

PHP не бери, это зашквар, с тобой только другие PHP-шники общаться будут.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 4)
Ответ на: комментарий от kostya_shestakov

С целью трудоустройства и при этом карьерного роста рекомендую Java или Node.js.

В случае с Node.js ты получаешь карьерные опции в будущем: перейти на фронтэнд или стать фулл-стек, затем перейти на мобилки через cordova.

В случае с Java ты получаешь карьерные опции в будущем: перейти на Scala, стать сеньором и начать угорать по функциональному программированию за сотни нефти, либо перейти на Kotlin и вкатиться в Android.

То есть каждая ветка развития даёт две дополнительные опции, которые можно использовать (а можно и не использовать, но главное, что они есть) в случае изменения ситуации на рынке труда или личных предпочтений.

В случае всех остальных веб-языков ты будешь на вечно привязан к одной сфере и твои знания будут бесполезны в других (кроме основ программирования - что такое переменная, класс, функция и т. д.).

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)

А зачем вам нужен WASM, тут больше в этом вопрос. Если HiLoad - то тут опять же какой. NodeJS не серебряная пуля, хотя из современных стеков наиболее близка к ней, ИМХО.

NodeJS стал стандартом IBM (показатель, в отличии от Python, ЕМНИП), скажем, поэтому по нему вакансии были и будут. И тут и blockhain, и meteor-стартапы, и frontend (который уже не про анимашки), и electron-приложения, и hiload проксисервера + всё, что работает с MongoDB/RethinkDB/ArangoDB удобнее дефакто делать на NodeJS. Но это определённый круг задач. На практике - даже прототипы а-ля Django-приложения собрать можно та каком-нибудь SailsJS, работать будет на порядок быстрее. Проблема в основном, что backend программисты почему-то считают кривой python лучше кривого javascript. Хотя последний более развитый язык, с более развитой экосистемой. Правда на JS порог вхождения хотя бы на middle выше, т.к. у V8 есть куча нюансов. Плюс проблема ноды - бизнес верит, что вчерашнего фронта можно пересадить на бек, стек то один. Кстати, из мира фронта наиболее вкусно выглядят Vue и Dart/Flutter, а не эти ваши кривые React/Inferno. Для тырпрайза стандартом остаётся Angular, местами заменяемый на Ember.

Python тоже будут вакансии. Но это опять же - смотря для чего. Django скорее вредит в развитии (часто от питонистов слышу просьбу не называть в приличном обществе их джангистами), увязывать его с Flask вообще дичь (зачем?). Для Python есть для webdev более красивые и функциональные вещи - Aiohttp, Vibora, Sanic, правда они требуют уже больше усилий для написания кода (на самом деле выйдет по затратам +/- то же, что ). Но Python сейчас перекрывается по возможностям языком Julia. Есть теория, что последний вытеснит Python для многих вещей и нишами Python станут простые ML-задачи, быстрое прототипирование, скрипты автоматизации и обучение программированию. Если VM сделают полегче - возможно встраивание, вместо lua.

Где-то рядом с Python лежит Ruby. Он скорее у нас не популярен. Почему наши люди выбрали Python а не Ruby - вопрос. Rails по экосистеме была более взрослой, нежели Django. Но тут видимо вкусовщина. Ruby кстати тоже никуда уже в скором времени не денется и в том же СПБ рубисту живётся очень не плохо.

Для администрирования Python хорош, но есть опять же Perl7 и множество perl-скриптов, которые уже работают. Поэтому тут тоже не в пальме первенства.

Отсюда - что именно хочется от webdev? Просто востребованность на рынке - учите Python (Aiohttp, Django), учите NodeJS (MEAN). Но это если за еду.

silver-bullet-bfg ★★
()

Да, совсем забыл. Если хотите в мобилку - NodeJS хороший вариант через Cordova (Framework7, Ionic, etc.). Dart выглядит интересно, но ставит в тупик HR’ов, т.к. вроде и фронт/мобильщик/бекендер - но продать сложно, ибо Dart

silver-bullet-bfg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.