М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 1 января 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

node.js, go, python - лучший асинк язык для бэка 2 окт, 19:53 1273526 В конец треда | Веб

34 Кб, 400x4006 Кб, 239x21132 Кб, 214x214

Не секрет, что флагманами асинхронной разработки на бэкенде являются по сути три языка - это javascript, go и python.
Пора уже окончательно сделать выбор между этими титанами и развернуть достойный дискусс.
Расчехляем ваши линейки, господа, приступаем...

Ответы273546273556273575273834273928274529274955275337280117

2 2 окт, 20:15 2 1273546

>>1273526 (OP)
Ruby и мне похуй. Мне платят за него деньги, спорь с кем хочешь.

Ответы273548273575

3 2 окт, 20:20 3 1273548

>>1273546
>асинхронной
Карл!

4 2 окт, 20:25 4 1273556

>>1273526 (OP)
Я бы хотел сказать го, но он всратый, как выйдет го2 - перейду на него. А пока что питон, очень няшный синтаксис и простота написания асинхронного кода.

5 2 окт, 21:10 5 1273575

>>1273526 (OP)
слушай, ну если сам создатель ноды говорит, что для прототипчиков нода пойдёт, но в продакшен он пишет на го, то какбэ чьё мнение тебе ещё надо-то? на практике у меня на работе получается так же.

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

но тут ещё надо учесть, что я херачил много на сишечке в своё время и для меня го сразу показался благолепным и очевидным; господам, приходящим из реакта нода может зайти намного проще, так что тут хз, я неистово топлю за то, что надо использовать то, что уже знаешь и за что платят, так что и с >>1273546 господином я тоже согласен.

6 3 окт, 11:14 6 1273834

>>1273526 (OP)
Первый раз слышу определение "асинхронный" в приложении к Го.

Ответы273905

7 3 окт, 13:44 7 1273905

>>1273834
Лол, это самый асинхронный язык из всех. Причем настолько, что ты даже не заметил.

Ответы273925

8 3 окт, 14:32 8 1273925

>>1273905
Скажи, что ты называешь "асинхронностью". И почему в Go обычно говорят о concurrency, а не async?
Для тебя это синонимы, или есть различие?

Ответы273955274014

9 3 окт, 14:35 9 1273928

>>1273526 (OP)
зачем учить это говно, когда есть божественный php, html, css, mysql с шикарной библиотекой встроенных компонентов?

Ответы273958

10 3 окт, 15:38 10 1273955

>>1273925
это не синонимы, но одно другому не противоречит

11 3 окт, 15:40 11 1273957

Динамикобляди сосут у Rust'обогов итт

Ответы274018

12 3 окт, 15:41 12 1273958

>>1273928
Затем, что есть задачи, которые php просто не вывозит. В моей рабочей практике таких задач было несколько -- в одном случае веб-сервер должен был принимать данные от стримера потокового видео о состоянии потоков, каковых там было пару сотен, обновление несколько раз в секунду и пхп просто не прожевал. Во второй ситуации нужен был udp-сервер, в который железки слали информацию о событиях, там событий было не так уж много, зато железок счёт шёл на тысячи. Вероятно, всё это можно было сделать и на пхп методом тюнинга итд итп, но на ноде оно всё просто заработало сразу и пиздец.

Ответы273959

13 3 окт, 15:49 13 1273959

>>1273958
>Затем, что есть задачи, которые php просто не вывозит

Пхп 7 уже скоро как полтора года ебёт ноду по скорости, алё.

https://habr.com/post/320670/

Ответы273968274017274020274365

14 3 окт, 16:17 14 1273968

>>1273959
Чтобы пхп ебал ноду по скорости в реальном мире, к нему надо прикрутить асинхронный модуль для *sql как минимум. Что толку от того, что он хэллоуворлды научился быстро отдавать или там строки складывать? А когда ты посмотришь на неблокирующие модули для пыхи, которые на Amp сделаны, например, то ты там узришь ВНЕЗАПНО тот же ивент луп, промисы итд итп. Ну и нахуя? Просто чтобы принципиально не зашквариваться об ЖС? Ну я подобными заёбами не страдаю.

Ответы274029

15 3 окт, 17:59 15 1274014

>>1273925
Ты видимо слишком туп или запутался в баззвордах.

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

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

Ответы274322

11 Кб, 317x158
16 3 окт, 18:01 16 1274017

>>1273959

17 3 окт, 18:03 17 1274018

>>1273957
Эх, если бы, братюнь...
Сосет как раз только раст.

18 3 окт, 18:07 18 1274020

>>1273959
пхп уже может в неблокирующие i/o?
Закопайте уже этот шаблонизатор для апача/nginx

Ответы274026

19 3 окт, 18:20 19 1274026

>>1274020
Может https://amphp.org/amp/ , но из него тогда получается ноуджс лул.

20 3 окт, 18:22 20 1274029

>>1273968
Эм, чот нидогоняю, в ноде же один паток, как она может быть асинкронная. Почему нода не блокирующая ио, как можно не заблокировать один жеский диск?
Чот ваще вас не понимаю.
Алсо треды вроде уже можно намутить через птхреадс.
На крайняк все скармилвать в сервер очередей какаой нибудь. Чистая асинхронщина же выходит.
Алсо а как же промисы из гузла, они не асинхронны?

Ответы274032274034

21 3 окт, 18:28 21 1274032

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

Нет, в ней не один поток. И никогда не был один.

Ответы274036278411

22 3 окт, 18:34 22 1274034

