LINUX.ORG.RU

Python или NodeJS

 , ,


0

2

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

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

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

Чуть более по сабжу: а разве на замыканиях в питоне не сделать приватные поля и методы?

Или я не совсем понимаю как или нельзя.

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

Только в JS это нормально реализовано.

Хорошо, что хоть что-то там нормально.

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

даже в ES2015 (ES6) его нету, а это самый актуальный нынче стандарт

А что не es5?

У меня вон бабель транспилит асинхронные функции и ряд пакетов в npm до сих пор использует костыли-библиотеки, созданные во времена ES5/6.

А у меня сын брата, буха с прошлой работы либы 3-го пистона приделывает ко второму. Что сказать хотел?

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

Открываем документацию nodejs и пытаемся там, что либо найти про async / await и не найти многочисленные фрагменты кода с callback

Их можно не юзать. Открой для себя промисификатор.

Странно это.

Это legacy с бородатых времён. Думаешь лучше всё это сломать?

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

Я про то, что опытные фронтендеры могут легко в фуллстек на ноде, а макак полно на любых языках, они мало кому интересны в контексте этих популярных платформ: python vs node.js, погоду они не делают

menangen ★★★★★
()

Python или NodeJS

NodeJS или Python

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

Думаешь лучше всё это сломать?

Нет. Просто изначально отвечал на это

Давно уже появилась, все забыли про цепочки промисов и колбеки.

и итоговый ответ такой - осталось куча легаси кода с кучей колбеков и хорошо если промисов.

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

Промис - это колбек на стероидах, а await - костыль для промиса, чтобы всё выглядело нормально. Так что оставшиеся колбеки можно легко обернуть в промисы, а потом сделать async функции и писать везде await, просто ты не в курсе.

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

В курсе. Только вот вы уверены, что тот кто поддерживает легаси код будет иметь время/возможность и знания для того, чтобы это переписать?

Kazun3500
()

Я тут где то ранее приводил примеры форматирования строк в питоне, и работы с датами там же. Что то бодрого ответа как это будет на жс не последовало (я то его и не ждал, но надеялся.)

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

что тот кто поддерживает легаси код будет иметь время/возможность и знания для того, чтобы это переписать?

И что, js виноват в том, что тот условный кодер тупой?

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

Я тут где то ранее приводил примеры форматирования строк в питоне, и работы с датами там же.

Приведи еще раз.

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

В жопоскроипте асинхрон нативный, ивентлуп под капотом, всё это seamless.

В питоне всё плохо, тебе на каждый чих приходится обращаться к asyncio. Я когда в первый раз реализовывал graceful shudown для сервиса обработки данных, который запускал множество корутин AKA «сервисов», столкнулся с тем, что ссаный ивентлуп ловил SystemExit. Обработка сигналов тоже своя, вообще всё своё, остальное на выброс. Короче, он ломает язык и всё прикручено с боку на соплях.

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

В шарпах на первый взгляд неплохо выглядит, там сразу async Task Main(... объявляется, похоже, что по-людски сделали и все кишки запрятали.

В плюсах так вообще треш, ничего общего с концепцией не имеющий, не понятно зачем оно там.

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

Go же совсем не гибкий - тупо Си на стероидах
Си
не гибкий

/0 же!
Указатели + тип void делают С просто неприлично гибким.

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

Ты опоздал этак лет на пять. Там давно есть аналог f-strings. Да и раньше от отсутствия никто не страдал, ибо там регулярки быстрейшие, и аналог str.format колхозится на раз.

Примеры:

headers.append(`Basic ${b64encode([user, password].join(":"))}`);
String.prototype.format = function (desc) {
	return this.replace(/\{(.*?)\}/g, (function (data, key) { return desc[key] || ""; }));
};
WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от Kazun3500

Вот именно - аналог, колхозится, нет по умолчанию. )

И что?

А даты?

Что даты?

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

Работа с датами. Например добавить к дате 1 день 5 часов 6 минут 3 секунды. Вывести дату в нужном там формате. Опять -наколхозить?

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

