LINUX.ORG.RU

Python или NodeJS

 , ,


0

2

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

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

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

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

А что не es5?

Очевидно, потому что далеко не каждый админ меняет юзерам браузеры каждый месяц/автоматом. ES2017 - это очень молодой стандарт, пусть даже отдельные фичи из него тот же фурифокс поддерживал аж в 2015 году, потому что сайты обычно не делают под единственную версию браузера. Да, энтерпрайз до сих пор на ES5 сидит.

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

Давай не путать допотопные проекты на поддержке и вполне себе современный современный софт.

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

А в жс решили не делать работу с датами вообще.

В жс лучше бы действительно не делали с датами вообще ничего, кроме форматирования в isoString. На самом деле там сделали слишком много.

Отлично)

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

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

Ну и в чём проблема? Есть moment.js. Подключай его, да делай что хочешь.

Но просто я вот не знаю, где ситуация с датами такая же плохая как в жс.

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

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

но это - хрень полная

Да, сделать +1 это проблема неподъёмная. Ты действительно не в курсе в чём там жопа насчёт дат.

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

Ну он как бы намекает, что Date не для конечного использования.

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

В жс лучше бы действительно не делали с датами вообще ничего, кроме форматирования в isoString. На самом деле там сделали слишком много

У нас тут как раз уже месяц любятся с датами в проекте, и всё никак не могут закончить. Потому что в JS крайне убогая локализация, о чем я уже давно писал.

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

Давай не путать допотопные проекты на поддержке и вполне себе современный современный софт.

Давай без двойных стандартов. await был еще на 52 firefox а самый старый esr сейчас - 68. Если браузеры без поддержки await - современный софт, то второй пистон - тоже.

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

Потому что в JS крайне убогая локализация

Так не используйте её. Есть же moment.js

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

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

Это правильно, нечего раздувать стандарт. И без того в современном браузерном js слишком много всего. И это все нужно тянуть вечно, выбрасывать ничего нельзя. Это в питоне можно хоть черепашку в стдлибу засунуть. Стандарта нет, единственная реализация, набивай базовую поставку чем хочешь.

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

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

Ты действительно не в курсе в чём там жопа насчёт дат.

Расскажи

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

Потому что в JS крайне убогая локализация, о чем я уже давно писал.

Сейчас же вроде не так давно что то улучшали, в плане локализации.

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

Я не отрицаю, что не знаю каких то глубоких проблем с датами

Но мнение имеешь, и из +1 раздуваешь мегапроблему.

что на них все забили и несколько не понимаю почему

Конкретно с +1 кто-то решил, что месяц - это индекс и так удобнее. Потом это просто не стали переделывать, чтобы ничего не ломать. Вот и всё. Никакой мегапроблемы в этом нет. Просто надо иметь ввиду, что там вот так.

Расскажи

Блудный цирк с tz из-за чего можно словить разницу до gmt когда получает дату с какой-нибудь либы и делаешь JSON.stringfy. Конкретный кейс не назову.

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

Вот чёрт! Двойку мне. Вспомнил ремастер полупопсомульт https://www.youtube.com/watch?v=G0CY3CA30Do вместо Ъ «Морозко» https://mtdata.ru/u29/photo73D6/20073831474-0/original.jpg https://ic.pics.livejournal.com/dubikvit/65747770/1947659/1947659_900.jpg

Было бы приколько если бы у бабы яги был лес берёзок https://www.youtube.com/watch?v=9T9rPTGT1-o таких :D Я бы в дестве обосрался окончательно

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

Да оно нахрен не нужно, всё равно стандарт слишком неповоротливый и никогда не поспеет за хотелками. А там, пока еще все esr браузеры и lts ноды не подтянутся, это в продакшоке использовать нельзя. Поэтому есть смысл отдать на реализацию в либу, а стандарт продумывать и делать по минимуму.

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

Пруфов, конечно, у тебя не будет? Потому что статистика использования браузеров говорит прямо противоположное сказанному тобой.

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

Ну вот если все остальные тоже не будут знать, то дальше мантры закапывание жс васмом и не уйдёт.

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

Очевидно, потому что далеко не каждый админ меняет юзерам браузеры каждый месяц/автоматом.

На это пруфы? Был свидетелем как при текущей 58 версии (firefox) человек работал на 38-40. Сейчас не удивлюсь если найдутся люди на 60-65, а то и младше. Часть людей элементарно не знают, что нужно/можно обновлять браузер.

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

Лорчую. Лишь бы либа шустрая была и сто мегабайт не весила, как твои коллеги любят.

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

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

Зачем он там нужен? По крайней мере на этом уровне абстракции. Что будет мусором и что будет сборкой?

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

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

Останется 85% мощных либ на любой чих

И сколько из них заработает после смены минорной версии зависимостей?

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

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

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

Я не знаю, почему ты так привязался к ним. Колбэки можно обернуть в промисы, ровно как и промисы можно передать с функцию с колбэками с минимальной прослойкой. Это исключительно вопрос сахара и простоты читаемости.

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

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