>>1274029
>Почему нода не блокирующая ио, как можно не заблокировать один жеский диск?
Это у тебя тотальный пробел в понимании устройства ОС, компьютеров и всего остального.

Ответы274035

23 3 окт, 18:35 23 1274035

>>1274034
>пробел в понимании
Эм писать ты на один жесткий диск можешь только что то одно, разве нет?

Ответы274101

24 3 окт, 18:37 24 1274036

>>1274032
ну значит и в ноде есть треды и в пыхе, так разницы значит никакой?

Ответы274099274102274198

138 Кб, 583x602
25 3 окт, 18:53 25 1274053

Ну что ты, братишка, притих? Работаешь на дядю? Тимлид мудак? Работа на галере приносит деньги, но не удовлетворения? Хочется уже делать что-то интересное, по кайфу? Вероятно, мы можем помочь тебе с этим, если ты поможешь нам. В команду бродяг-энтузиастов гаражного кодинга мы ищем:

— Back- программиста, который знаком, python/asyncio/асинхронные сокеты
— Front-программиста, который знаком: React/Redux

Пока Телеграм закрывать не собираются, мы ищем молодых и амбициозных, умеющих добиваться поставленных целей и нацеленных результат фронтендеров, могущих в сокеты и Реакт/Редукс
Back - python/AsyncIO
для запуска уникального®™ веб-сервиса. С нас как обычно и несколько опытных ребят, которые всегда помогут со сложностями. Скостылим proof of concept на голом энтузиазме и потных шутках — сможем выйти за рубеж уже на серьёзных щах, снять склад в Марьино воркшоп в Москва-Сити и купить всем Маки. Всё почти готово, старичок, тебя не хватает.
Демка уже есть, божественный trello,zeppelin и почитать notion. С нас как всегда аниме стикеры и два чая.
Пиши: телега @anon4k

Ответы274056277320278412279330

26 3 окт, 18:57 26 1274056

>>1274053
>Скостылим proof of concept на голом энтузиазме и потных шутках
>React/Redux
>python/asyncio/асинхронные сокеты
Ох уж этот доширачный энтузиазм

27 3 окт, 20:02 27 1274099

>>1274036
не поясните? я не тралю

28 3 окт, 20:10 28 1274101

>>1274035
man epoll в помощь

Ответы274111

29 3 окт, 20:11 29 1274102

>>1274036
Асинхронность <> мультипоточность

Ответы274115

30 3 окт, 20:26 30 1274111

>>1274101
а разве это не про тсп соединения? Типа у хдд ссд нету физических способов же писать в несколько потоков.

Ответы274198

31 3 окт, 20:31 31 1274115

>>1274102
ну есть еще вариант с ядрами процессора, или за место потоков запускать процессы, я думал это все и позволяет замутить асинхронность. но разве нода умеет в несколоко ядер, или создавать поллпроцессы?

Ответы274198

32 3 окт, 22:51 32 1274198

>>1274115
ты думал неправильно. не обязательно полагаться на железо (ядра процессора) и механизмы ОС (форк, тредики) для реализации асинхронности. Гугли green threads например.

>>1274036
если прям совсем на быдлоуровне, то да, разницы никакой.

>>1274111
ты путаешься в уровнях абстракции. понятно, что головка на хдд может только в один сектор писать в один момент времени, но если подняться на уровень выше, то за счёт буферизации на уровне даже самого контроллера хдд, потоков уже несколько. а потом ещё уровень ОС, где ясен хуй ты можешь (и всегда так делаешь) читать и писать на диск "одновременно".

Ответы274328

33 4 окт, 10:26 33 1274322

>>1274014
> ты получаешь асинхронное исполнение, просто по умолчанию (где в других языках япуться с промисами и асинками)
Ты видимо слишком тупой, что валишь всё в одну кучу, да ещё и называешь эту кучу "асинхронным исполнением", да ещё и противопоставляя это ебле с промисами и асинками.
Но мне похуй, что ты тупой, няша :3

Ответы274674

34 4 окт, 10:37 34 1274328

>>1274198
>ты путаешься в уровнях абстракции
Ну да на уровне оси, но это же не меняет скорости записи, если ты один файл записал со скоростью Н и второй со скоростью К, то ведь если ты их одновременно будешь записывать то все равно будет скорость Н+К ну и плюс еще небольшие затраты на буферизацию и всякие там дела из ос.
По-моему для пыхи вполне хватает аяксовой загрузки нескольких файлов. Впрочем как и в ноде. На пыхе есть какой то Swoole хз чо это за хрень, но тоже позволяет асинхронно писать.

>green threads например.
Это вроде и в пыхе есть и ноде? разве нет?

>на быдлоуровне,
Ну а какой уровень нужен, что бы разницу почувствовать? Интересны примеры.

Ответы274334274467

35 4 окт, 11:04 35 1274334

>>1274328
>Это вроде и в пыхе есть и ноде? разве нет?

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

Ответы274335274345

36 4 окт, 11:05 36 1274335

>>1274334
>там можно только кластер в несколько независимых процессов поднимать аля фпм
Ну не пиздаболь.
Воркеры для кого?

Ответы274339274340

37 4 окт, 11:10 37 1274339

>>1274335
>Воркеры для кого?

> Stability: 1 - Experimental

38 4 окт, 11:11 38 1274340

>>1274335

> Added in: v10.5.0

39 4 окт, 11:25 39 1274345

>>1274334
Ну судя по всему как что в ноде что в пыхе, это одинаково работает, тогда вообще не вижу разницы, кроме синтаксиса.