В питоне всё плохо, тебе на каждый чих приходится обращаться к asyncio. Я когда в первый раз реализовывал graceful shudown для сервиса обработки данных, который запускал множество корутин AKA «сервисов», столкнулся с тем, что ссаный ивентлуп ловил SystemExit. Обработка сигналов тоже своя, вообще всё своё, остальное на выброс. Короче, он ломает язык и всё прикручено с боку на соплях.

Спасибо за статью

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

Нет, у нас половина софта пишется на базе Node.js, npm, Amazon Lambda, и т.п., уже года 3 как без npm никуда, лучшее, что я видел в плане открытого софта. Может конкурировать только с pip, но у питона много протухшего софта в репах

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

Работаю с датами практически везде в Unix time, громоздкие классы для банального добавления ко времени пары часов — это позорище какое-то. Для вывода даты подключи библиотечку, да не парься. Но вообще, не правильно это, формат задаётся локалью, так и нужно выводить: (new Date()).toLocaleString().

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

Ага, тока какой ценой? Ценой анального траха со stack/buffer overflow, выходом за границы массивов и смертью на корейском юникоде

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

Например добавить к дате 1 день 5 часов 6 минут 3 секунды

Элементарно

var dt = new Date();
var ts = d.getTime();
var s = 1000, m = s * 60, h = m * 60, d = h * 24;
ts+= 3 * s + 6 * m + 5 * h + 1 * d;
dt.setTime(ts);

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

1+«1»=«11» не крашится, но в остальном та же хрень.

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

Справедливости ради, когда раюотаешь с pandas, у тебя появляется 3 не совместимых друг-с-другом типа дат-времени, не считая obsolete TZ вариантов.

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

Но вообще, не правильно это, формат задаётся локалью

Да, там с локалью и tz жопа, но хейтерок попался слабенький не в курсе.

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

Мне лень ему переменные расписывать, не нравится есть, вон, moments

moment().add(1, 'days');
//etc
Лучше?

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

Возможно у меня просто закрепилось плохое первое впечатление по поводу работы с датами в жс.

А, что насчет нумерации месяцев с нулевого? Чем в жс это можно обосновать? И помойму это только в жс.

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

Но вообще, не правильно это, формат задаётся локалью, так и нужно выводить: (new Date()).toLocaleString().

Как минимум иногда произвольный/не зависимый от локали формат вывода даты/времени нужен и его отсутствие доставляет некоторые неудобства.

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

наколхозить, навелосипедить.

Ты считаешь, что стандартная либа пистона везде ОБЯЗАНА быть реализована?

Тут жс уже попахивает примитивизмом.

Даты везде говно, ничего с этим не сделаешь. В яве, например, их переделывали раз пять, как их не делай, все равно выходит криво.

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

Ты считаешь, что стандартная либа пистона везде ОБЯЗАНА быть реализована?

Я не говорю ориентироваться на питон. Можно на другой язык. Но просто я вот не знаю, где ситуация с датами такая же плохая как в жс. Лучше наверное всюду.

В яве, например, их переделывали раз пять.

Отлично) А в жс решили не делать работу с датами вообще. Базовые вещи - да, есть и отлично, кому нужно остальное пусть сами пишут.

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

Там много такого. Но углубившись, ты найдешь дичь в любом языке.

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

Вопрос отчасти снят, погуглил. Но блин, хоть убейте, но если с форматированием дат, сложением дат в жс как то можно смириться, но это - хрень полная.

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

Не, это реально дичь. Не помню где это мне полезно оказалось, было такое, но всё равно дичь. Дни месяца при этом всё равно с единицы.

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

Мне показалось это шапка типа из мортал комбата с широкими полями такая корейская вроде или тип того, а пейсы не пейсы а веточки иль там ещё чёнить такое типа не знаю просто палочки. Ну там они всякие бывают https://upload.wikimedia.org/wikipedia/commons/c/c3/Korea-Seoul-Gyeongbokgung-Palace_guard_in_winter-01.jpg https://ae01.alicdn.com/kf/HTB1P9PMVwHqK1RjSZFgq6y7JXXaU.jpg_q50.jpg https://cs5.pikabu.ru/post_img/2015/06/02/7/1433244173_413287146.jpg

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от Princesska

Без сборщика мусора, который в WASM могут запросто и не завезти, этого не произойдёт

Я не знаю, почему отсутствие встроеного сборщика в 2020 стало минусом.

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