LINUX.ORG.RU

Python или NodeJS

 , ,


0

2

Сейчас, как я вижу, NodeJS становится всё популярнее. В чём его плюсы? Что у него один и тот же язык с браузером? В npm много пакетов, наверно, применение JS сейчас очень широкое.

Или обработать генерируемую через JS веб-страницу. Наверно, лучше в таком случае использовать тот же самый язык? У безголового Firefox есть библиотеки для работы с питоном или NodeJS, но чтобы можно было работать с ним через bash, мне ничего не удалось найти.

Ответ на: комментарий от peregrine

Понятно, что если взять какой-нибудь lua, на котором нет больших проектов и 1,5 недоразвитых IDE, то vim/emacs победят.

Так и на питоне не нужно большие проекты делать. Потому что всё развалится вне зависимости от крутости IDE. Хотя величину лучше мерить не по строкам, а по участникам. Если n > 1 то питон уже не подходит.

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

По секрету скажу: лямбды применяются шире, чем ты думаешь.

настолько шире, что совсем не видно в килотоннах говнокода на гитхабе :)

Тело всяких if и for это тоже по сути лямбда.

Эти всякие – конструкции.

Без них небось неудобно было бы кодить? Хотя возможно. Вот и питон немножко инвалид,

Ну в инвалидном хаскеле тоже много чего нет, а преподносится это как преимущество и комфорт :)

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

На самом деле всё просто.

С++ и Java для софта, JS и производное для вебдева, Lua и Python для скриптов, плагинов и аддонов. А все эти Electron или Kivy – обычные девиации или незначительные погрешности из устоявшихся правил.

RedEyedMan666 ()

Ну в JS хотя бы старый добрый единственно трушный C-подобный синтаксис в отличии от психоделического питонического местами просто мозги вытекают (yield … from и прочее где диктатор пожалел новые keywords ввести).

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

Lua

это творение бразильских попов по отстойности превзошло даже пёрл раз в 10. это было конечно же не легко так как пёрл сам по себе жутчайший кал но бразильским попам это каким то образом удалось!

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

это творение бразильских попов

Если зрить в корень, то это обезжиренный питон. Немного доработать напильником, и был бы годный ЯП. А так да, некоторые особенности вымораживают.

anonymous ()

У каждого языка своя ниша. Поэтому условие ИЛИ может быть только в контексте задачи.

Python - это большая стандартная библиотека, куча всего в pip, куча понаписанного и отвеченного на стаке, по нему много статей и так далее. Он хорош для скриптоты, утилит (в линуксе их много на питоне), GUI, клея в гетерогенной среде (AI), ботов, парсеров, веба (с оговорками).

NodeJS - это скриптота + скорость, потому что V8 компилит код в нативки. Медленнее Java из-за отсутствия JIT, но быстрее Python. Тоже на хайпе, тоже есть куча всего готового. Хорош как один язык на фронте и бэке, особенно если SPA, очень удобно. Некоторые штуки можно сделать только на нём, например, пре-рендеринг (поправьте, если ошибаюсь). Годится для веба, ботов, парсеров, утилит. В качестве остального - сомнительно, из-за маленького количества фич самого языка и сырости (кривые, вечно дырявые библиотеки, сюрпризы в TypeScript (смены контекста и прочие прелести, о которых узнаёшь только в рантайме)).

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

В плане возможностей NodeJS проигрывает Python. В плане скорости выполнения Python (cpython) проигрывает NodeJS. Под какую-то специфическую задачу может подходить только один язык.

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

V8 компилит код в нативки. Медленнее Java из-за отсутствия JIT

взаимоисключающие параграфы детектед.

NodeJS любят за скорость отдачи статики

статику бекендом никто не раздает.

BTW, nodejs.

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

взаимоисключающие параграфы детектед

JIT использует оптимизации, перекомпилирует части кода до оптимального результата. V8 просто компилит.

статику бекендом никто не раздает

В новостях фигурировало именно это преимущество. Скорее всего там не просто статика, а с какой-то логикой. Например, раздавать только залогиненным, только если есть доступ и так далее.

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

GUI, клея в гетерогенной среде (AI), ботов, парсеров, веба (с оговорками)

Чиво?... Кака раз для гуя он плохо подходит, ибо тормозит. AI — только для набросков, поскольку там часто возникает потребность по десять раз на день набросать модель на коленке. Утилиты — да, это единственное применение питона, По сути веб — это что-то вроде веб-сервера на баше, только на питоне.

NodeJS - это скриптота + скорость, потому что V8 компилит код в нативки. Медленнее Java из-за отсутствия JIT, но быстрее Python

В коммерческой разработке Python любят за высокую скорость написания кода и устоявшийся стек с кучей всего

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

В плане скорости выполнения Python (cpython) проигрывает NodeJS

Программа на чистом питоне действительно проигрывает программе на чистой ноде. Но не стоит забывать, что нынешняя мейнстримовая религия питона диктует написание сишных модулей для выполнения ресурсоемких задач. К тому же, есть PyPy, который в плане JIT похуже V8, да и совместимость с питоньим бардаком (манки-патч, перехватывание доступа атрибутов, exec) не полная, но все же, этот вариант есть.

byko3y ()
Ответ на: комментарий от InterVi

JIT использует оптимизации, перекомпилирует части кода до оптимального результата. V8 просто компилит.

https://v8.dev/docs/turbofan

В новостях фигурировало именно это преимущество. Скорее всего там не просто статика, а с какой-то логикой. Например, раздавать только залогиненным, только если есть доступ и так далее.

по нормальному это делается заголовком X-Accel-Redirect на нужный статик файл.

гонять файло FS -> V8 -> SOCKET это упорин.

drsm ()