40 4 окт, 12:10 40 1274365

>>1273959
Братюнь, а при чём тут скорость? Самая большая боль PHP это born to die. Любой скрипт рассчитан на то что ты его а) запустил, б) он сделал свое дело и в) он благополучно сдох и выгрузился из памяти.
Из-за чего на пыхе весьма проблемно писать:
1. Любой риалтайм, даже тупейший чятик на вебсокетах
2. Любые резидентные демоны. Тут, к слову, огромная проблема ещё и в том что пых не умеет в concurrency в любом виде. То есть если у тебя будет задача по сбору ебических объемов данных и их архивации вместо того чтобы распараллелить процесс и создать очередь как в каком-нибудь питоне / руби / ноде ты будешь делать всё по очереди.

А так да, на числодробилках мб и быстрее

Ответы274376

41 4 окт, 12:36 41 1274376

>>1274365
>Самая большая боль PHP это born to die.
Но ведь можно демона на пыхе написать. Никто не мешает тебе из этого демона плодить процессы, тем самым распаралеливая задачу.

Ответы274384

42 4 окт, 12:45 42 1274384

>>1274376
Можно, они даже есть в продакшне. Вот только нахуя этот геморрой? Пых создавался для веба и под свои цели инструмент таки весьма и весьма удачный вышел. Тот же born to die, являющийся головной болью при разработке каких-нибудь демонов из-за кучи проблем, весьма удобен если ты пишешь какой-нибудь rest сервис просто потому что он автоматически делает любой запрос stateless. И можно не заморачиваться об утечках памяти в качестве бонуса. Но зачем использовать инструмент в областях в которых он просто неудобен?

Ну и плодить процессы в пыхе это отдельное веселье. В те времена когда я с ним работал (лет шесть назад) максимумом конкарренси в PHP были форки. А работа с общей памятью вообще в какие-то анальные пляски превращалась

Ответы274386274389

43 4 окт, 12:54 43 1274386

>>1274384
>автоматически делает любой запрос stateless

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

Ответы274390

44 4 окт, 13:02 44 1274389

>>1274384
>Пых создавался для веба
ну так и жс создавался для фронтенда, а тут его на бэк его перетаскивают, с точки зрения например пыхо разраба тоже непонятно зачем.
Про утечки в памяти пыха впервые слышу, можно поподробнее?

И вроде как для пыха amphp.org изобрели теперь нету проблем с потоками. Хотя вроде и спотоками не особо сложно. Где то находил пасты кода, где можно создавать процессы.

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

Ответы274395274479

45 4 окт, 13:02 45 1274390

>>1274386
Ага, всё так. С той лишь разницей что стейт о котором ты говоришь это стейт __приложения__ а не __обработчика__. Есть у тебя апп который делает похуй что и имеет какое-то api. В пыхе ты не сможешь поменять переменную в коде так чтобы она дала эффект при следующем запросе (коряво наверное описал, грубо говоря сделать что-то типа MyGreateSingleton.property = 'monkey'). На питоне или ноде сможешь. Фактически это потенциальный источник охуительных проблем уровня "дев тестировал в локали и всё работало а потом перенёс на прод и всё нахуй сломалось потому что там больше одного воркера". Хотя это конечно макакапроблемы. Ну и плюс можно забить большой-пребольшой болт на такие вещи как утечки памяти просто потому что после запроса процесс умирает

46 4 окт, 13:15 46 1274395

>>1274389
Я лет пять не работал с пыхом, не могу никак прокомментировать

>> И вроде как для пыха amphp.org изобрели теперь нету проблем с потоками. Хотя вроде и спотоками не особо сложно. Где то находил пасты кода, где можно создавать процессы.

Проблемы с памятью были у целой кучи ORM в своё время как минимум. У Yii (первого) лично сталкивался, знакомые посоны на симфони говорили тоже печалька. Если честно уже не вспомню конкретику

>> Если следовать твоей логике каждого инструмента под свои задачи, то тогда можно например для реста и статики пилить сервер на пыхе, и когда нужны вебсокеты брать ноду, и добавлять ее в проект.
Ну таки да. Тут вопрос инфраструктуры в общем-то. Если ты пилишь всё на каком-нибудь питоне то можешь юзать один и тот же воркер для запросов и сокетов. Ну и куча кода будет общим. В мире ноды эта хуйня вообще в абсолют возведена в плане того что там ещё и фронтэнд на том же языке. Я как-то принимал участие в разработке внутренней учётной херни, писали на ноде с использованием реакта, экспресса и тайпскрипта. Довольно приятно получилось на мой вкус. Или другой пример. До появления ченнелз при работе с джангой для сокетов юзали торнадо и aiohttp. Бонусы те же - куча единого кода, можно при желании использовать ORM. С костылями правда, была печалька с закрытием старых соединений ( явный вызов from django.db import close_old_connections ) из-за того что джанговский орм делал такие дела при закрытии коннекшна, который в резидентном демоне не закрывался никогда.

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

47 4 окт, 14:26 47 1274467

>>1274328
>если ты один файл записал со скоростью Н и второй со скоростью К, то ведь если ты их одновременно будешь записывать то все равно будет скорость Н+К ну и плюс еще небольшие затраты на буферизацию и всякие там дела из ос.
да, всё так. но асинхронность решает не проблему увеличения скорости записи выше скорости самого диска лол, а проблему того, чтобы максимизировать утилизацию = чтобы ресурс был всегда задрочен вусмерть, причём задрочен эффективно, а не простаивал в ожидании. а это уже решать можно по-разному, но в целом всё один хуй сводится к какому-то пулу или тредов или просто кусков кода, которые оркестровщик переключает так, чтобы канплюктер постоянно делал что-то полезное. в роли оркестровщика может быть и ядро ОС и ВМ самого языка и в теории даже просто твой самописный код в теории даже на пхп, если ты кибердемон поехавший.