А тебя не смущает, что JS — это изначально одна большая сопля сбоку браузера? Я вообще считаю, чт овся эта асинхронка - это путь вникуда, и обоим языкам нужна нормальная многопоточность.

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

Давай без двойных стандартов. await был еще на 52 firefox а самый старый esr сейчас - 68. Если браузеры без поддержки await - современный софт, то второй пистон - тоже

Да.

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

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

Статистика где? В порносайтах интернета? Есть огромное число офисных сеток со старым софтом на компах, где используются старые браузеры, вплоть до IE11.

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

IE7 еще вспомни. В любом случае бабелем это фиксится и все на это забили.

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

Плюсы в том что огромное количество веб-макак теперь могут фигак-фигак и в продакшн.

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

А часть знает, но не может обновить, так как сисадмин права не даёт, а сам сисадмин один на огромное количество пекарен и что-то делает только когда пипец происходит (привет госконторам).

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

… что-то делает только когда пипец происходит (привет госконторам).

Двоих таких недавно уволили /так что лучше «что-то делать»/.

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

Плюсы в том что огромное количество веб-макак теперь могут фигак-фигак и в продакшн.

Вся ирония в том, что так не получится. Если не писал никогда на языках со стат.типизацией, то в в более-менее серьёзном js кодинге вообще делать нечего.

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

Плюсы в том что огромное количество веб-макак теперь могут фигак-фигак и в продакшн.

Вся ирония в том, что так не получится. Если не писал никогда на языках со стат.типизацией, то в в более-менее серьёзном js кодинге вообще делать нечего

Прямо сейчас работают с макаками, которые не знают окромя JS ничего. Прекрасно у них получается в херак-херак, пусть и работает результат отвратительно.

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

Прекрасно у них получается в херак-херак, пусть и работает результат отвратительно.

Понятно, но это все будет работать очень не долго и макак придётся выкинуть.

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

И кто тогда будет переписывать усе на новый фреймворк?

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

Понятно, но это все будет работать очень не долго и макак придётся выкинуть.

Что-то не до горизонта, ни за горизонтом таких технологий «не видать».
Слово макака - производное слово от «кака».

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

Ты о чем? На js нельзя говнокодить, получается совсем всё плохо. Если яваговнокод может как-то жить, то js - совсем нет.

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

Ты о чем?

О том, что уже лет пятьдесят индустрия топчется на месте

"Какой ты была, такой ты и осталась ..."

HTML и все прилепленное к нему тянет лишь на - «курсовую».

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

О том, что уже лет пятьдесят индустрия топчется на месте

А что делать? Длинные циклы разработки, языки и инструменты делает хз кто.

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

О том, что уже лет пятьдесят индустрия топчется на месте

Каких пятдесят? Всего-лишь 30 лет отставания от новейших разработок.

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

На js нельзя говнокодить, получается совсем всё плохо. Если яваговнокод может как-то жить, то js - совсем нет

Если сильно не выеживаться и есть надсмотрщик с плеткой, то на React/Vue можно вполне получать работающие проекты в десятки тыщ строк, сделанные руками индусов. 50 тыщ — это примерно та критическая масса, за которой уже никакие React с Vue не спасут.

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

Ты отдаешь себе отчет, что твое «лично видел» не годится ни для какой статистики и бизнес не опирается на то, что ты там видел лично. Есть статистика. Она собирается повсеместно.

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

Есть статистика. Она собирается повсеместно

Не существует никакой повсеместной статистики.

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

Я про серверную писанину. С фронтом как-то справляются.

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

Память жрет да. Но в случае если нужна иде в которой есть максимум возможностей из коробки, которой сможет пользоваться любой (это я касаемо emacs) - я бы сказал что в случае их продукция это лучшее, что есть.

Пользоваться Spacemacs и всё. Проблем не возникло ни с одним стеком, на настройку - пара минут на скачивание слоёв. Не вижу минусов.

Глянемс, но помойму когда я искал себе иде под питон, то этот вариант я отмел. Ну и как минимум - sql они как я понимаю не умеют? P.S.Долго лазил по их сайту, ища где же ссылка на скачку ИДЕ. Сайт сильно тормозит. Ссылку нашел, скорость скачки 60 кб/с. И проблема у меня не с интернетом.

Показатель IDЕ, видимо главный, то как твой провайдер работает. Или твоё сетевое оборудование.

silver-bullet-bfg ★★
()
Ответ на: комментарий от anonymous

Есть компании, которые на долгие года с нами. Как те же Microsoft или Oracle. А есть - те, про которые забудут как только пройдёт мода.

silver-bullet-bfg ★★
()
Ответ на: комментарий от anonymous

Ну да, строить из себя элитку, пользуюсь мэйнстримовым продуктом, сложно.

Скорее наоборот, благородный дон. Понтов больше чем от фанатиков JetBrains я видел только от фанатиков Apple… И главное - когда им то же самое только без over-дох**я опертивки показывает в emacs пукан разносит)

silver-bullet-bfg ★★
()
Ответ на: комментарий от menangen

Щщщаз, она быстрая за счёт v8 и JIT.

Зря ты так. JS асинхроннен внутри. Это делает его уже быстрее VM пидона. Asyncio костыль, который лежит вне архитектуры языка.