48 4 окт, 14:35 48 1274479

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

Ответы274490

49 4 окт, 14:42 49 1274490

>>1274479
>у психически здоровых людей такой подход встречается повсеместно
Походу я стал просвященным.

50 4 окт, 15:27 50 1274529

>>1273526 (OP)
Какой умник поставил рядом слова "python" и "ассинхронный"? И почему нет java-based-языков? Того же котлина с его корутинами?

Ответы274558274634

51 4 окт, 15:54 51 1274558

>>1274529
>"python" и "ассинхронный"
asyncio жи есть

52 4 окт, 18:10 52 1274634

>>1274529
да ну сколько можно-то? асинхронность -- это просто паттерн. его можно и на ассемблере и на квикбейсике реализовать.

53 4 окт, 18:58 53 1274674

>>1274322
>Ты видимо слишком туп или запутался в баззвордах.
Оказалось, что в баззвордах ты не запутался.

sage 54 5 окт, 10:16 54 1274955

>>1273526 (OP)
clojure

Ответы275312

55 5 окт, 21:21 55 1275312

>>1274955
Мы тут вообще программировать собрались, а не скриптики на ФП писать

Ответы277853

СПЕЦИАЛЬНАЯ ОЛИМПИАДА 56 5 окт, 22:46 56 1275337

>>1273526 (OP)
Божественная Java + Ratpack, конечно же.

Всяким скриптопетухам, чтоб убедились в своей убогости, предлагаю написать простенький веб-сервер вычисляющий рекурсивно функцию Фибоначчи, дергая самого себя (прям как ты пока никого нет дома).
Вот готовый код для Ratpack https://github.com/setblackWs/ratpackFibb/blob/master/src/main/java/pl/setblack/fibbo/FibboServer.java (количество тредов можно (и даже нужно) в 1 выставить - на это не обращаем внимание). Сюда постим результат работы для n=30.

Ответы276796279180280724

57 9 окт, 15:16 57 1276796

>>1275337
Go-боярин посмотрел на это всё как на баловство

Ответы276877277294277825278414

58 9 окт, 18:16 58 1276877

>>1276796
Код где, маня?

59 10 окт, 14:27 59 1277294

>>1276796
Так и не понял нахуя эта параша если уже есть такие-то петухоны со всякими джангами, асинкайо и твистедами, жабы со спрингами, спарками и вертэксами, шарп с аспнетом. А для ебических скоростей всегда есть плюсы. Го какой-то всратый

Ответы277304

60 10 окт, 14:52 60 1277304

>>1277294
>петухоны со всякими джангами

Которые или интерпретатор в 2к18 или половина пакетов и библиотек на пупу не работает. И все эти асинкайо им как мертвому припарка.

> жабы со спрингами, спарками и вертэксами

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

> шарп с аспнетом

Он за пределами /gd/ дохлый аки позапрошлогодний скелет мертвой вороны.

Ответы277562

61 10 окт, 15:35 61 1277320

>>1274053
укажи еще раз свой ник в телеге, пожалйста, а то не находит

62 11 окт, 10:11 62 1277562

>>1277304
>> Которые или интерпретатор в 2к18 или половина пакетов и библиотек на пупу не работает. И все эти асинкайо им как мертвому припарка
Ни пони. Жаба тоже интерпретатор так-то, как и шарп. Большинство проблем со скоростью можно решить инфраструктурой. Тяжелые вещи ничего не мешает пилить на каком-нибудь cython, если уж так приспичило. В чем проблема?

>> Отличный рантайм угроблен интырпрайзным подходом и гиговыми библиотеками. А ведь когда-то игрушки на телефонах с метром оперативы и процом меньше сотки кекогерц шустро работали, при том что жаба на них обычно калечная с примитивным житом стояла.
Соглашусь. У меня в стародавние времена жаба для сетевых дел примерно поэтому и не пошла. Уж очень оно долгое, в плане разработки

>> Он за пределами /gd/ дохлый аки позапрошлогодний скелет мертвой вороны.
Ну хуй знает, рынок труда с тобой не согласен

Ответы277571

63 11 окт, 10:49 63 1277571

>>1277562
>Жаба тоже интерпретатор так-то, как и шарп

Они только в первый раз интерпретатор, потом фрагмент кода jit-компилируют. Равно как и нодка с пыхом. Только питон в 2к18 чистый интерпретатор без JIT. Или pypy, который вечная альфа и половина не работает.

> Большинство проблем со скоростью можно решить инфраструктурой.

Только вот зачем, если JIT всё делает за тебя.

> Ну хуй знает, рынок труда с тобой не согласен

Там легаси дремучее, так то и на делфи есть дофига вакансий.

Ответы277721

64 11 окт, 16:19 64 1277721

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

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

Ответы278002

65 11 окт, 19:05 65 1277825

>>1276796
Баловни посмотрели на go-боярина как на говно.

sage 66 11 окт, 21:04 66 1277853

>>1275312
> быть дауном который считает что фп и ооп ортогональные вещи
Метаклассов тебе в анус

А если по делу - в кложуре есть классы, добро пожаловать

Ответы277860

67 11 окт, 21:16 67 1277860

>>1277853
>в кложуре есть классы
И вот по честному нахрена? Серьезно, либо ты отделяешь алгоритмы и данные, то отделяй ты их до конца. Нахера мешать в кучу объектное говно?

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

Ответы278079

68 12 окт, 09:57 68 1278002

>>1277721
>> Я стесняюсь спросить как jit полностью решит проблему в случае если апп ходит за данными на стороннее апи, например. Или как оно поможет в случае если узкое место это база данных. Или если у тебя есть нечто дико выжирающее ресурсы и огромный объем запросов - отсрочит пиздец, но не предотвратит. Штука-то хорошая, но нихрена не панацея
Ну тогда уже про ЯП можно не спорить, бд и прочие сторонние апи - это всегда будут независимыми от ЯП узкими местами.

Ответы278071

69 12 окт, 14:00 69 1278071

>>1278002
А я на это изначально и смотрел. В предел производительности питона в рабочих делах не упирался ни разу. А вот какое-нибудь тормозное внешнее апи которое при сихронных воркерах блокирует нахер весь воркер - запросто. Потому про такой-то asyncio и aiohttp и писал. Ну и туда же долгие запросы к базе с блокировкой в синхронном режиме

70 12 окт, 14:16 70 1278079

>>1277860
> Серьезно, либо ты отделяешь алгоритмы и данные, то отделяй ты их до конца.

Только ситхи всё возводят в абсолют!

Ответы278194

71 12 окт, 17:55 71 1278194

>>1278079
Только одарённые смешивают несовместимые парадигмы.
Впрочем, я не удивлен.

Ответы278399

72 13 окт, 00:35 72 1278399

>>1278194
>несовместимые
Ты скозал?

Ответы278435

73 13 окт, 01:37 73 1278411

>>1274032
Ага)) два патока в етам гавне для дыбилов и макак передней морды.

74 13 окт, 01:39 74 1278412

>>1274053
Нахуй иди, кидала.

75 13 окт, 01:40 75 1278414

>>1276796
Сосет у раста.

76 13 окт, 04:34 76 1278435

>>1278399
Ну тогда попробуй хоть раз в жизни в "дискуссию" и опровергни мои слова или продолжай звонко пукать вместо ответа, как это принято у малолеток

Ответы278436

77 13 окт, 04:44 77 1278436

>>1278435
Я даже помогу тебя.
ООП - это парадигма императивного программирования.
Ключевой аспект - последовательный процесс вычисления с изменением состояний и никак по другому

ФП - это функциональная парадигма.
Ключевой аспект настоящего ФП - все является результатом или исполнением функции, желательно чистой. Никакой последовательности и как следствие хранимых состояний отсюда дроч на иммутабельность, правда не все понимают зачем.

Эти парадигмы, несовместимы на фундаментальном уровне.
А теперь попробуй не пукнуть и сказать что-то умное, или укатывайся в js тред.

Ответы278437278447278448278449278502279284

78 13 окт, 05:40 78 1278437

>>1278436
>ООП - это парадигма императивного программирования.

Весело тут у вас.

Ответы278511

79 13 окт, 08:21 79 1278447

>>1278436
>Никакой последовательности и как следствие хранимых состояний
И именно поэтому ФП сосет. Без изменяемого состояния невозможно написать эффективную реализацию мало-мальски сложного алгоритма.

Эталонный пример - квиксорт на хаскеле.

80 13 окт, 08:31 80 1278448

>>1278436
>ООП - это парадигма императивного программирования.
>Ключевой аспект - последовательный процесс вычисления с изменением состояний и никак по другому
>
>ФП - это функциональная парадигма.
>Ключевой аспект настоящего ФП - все является результатом или исполнением функции, желательно чистой. Никакой последовательности и как следствие хранимых состояний отсюда дроч на иммутабельность, правда не все понимают зачем.

Легко совмещаемы. Дауны спорят, люди делают. Есть такой фреймворк, как reactive programming под несколько языков, и, например в анройде для многопоточки он нужен, но конечно же нет потому что есть корутины скажет выблядок

Так вот, написав

subscriber().join().map().subscribeOn().observeOn().subscribe(result -> print(sosi xui));

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

Ответы278474278514

81 13 окт, 08:45 81 1278449

>>1278436
>Ключевой аспект настоящего ФП
>настоящего ФП
Прям как про кумунизьм рассказывают.

82 13 окт, 10:48 82 1278474

>>1278448
>subscribeOn
>observeOn()
>result -> print(sosi xui)
>Я применил функциональную парадигму.
Не-а, ты насрал в глобальный стейт.
Если делать чисто функциональный реактивный фреймворк, он будет устроен совершенно по-другому. Сама же реактивность ни о чем не говорит.

Ответы278486

83 13 окт, 12:17 83 1278486

>>1278474
> Я применил функциональную парадигму ... Язык это инструмент, а не выяснение у кого хуй длиннее.
Поддвачну этого
Функциональное программирование - это просто парадигма, которая для каких-то задач более эффективна, для каких-то - менее.
А обмазываться функциональностью ради функциональности - это фанатизм, но никак не профессионализм.

84 13 окт, 14:44 84 1278502

>>1278436
В js можно писать функцинальщину, со всеми этими монадами и тд

85 13 окт, 16:14 85 1278511

>>1278437
Что не так, глупенький?

86 13 окт, 16:28 86 1278514

>>1278448
>Так вот, написав
Лол, ты же понимаешь, что если в императивный язык тебе добавили синтаксический сахар в виде одной только лямбды, то твой язык не стал сразу ФП

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