Асинхронность уже давно есть и в питоне со времён Tornado, Twisted и других обвязок над libevent

Tornado сложен, там костыли для асинхронности, которые не стыкуются с текущим стандартом (хотя сейчас может переписали). Twisted давно мёртв, был люто сложен для питонистов.

Питон это не про асинхронность.

silver-bullet-bfg ★★
()
Ответ на: комментарий от byko3y

Зачем? Зачем в интерпретируемом языке приватный метод?

  1. Для того, чтобы в твой код никто не лез и не дергал то, что не надо? Продакшену нужны гарантии. 1. Таким образом можно сказать что он не нужен и в Smalltalk был. 2. Он всё же не интерпретируемый там JIT.

И какой язык такое позволяет?

Внезапно - lisp, js, smalltalk, ruby (из того, что я знаю)

В чем неполноценность питоньих лямбд?

link: http://p-nand-q.com/python/lambda.html

Реализация тернарного оператора, «нормальные» лямбды, и приватные методы — это какая парадигма?

Это с разных. ФП и ООП, которые по заверениям питонистов в питоне божественны. Только по заверениям фанбоев, конечно. Но миллионы мух не могут ошибаться

silver-bullet-bfg ★★
()
Ответ на: комментарий от Kazun3500

Callback hell, promise hell

Если не уметь писать - то любой код превращается в hell. За 5 лет работы на Node не скатывался в это.

там, что то было с генераторами еще, выглядящее не совсем хорош.

Конкретнее? Не припонмю

Ок, если это по вашему нормально, то не спорю. Когда там появилась поддержка async/await нормальная в жс?

Так а может все же в Node? И в чем именно плоский код с aync/await лучше? Просто визуальный сахар.

Всюду, нативная, без всяких бабелей/полифилов/ключей запуска?

На сколько знаю - ES6 стандарт. Какая Node была уже не помню, но ЕМНИП где-то в районе пятой.

А что вас такого в синтаксисе питона не устраивает? Кроме лямбд, они крайне убоги.

Синтаксис на основе отступов хотя бы.

Про тернарники - value = 2 if True else 1.

Это просто костыль, запись if в строку.

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

А иногда надо. В реальной задачи.

Хочешь и в питоне сделай если нужно. Как вариант ниже. Или аналогичный вариант, но с использованием метаклассов.

Что мне помешает обратиться к нему? Кроме IDE, которая не увидит. Это просто соглашение. Т.е. фиксируем, нельзя без создания кошмарных костылей.

Но для начала стоит ответить на вопрос - а зачем мне нужны приватные методы? Могу ли я обойтись без них? Ответ «Ну я же это, ООП, тут обязательно должно быть private и public» не принимается.

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

Значит со мной, что то не так.

Признание проблемы первый шаг на пути к нему. Дальше рекомендую почитать что-то из фундаментального по ООП до озарения.

Не использую в питоне ООП напрямую почти никогда, не знаю, что оказывается использую чисто ООП язык… Какой же я бедный, несчастный…

Т.е. ты хочешь сказать никогда не делаешь x.my_method? Не верю) Хотя бы в рамках стандартной библиотеки приходится.

Как вариант еще вот, если вам очень уж так нужно https://docs.python.org/3/library/abc.html.

Не то. Давай так - напиши вот что. Объект А стреляет событием, а объекты B и C вызывают свой метод и что-то делают. Объекты D и Х не реагируют никак. Сделай это только за счет метода языка, не прибегаю ни к чему кроме стандартных средств языка и без сервисов очередей. Если сможешь - покажи, буду рад увидеть как этого достичь. Сразу на крики «ненужно» и «зачем» - нужно, когда у тебя есть система, которая построена на не связанных объектах, которые должны обмениваться данными и реагировать на изменения без каких-либо обращений к друг-другу, для того чтобы были взаимозаменяемы.

То есть в js уже из коробки, всюду я могу сделать что то вроде следующего

А что тут сложного? Видоизменится синтаксис, но да.

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

Я сказал, что он не плохой, а примитивный. Это разные вещи. Такой же примитивный как и Go. Предназначения этих языков очень хорошо охарактеризовал lovesan - ЯП для того, чтобы можно было использовать и дегенератов, т.к. всех нормальных специалистов уже разобрали. Это не плохо, это факт. Кто-то же должен решать скучные и рутинные задачи.

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

Скорость - на порядок выше, лямбды (в жс называются «стрелочными функциями») нормальные, типизация сейчас прикручивается нативная (медленно, но верно перенимается JS черты TS). Имеющиеся батарейки поверх для типизации (тот же Flow) на порядок лучше. Сюда же «допником» - изкоробочная асинхронность, хорошая работа с паралеллизмом (web workers уже на Node в стандарте), приятные генераторы, возможности метапрограммирования, приватные свойства и методы у прототипов, хорошая стандартная библиотека… И в чем же JS современный уступает Python? Если не брать религиозные войны и лозунги фанатеков?

silver-bullet-bfg ★★
()
Ответ на: комментарий от Kazun3500

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

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

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