Еще раз, для гуманитариев, в фп все и вся есть функции без состояния. А если ты вызываешь функции последовательно, то это, извини меня, процедурное программирование.

Ответы278517278522

87 13 окт, 16:33 87 1278517

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

subscriber().join().map().subscribeOn().observeOn().subscribe(result -> print(sosi xui));

У тебя либо всё вычисление это результат функций, либо у тебя императивно последовательное каша. А если последовательное, значит между вызовами должно быть состояние, которое нужно между вызовами держать и изменять.

Ответы278522

88 13 окт, 16:39 88 1278522

>>1278514
>>1278517
Мне кажется надо еще проще, для js программистов.
Если в твоем языке есть переменная (есть мутабельность) - то язык не функциональный. Даже если ты как истинный джедай все в калбэках пишешь и константах.

Ответы278546

89 13 окт, 17:49 89 1278546

>>1278522
Программировать на вашем языке большая честь?

Ответы278605

90 13 окт, 19:47 90 1278605

>>1278546
Да

Ответы279068

91 14 окт, 20:05 91 1279068

>>1278605
Пиздец ты заносчивый.

Ответы279123

92 14 окт, 22:18 92 1279123

>>1279068
Ну, а как еще отвечать на твой реверанс?

93 15 окт, 00:26 93 1279180

>>1275337
Кому нахуй всралась твоя ебаная функция фибоначи?

Ответы279234280885

74 Кб, 300x191
94 15 окт, 08:42 94 1279234

>>1279180
Алгоритм Фибоначчи стал уже эталонным мемом и признаком аутизма в программирование, но вот сервер, вычисляющий фибоначии, это просто праздник какой-то, просто апогей одарённости.

Ответы279535280013

95 15 окт, 10:39 95 1279284

>>1278436
>Ключевой аспект настоящего ФП

это как настоящие шотландцы, только ФП. Все кто делает не так, как ты скозал -- не настоящие?

Ответы279321

96 15 окт, 11:27 96 1279321

>>1279284
Нет, это определение, глупенький.

97 15 окт, 11:39 97 1279330

>>1274053
Как не надо работать в стартапе: вестись на обещания "вот выйдем в плюс, поднимем тебе зарплату (нет), поделимся процентом прибылей (владелец просто выставляет себе зарплату так, чтобы прибыль была нулевая и ты сосёшь писю без соли), опционы (реальная стоимость опционов хорошо если 1-2% от номинала)"
Как надо работать в стартапе: быть полноценным совладельцем с самого начала, пусть даже твоя доля 5-10% либо работать за полноценную рыночную зарплату строго с 9 до 5.

Ответы279396

98 15 окт, 13:15 98 1279396

>>1279330
ti pidar

Ответы279402

99 15 окт, 13:21 99 1279402

>>1279396
Alyo, Yoba, eto ti?

Ответы279446

100 15 окт, 14:19 100 1279446

>>1279402
go k nam v startap

101 15 окт, 16:56 101 1279535

>>1279234
Ты хотел сказать рекурсивный алгоритм поиска n-го числа.

102 15 окт, 18:53 102 1279587

Чито??

103 16 окт, 16:34 103 1280013

>>1279234
Считаю, что программисты делятся на разработчиков и скриптомакак. Первые отличаются от вторых тем, что задумываются о том, что они пишут и как это будет работать.
Чем хороши задачи типа "напиши расчёт числа Фибоначчи" - так это тем, что показывают, о чём человек думает во время разработки. Кодирование - это ведь только часть задачи.
Если чувак сел и решил это всё рекурсивно и, что называется, "в тупую" - то значит и в бою он будет писать код который как-то работает.
Я видел таких, способны "пофиксить" баг, устранив конкретный симптом не докопавшись до реальной проблемы. Я бы таких себе в команду не взял - приходится тратить прорву личного времени, чтобы решение было приемлемого качества и не отвалилось в неожиданный момент.

Ответы280120280168280175280756280837

150 Кб, 800x500
104 16 окт, 16:46 104 1280030

Ответы280172

105 16 окт, 18:43 105 1280117

>>1273526 (OP)
Что только макаки не придумают, лишь бы ОТП/Эрланг не учить.

106 16 окт, 18:46 106 1280120

>>1280013
>Если чувак сел и решил это всё рекурсивно и, что называется, "в тупую" - то значит и в бою он будет писать код который как-то работает.
Это значит, что чувак не занимается злом - преждевременной оптимизацией и будет выкатывать фичи быстрее байтоебов.

Ответы280175

107 16 окт, 20:05 107 1280168

>>1280013
Оценивать человека по Фибоначчи, это как оценивает балерину по её ногтям.
Откуда вы такие гуманитарные философы то берётесь??
И кстати, почему канализационные люки круглые??

Ответы280175

292 Кб, 800x800
108 16 окт, 20:08 108 1280172

>>1280030

109 16 окт, 20:16 109 1280175

>>1280013
>>1280120
>>1280168
Нужно для начала определить границы его знаний, задавая те или иные вопросы, а потом дать ему домашку (если чел метит выше мидла). И не с Фибоначчи глупые вы философы а что-то реальное, что покажет как он пишет код, как оформляет и как "думает" (модульно, или как скрипто баран - линейно как есть).
Почему домашку и время - потому что чел в привычных условиях покажет себя как есть. может он еб#ный аутист и асоциал, но кодит хорошо, в привычных ему условиях и надо выжать из парня все, чтобы понять кто он и на что способен

Ответы280179

110 16 окт, 20:19 110 1280179

>>1280175
И да, иногда бывает важнее насколько чел глубоко знает, скажем SQL и какую-то матчасть. Мне совершенно срать сможет ли он там вспомнить как писать фибоначчи или бинарный поиск - мне важно чтобы он это умел это использовать когда нужно.

Ответы280509

111 17 окт, 14:42 111 1280509

>>1280179
Если это "домашнее" задание - то плевать, все алгоритмы гуглятся. Тут важно понять, какой у чувака подход. Лично я стараюсь сделать максимально качественно в оговорённых границах (временных, финансовых, т.п.). Если у чувака другой подход - надо смотреть и обсуждать.
Преждевременная оптимизация - одна сторона фанатизма, "писать код не задумываясь о производительности и в принципе качестве" - другая.

Ответы280685280696

112 17 окт, 20:13 112 1280685

>>1280509
>Домашнее задание
>Алгоритмы
Сразу видно пет-скрипт-киди. Ты хотя бы подумал, зачем давать на дом алгоритмы в 5-50 строк. Нет, речь идет про мини-проекты, по которым можно даже определить, умеет ли человек писать код в команде.

113 17 окт, 20:23 113 1280696

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

Нет, тебе нужен работник. Если речь про качество - то что такое качество? Это 3 ошибки на 1000 строк? Или это как у джуниора, который пишет 100 строк пол дня, конечно вдумчиво, и верит, что он тем самым не тормоз, а просто делает качественно? Что есть тут качество?

>Преждевременная оптимизация - одна сторона фанатизма
Снова пошли фразочки и выкрики идолов. Мы вообще об оптимизации не говорили.

Твой мозг уже работает как у гуманитарного программиста, а не как у технаря. Ты говоришь о высоком, абстракции, без конкретики и под свои удобные границы.

Ответы280760280989

114 17 окт, 21:04 114 1280724

>>1275337
Хуёвая у тебя фибоначча.
1. Переделывайте на BigInteger
2. Чтобы работало за O(log2 n)
3. В компайл-тайме предрасчёт первых ста чисел.

Ответы280885

115 17 окт, 21:55 115 1280756

>>1280013
Разработчики делятся на возвышенных дрочил, которые умеют делать с входными и выходными данными то, чего в камасутре даже нет, и приземленных работяг, которые переводят хотелки начальства в готовую программу. Нужны и те и другие, просто каждому своё место. Грубо говоря - одни ебашат охуенные кирпичи, а другие охуенно строят из них стены. а потом приходят макаки и вместо крыши ставят очередной фреймворк для пола, потому что ничего кроме заученного фреймворка не умеют

Ответы280782281045

116 17 окт, 22:01 116 1280760

>>1280696
> подходы
Я видел всего три : "хуяк хуяк и в релиз", "надо продумать архитектуру для фич, которые появятся в проекте через десять лет " и "щас че нить ебанем, а там как пойдёт".

Ответы280783280845

400 Кб, 730x400
117 17 окт, 22:42 117 1280782

>>1280756
У программистов зачастую завышенное ЧСВ. На самом деле нужен галерный гребец и все простой офисный работник, который бы работал ровно так же как и другие

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

Поэтому все это маня мечты программистов - типа узнать как он пишет фибоначчи, как он качественен там или нет. Это все утопия и розовые очки кодера. Бизнесу нафиг не нужен глубокий внутренний мир тебя, бизнесу нужно только узнать твою область знаний и соотнести как это поможет сейчас.

Ты просто инвестиция и все, ты просто ресурс.

Ответы280786

118 17 окт, 22:44 118 1280783

>>1280760
Первое и третье - одно и тоже

Ответы280841

161 Кб, 530x323
119 17 окт, 22:48 119 1280786

>>1280782
>Бизнесу нафиг не нужен
Хорошему бизнесу.
Гуманитарии в HR конечно же начитаются херни и будут натягивать этот мир на высокие абстрактные идеалы понюхивая свои пуки

Ответы280843

120 18 окт, 05:54 120 1280837

>>1280013
>Если чувак сел и решил это всё рекурсивно и, что называется, "в тупую"
Напишу на функциональщине с хвостовой рекурсией, но ты, петушок, даже и не поймешь.

121 18 окт, 06:56 121 1280841

>>1280783
Первое - "щас сделаем как всегда, лишь бы работало", третье - "михалыч, меня сегодня тянет на творчество". Я не очень удачно подобрал название для третьего

122 18 окт, 07:04 122 1280843

>>1280786
Это в любой сфере так. Собеседуйся у начальника сразу.

123 18 окт, 07:11 123 1280845

>>1280760
> "надо продумать архитектуру для фич, которые появятся в проекте через десять лет "
Это я и это нихуя не хорошо. Часто бывает трудно что-то написать не заебываясь архитектурой, понятностью кода и производительностью. Завидую тем кто можнет просто "хуяк-хуяк", а потом рефакторить.

Ответы280856

124 18 окт, 08:26 124 1280856

>>1280845
Я постоянно хуячу лишь бы работало, а потом рефакторю вилкой. Правда посередине, в команде нужны оба подхода. Такие как я-чтобы быстрее сдать задачу бизнесу, такие как ты, чтобы держать задачу на плаву.

125 18 окт, 10:20 125 1280885

>>1279180
>>1280724
Маньки, вы даже проблемы не поняли. Тему этого треда прочитали прежде чем писать? Попробуйте реализовать это на своём любимом фреймворке - может тогда дойдет.

sage 126 18 окт, 11:24 126 1280904

>2018
>иметь божественный, мощный С# и .NET Core
>юзать бомжеязыки полускриптовые и ГО без дженериков

Вы дебилы?

Ответы281287

127 18 окт, 13:53 127 1280989

>>1280696
>джуниора, который пишет 100 строк пол дня
А мидл выдаёт 100 строк/секунду?

128 18 окт, 14:23 128 1280995

где платят больше то и надо изучать ебана.

Ответы280996

129 18 окт, 14:25 129 1280996

>>1280995
Пока будешь изучать, платить перестанут.

130 18 окт, 15:07 130 1281021

C#

131 18 окт, 15:51 131 1281045

>>1280756
Формошлёпы тоже нужны, да.
Но вот скажи мне, кто тебе помешает, получив задачу (к примеру) "запили мне расчёт числа Фибоначчи" - набрать это слово в гугле и обнаружить, что можно рассчитать его динамически, затратив O(n) операций, вместо того тупой рекурсии (если что, сложность будет экспоненциальной).
Время одно и то же, а итоговое качество различается кардинально.
Все эти скрипт-кидди с их смузиподходами "работает - и ладно", "поставил гигабайт сторонних пакетов, запрос в бд работает минуту - зато я потратил на него 10 минут и подключил новую хипстерскую орм", "много кушает - купим ещё оперативы, она дешёвая" живы пока только потому, что стоимость времени программиста пока что выше, чем стоимость электроэнергии и прочих "железных" затрат.
Но ничего страшного - это нормально (в любой "новой" области такое происходит во время интенсивного расширения) и это пройдёт. Технологии устоятся, тем развития замедлится (закон Мура уже сбоит) и бизнес начнёт больше времени уделять качеству. Тогда несоразмерно задранная планка заработной платы разработчиков упадёт до нормального значения и все эти школьники, которые отработали пару лет, научились лепить формочки на cms'ке и уже называют себя сеньорами, начиная плавать, даже если просто заговорить с ними о паттернах и просто ну очевиднейших практиках хорошего кода типа "не пиши запросов в шаблонах".
Профессионал тем и отличается от новичка, что способен оценить задачу и выбрать наиболее качественный вариант под заданные временные рамки. Например, написать не только быстро, но и достаточно качественно, просто не совершив очевидных ошибок.

Ответы281046281111

132 18 окт, 15:51 132 1281046

>>1281045
В тему, как раз недавно случай был, я общался с одним таким "разработчиком" и он мне доказывал, что базы данных и всё такое "не нужны", он же и так "справляется с работой". Через несколько дней обнаружилось, что связь между сущностями ожидалась не один-ко-многим, а многие-ко-многим (задача была на уровне "опиши библиотеку с авторами и книгами" - очевидно, что у автора может быть много книг, а у книги - много авторов). В итоге потребовалось писать миграции, править код и всё такое - лишние несколько часов работы.
Сеньор бы в таком случае или сразу догадался сделал правильно, или спросил бы (вообще, навык задавать правильные вопросы - очень недооценённый, но очень важный).

Ответы281048281118

133 18 окт, 15:54 133 1281048

>>1281046
К слову, то, что у стольких людей предложение "напиши мне расчёт ХХХ" вызывает возгорание - меня не удивляет, потому что этим я (или кто-то ещё) явно тыкаю в их неумение разобраться в вопросе и сделать что-то качественно, без переделок.
Чем-то напоминает строителей, там тоже мало какая бригада делает всё сразу, без косяков (профессионалов всегда меньше). И, если указывать на неровную плитку и прочую фигню, возмущаются горе-строители также громко ("мы ведь сделали! Ну и что, что криво!").

134 18 окт, 17:36 134 1281111

>>1281045
Судя по твоему посту ты сам недалеко от джуна-теоретика ушёл. Вещи красивые говоришь, но не понимаешь что бизнесу нахуй не нужен красивый хорошо работающий код. Бизнесу надо код, который выполняет задачу. А если задача новая, то чтобы код был написан быстро. Все эти хипстерские языки и фреймворки появились на рынке лишь потому что позволяют быстро шлепать то что нужно.

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

135 18 окт, 17:45 135 1281118

>>1281046
Так тут проеб менеджера, который задачу хреново передал.

136 19 окт, 01:20 136 1281268

Поясните пожалуйста, за асинхронное программирование. Только вкатываюсь, не знаю про это почти ничего. Где применяется, зачем и сколько нужно знать и понимать для применения?

137 19 окт, 05:12 137 1281287

>>1280904
>2018
>иметь вендорлокнутый С# и .NET Core

Вы дебилы?

Ответы281294

138 19 окт, 07:25 138 1281294

>>1281287
не понимаю твоего бугурта

139 30 ноя, 20:07 139 1303851

Бамп

Ответы304248

140 1 дек, 13:32 140 1304248

>>1303851
node.js победил

141 1 дек, 20:22 141 1304418

Выбрал хаскель.

Ответы304454

142 1 дек, 20:58 142 1304454

>>1304418
...и навернул ложку борща

Ответы305232

143 3 дек, 10:43 143 1305232

>>1304454
В чём суть мема с борщём?

Ответы305249305557

144 3 дек, 12:44 144 1305249

>>1305232
В том, что хаскеллисты любят кушать борщ и приседать со штангой.

145 4 дек, 01:26 145 1305557

246 Кб, 1024x76861 Кб, 388x5991,1 Мб, 699x933209 Кб, 700x467

>>1305232

Тред утонул или удален.
Это копия, сохраненная 1 января 2019 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion