Программирование


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
144 9 51

node.js, go, python - лучший асинк язык для бэка Аноним 02/10/18 Втр 19:53:32 12735261
image.png (34Кб, 400x400)
400x400
image.png (6Кб, 239x211)
239x211
image.png (32Кб, 214x214)
214x214
Не секрет, что флагманами асинхронной разработки на бэкенде являются по сути три языка - это javascript, go и python.
Пора уже окончательно сделать выбор между этими титанами и развернуть достойный дискусс.
Расчехляем ваши линейки, господа, приступаем...
Аноним 02/10/18 Втр 20:15:43 12735462
>>1273526 (OP)
Ruby и мне похуй. Мне платят за него деньги, спорь с кем хочешь.
Аноним 02/10/18 Втр 20:20:48 12735483
Аноним 02/10/18 Втр 20:25:39 12735564
>>1273526 (OP)
Я бы хотел сказать го, но он всратый, как выйдет го2 - перейду на него. А пока что питон, очень няшный синтаксис и простота написания асинхронного кода.
Аноним 02/10/18 Втр 21:10:34 12735755
>>1273526 (OP)
слушай, ну если сам создатель ноды говорит, что для прототипчиков нода пойдёт, но в продакшен он пишет на го, то какбэ чьё мнение тебе ещё надо-то? на практике у меня на работе получается так же.

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

но тут ещё надо учесть, что я херачил много на сишечке в своё время и для меня го сразу показался благолепным и очевидным; господам, приходящим из реакта нода может зайти намного проще, так что тут хз, я неистово топлю за то, что надо использовать то, что уже знаешь и за что платят, так что и с >>1273546 господином я тоже согласен.
Аноним 03/10/18 Срд 11:14:54 12738346
>>1273526 (OP)
Первый раз слышу определение "асинхронный" в приложении к Го.
Аноним 03/10/18 Срд 13:44:34 12739057
>>1273834
Лол, это самый асинхронный язык из всех. Причем настолько, что ты даже не заметил.
Аноним 03/10/18 Срд 14:32:28 12739258
>>1273905
Скажи, что ты называешь "асинхронностью". И почему в Go обычно говорят о concurrency, а не async?
Для тебя это синонимы, или есть различие?
Аноним 03/10/18 Срд 14:35:00 12739289
>>1273526 (OP)
зачем учить это говно, когда есть божественный php, html, css, mysql с шикарной библиотекой встроенных компонентов?
Аноним 03/10/18 Срд 15:38:32 127395510
>>1273925
это не синонимы, но одно другому не противоречит
Аноним 03/10/18 Срд 15:40:15 127395711
Динамикобляди сосут у Rust'обогов итт
Аноним 03/10/18 Срд 15:41:57 127395812
>>1273928
Затем, что есть задачи, которые php просто не вывозит. В моей рабочей практике таких задач было несколько -- в одном случае веб-сервер должен был принимать данные от стримера потокового видео о состоянии потоков, каковых там было пару сотен, обновление несколько раз в секунду и пхп просто не прожевал. Во второй ситуации нужен был udp-сервер, в который железки слали информацию о событиях, там событий было не так уж много, зато железок счёт шёл на тысячи. Вероятно, всё это можно было сделать и на пхп методом тюнинга итд итп, но на ноде оно всё просто заработало сразу и пиздец.
Аноним 03/10/18 Срд 15:49:40 127395913
>>1273958
>Затем, что есть задачи, которые php просто не вывозит

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

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

Аноним 03/10/18 Срд 16:17:08 127396814
>>1273959
Чтобы пхп ебал ноду по скорости в реальном мире, к нему надо прикрутить асинхронный модуль для *sql как минимум. Что толку от того, что он хэллоуворлды научился быстро отдавать или там строки складывать? А когда ты посмотришь на неблокирующие модули для пыхи, которые на Amp сделаны, например, то ты там узришь ВНЕЗАПНО тот же ивент луп, промисы итд итп. Ну и нахуя? Просто чтобы принципиально не зашквариваться об ЖС? Ну я подобными заёбами не страдаю.
Аноним 03/10/18 Срд 17:59:45 127401415
>>1273925
Ты видимо слишком туп или запутался в баззвордах.

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

Именно поэтому выстрелил го (и в свое время нода), а не потому что хомякам сказали что он хороший.
Аноним 03/10/18 Срд 18:01:59 127401716
WejlRpW3wQ.jpg (11Кб, 317x158)
317x158
Аноним 03/10/18 Срд 18:03:59 127401817
>>1273957
Эх, если бы, братюнь...
Сосет как раз только раст.
Аноним 03/10/18 Срд 18:07:41 127402018
>>1273959
пхп уже может в неблокирующие i/o?
Закопайте уже этот шаблонизатор для апача/nginx
Аноним 03/10/18 Срд 18:20:39 127402619
Аноним 03/10/18 Срд 18:22:21 127402920
>>1273968
Эм, чот нидогоняю, в ноде же один паток, как она может быть асинкронная. Почему нода не блокирующая ио, как можно не заблокировать один жеский диск?
Чот ваще вас не понимаю.
Алсо треды вроде уже можно намутить через птхреадс.
На крайняк все скармилвать в сервер очередей какаой нибудь. Чистая асинхронщина же выходит.
Алсо а как же промисы из гузла, они не асинхронны?
Аноним 03/10/18 Срд 18:28:53 127403221
>>1274029
>в ноде же один паток
Все просто.
Прежде чем принимать за истину то, что ты где-то что-то слышал, попытался бы хоть раз, сам изучить что такое нода и как она устроена.

Нет, в ней не один поток. И никогда не был один.
Аноним 03/10/18 Срд 18:34:55 127403422
>>1274029
>Почему нода не блокирующая ио, как можно не заблокировать один жеский диск?
Это у тебя тотальный пробел в понимании устройства ОС, компьютеров и всего остального.
Аноним 03/10/18 Срд 18:35:56 127403523
>>1274034
>пробел в понимании
Эм писать ты на один жесткий диск можешь только что то одно, разве нет?
Аноним 03/10/18 Срд 18:37:05 127403624
>>1274032
ну значит и в ноде есть треды и в пыхе, так разницы значит никакой?
Аноним 03/10/18 Срд 18:53:20 127405325
photo2018-09-20[...].jpg (138Кб, 583x602)
583x602
Ну что ты, братишка, притих? Работаешь на дядю? Тимлид мудак? Работа на галере приносит деньги, но не удовлетворения? Хочется уже делать что-то интересное, по кайфу? Вероятно, мы можем помочь тебе с этим, если ты поможешь нам. В команду бродяг-энтузиастов гаражного кодинга мы ищем:

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

Пока Телеграм закрывать не собираются, мы ищем молодых и амбициозных, умеющих добиваться поставленных целей и нацеленных результат фронтендеров, могущих в сокеты и Реакт/Редукс
Back - python/AsyncIO
для запуска уникального®™ веб-сервиса. С нас как обычно и несколько опытных ребят, которые всегда помогут со сложностями. Скостылим proof of concept на голом энтузиазме и потных шутках — сможем выйти за рубеж уже на серьёзных щах, снять склад в Марьино воркшоп в Москва-Сити и купить всем Маки. Всё почти готово, старичок, тебя не хватает.
Демка уже есть, божественный trello,zeppelin и почитать notion. С нас как всегда аниме стикеры и два чая.
Пиши: телега @anon4k
Аноним 03/10/18 Срд 18:57:11 127405626
>>1274053
>Скостылим proof of concept на голом энтузиазме и потных шутках
>React/Redux
>python/asyncio/асинхронные сокеты
Ох уж этот доширачный энтузиазм
Аноним 03/10/18 Срд 20:02:22 127409927
>>1274036
не поясните? я не тралю
Аноним 03/10/18 Срд 20:10:44 127410128
Аноним 03/10/18 Срд 20:11:33 127410229
>>1274036
Асинхронность <> мультипоточность
Аноним 03/10/18 Срд 20:26:42 127411130
>>1274101
а разве это не про тсп соединения? Типа у хдд ссд нету физических способов же писать в несколько потоков.
Аноним 03/10/18 Срд 20:31:50 127411531
>>1274102
ну есть еще вариант с ядрами процессора, или за место потоков запускать процессы, я думал это все и позволяет замутить асинхронность. но разве нода умеет в несколоко ядер, или создавать поллпроцессы?
Аноним 03/10/18 Срд 22:51:08 127419832
>>1274115
ты думал неправильно. не обязательно полагаться на железо (ядра процессора) и механизмы ОС (форк, тредики) для реализации асинхронности. Гугли green threads например.

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

>>1274111
ты путаешься в уровнях абстракции. понятно, что головка на хдд может только в один сектор писать в один момент времени, но если подняться на уровень выше, то за счёт буферизации на уровне даже самого контроллера хдд, потоков уже несколько. а потом ещё уровень ОС, где ясен хуй ты можешь (и всегда так делаешь) читать и писать на диск "одновременно".
Аноним 04/10/18 Чтв 10:26:57 127432233
>>1274014
> ты получаешь асинхронное исполнение, просто по умолчанию (где в других языках япуться с промисами и асинками)
Ты видимо слишком тупой, что валишь всё в одну кучу, да ещё и называешь эту кучу "асинхронным исполнением", да ещё и противопоставляя это ебле с промисами и асинками.
Но мне похуй, что ты тупой, няша :3
Аноним 04/10/18 Чтв 10:37:21 127432834
>>1274198
>ты путаешься в уровнях абстракции
Ну да на уровне оси, но это же не меняет скорости записи, если ты один файл записал со скоростью Н и второй со скоростью К, то ведь если ты их одновременно будешь записывать то все равно будет скорость Н+К ну и плюс еще небольшие затраты на буферизацию и всякие там дела из ос.
По-моему для пыхи вполне хватает аяксовой загрузки нескольких файлов. Впрочем как и в ноде. На пыхе есть какой то Swoole хз чо это за хрень, но тоже позволяет асинхронно писать.

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

>на быдлоуровне,
Ну а какой уровень нужен, что бы разницу почувствовать? Интересны примеры.
Аноним 04/10/18 Чтв 11:04:02 127433435
>>1274328
>Это вроде и в пыхе есть и ноде? разве нет?

В ноде нет, там можно только кластер в несколько независимых процессов поднимать аля фпм. Весь твой код - однопоточный, асинхронное выполнение собственного кода (если, скажем, речь о разборе и преобразовании большого jsona и так на дохуя подключенных клиентов) пердолится путём раскидывания setTimeout/генераторов/промисов на каждые 5 строк логики.
Аноним 04/10/18 Чтв 11:05:18 127433536
>>1274334
>там можно только кластер в несколько независимых процессов поднимать аля фпм
Ну не пиздаболь.
Воркеры для кого?
Аноним 04/10/18 Чтв 11:10:26 127433937
>>1274335
>Воркеры для кого?

> Stability: 1 - Experimental
Аноним 04/10/18 Чтв 11:11:36 127434038
Аноним 04/10/18 Чтв 11:25:20 127434539
>>1274334
Ну судя по всему как что в ноде что в пыхе, это одинаково работает, тогда вообще не вижу разницы, кроме синтаксиса.
Аноним 04/10/18 Чтв 12:10:45 127436540
>>1273959
Братюнь, а при чём тут скорость? Самая большая боль PHP это born to die. Любой скрипт рассчитан на то что ты его а) запустил, б) он сделал свое дело и в) он благополучно сдох и выгрузился из памяти.
Из-за чего на пыхе весьма проблемно писать:
1. Любой риалтайм, даже тупейший чятик на вебсокетах
2. Любые резидентные демоны. Тут, к слову, огромная проблема ещё и в том что пых не умеет в concurrency в любом виде. То есть если у тебя будет задача по сбору ебических объемов данных и их архивации вместо того чтобы распараллелить процесс и создать очередь как в каком-нибудь питоне / руби / ноде ты будешь делать всё по очереди.

А так да, на числодробилках мб и быстрее
Аноним 04/10/18 Чтв 12:36:57 127437641
>>1274365
>Самая большая боль PHP это born to die.
Но ведь можно демона на пыхе написать. Никто не мешает тебе из этого демона плодить процессы, тем самым распаралеливая задачу.
Аноним 04/10/18 Чтв 12:45:54 127438442
>>1274376
Можно, они даже есть в продакшне. Вот только нахуя этот геморрой? Пых создавался для веба и под свои цели инструмент таки весьма и весьма удачный вышел. Тот же born to die, являющийся головной болью при разработке каких-нибудь демонов из-за кучи проблем, весьма удобен если ты пишешь какой-нибудь rest сервис просто потому что он автоматически делает любой запрос stateless. И можно не заморачиваться об утечках памяти в качестве бонуса. Но зачем использовать инструмент в областях в которых он просто неудобен?

Ну и плодить процессы в пыхе это отдельное веселье. В те времена когда я с ним работал (лет шесть назад) максимумом конкарренси в PHP были форки. А работа с общей памятью вообще в какие-то анальные пляски превращалась
Аноним 04/10/18 Чтв 12:54:38 127438643
>>1274384
>автоматически делает любой запрос stateless

При этом state из логики никуда не исчезает и начинается хипстопляска с базами данных и разномастными кешами и асинхронными хранилищами, которые по-сути оный стейт и заменяют, не забыв посадить все приложение на свою бутылку.
Аноним 04/10/18 Чтв 13:02:03 127438944
>>1274384
>Пых создавался для веба
ну так и жс создавался для фронтенда, а тут его на бэк его перетаскивают, с точки зрения например пыхо разраба тоже непонятно зачем.
Про утечки в памяти пыха впервые слышу, можно поподробнее?

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

Если следовать твоей логике каждого инструмента под свои задачи, то тогда можно например для реста и статики пилить сервер на пыхе, и когда нужны вебсокеты брать ноду, и добавлять ее в проект.
Аноним 04/10/18 Чтв 13:02:24 127439045
>>1274386
Ага, всё так. С той лишь разницей что стейт о котором ты говоришь это стейт __приложения__ а не __обработчика__. Есть у тебя апп который делает похуй что и имеет какое-то api. В пыхе ты не сможешь поменять переменную в коде так чтобы она дала эффект при следующем запросе (коряво наверное описал, грубо говоря сделать что-то типа MyGreateSingleton.property = 'monkey'). На питоне или ноде сможешь. Фактически это потенциальный источник охуительных проблем уровня "дев тестировал в локали и всё работало а потом перенёс на прод и всё нахуй сломалось потому что там больше одного воркера". Хотя это конечно макакапроблемы. Ну и плюс можно забить большой-пребольшой болт на такие вещи как утечки памяти просто потому что после запроса процесс умирает
Аноним 04/10/18 Чтв 13:15:08 127439546
>>1274389
Я лет пять не работал с пыхом, не могу никак прокомментировать

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

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

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


>> ну так и жс создавался для фронтенда, а тут его на бэк его перетаскивают, с точки зрения например пыхо разраба тоже непонятно зачем.
JS изначально асинхронный плюс он широко юзается на фронтэнде. Минус один язык для фуллстака, иногда оправданно. Плюс он изначально создавался для постоянной работы (как минимум в рамках открытой вкладки браузера), из-за чего там не положен такой большой и толстый болт на рантайм
Аноним 04/10/18 Чтв 14:26:48 127446747
>>1274328
>если ты один файл записал со скоростью Н и второй со скоростью К, то ведь если ты их одновременно будешь записывать то все равно будет скорость Н+К ну и плюс еще небольшие затраты на буферизацию и всякие там дела из ос.
да, всё так. но асинхронность решает не проблему увеличения скорости записи выше скорости самого диска лол, а проблему того, чтобы максимизировать утилизацию = чтобы ресурс был всегда задрочен вусмерть, причём задрочен эффективно, а не простаивал в ожидании. а это уже решать можно по-разному, но в целом всё один хуй сводится к какому-то пулу или тредов или просто кусков кода, которые оркестровщик переключает так, чтобы канплюктер постоянно делал что-то полезное. в роли оркестровщика может быть и ядро ОС и ВМ самого языка и в теории даже просто твой самописный код в теории даже на пхп, если ты кибердемон поехавший.
Аноним 04/10/18 Чтв 14:35:20 127447948
>>1274389
>Если следовать твоей логике каждого инструмента под свои задачи, то тогда можно например для реста и статики пилить сервер на пыхе, и когда нужны вебсокеты брать ноду, и добавлять ее в проект.
я так и делаю. и ещё питон для анализа данных. то есть у меня нода как быстрый асинхронный непротекающий демон данные в мускуль собирает. потом питон удобными библами эти данные перебирает, там скорость уже не важна. а морда на пхп и бэкбоне (легаси щито поделать) клиентам уже инфу выдаёт. у психически здоровых людей такой подход встречается повсеместно. желание написать всё на чём-то одном оно в принципе нормально на начальных этапах, но через пару лет опыта ты понимаешь, что этот ёбаный цирк даром никому не всрался.
Аноним 04/10/18 Чтв 14:42:11 127449049
>>1274479
>у психически здоровых людей такой подход встречается повсеместно
Походу я стал просвященным.
Аноним 04/10/18 Чтв 15:27:51 127452950
>>1273526 (OP)
Какой умник поставил рядом слова "python" и "ассинхронный"? И почему нет java-based-языков? Того же котлина с его корутинами?
Аноним 04/10/18 Чтв 15:54:19 127455851
>>1274529
>"python" и "ассинхронный"
asyncio жи есть
Аноним 04/10/18 Чтв 18:10:20 127463452
>>1274529
да ну сколько можно-то? асинхронность -- это просто паттерн. его можно и на ассемблере и на квикбейсике реализовать.
Аноним 04/10/18 Чтв 18:58:45 127467453
>>1274322
>Ты видимо слишком туп или запутался в баззвордах.
Оказалось, что в баззвордах ты не запутался.
05/10/18 Птн 10:16:40 127495554
Аноним 05/10/18 Птн 21:21:38 127531255
>>1274955
Мы тут вообще программировать собрались, а не скриптики на ФП писать
СПЕЦИАЛЬНАЯ ОЛИМПИАДА Аноним 05/10/18 Птн 22:46:50 127533756
>>1273526 (OP)
Божественная Java + Ratpack, конечно же.

Всяким скриптопетухам, чтоб убедились в своей убогости, предлагаю написать простенький веб-сервер вычисляющий рекурсивно функцию Фибоначчи, дергая самого себя (прям как ты пока никого нет дома).
Вот готовый код для Ratpack https://github.com/setblackWs/ratpackFibb/blob/master/src/main/java/pl/setblack/fibbo/FibboServer.java (количество тредов можно (и даже нужно) в 1 выставить - на это не обращаем внимание). Сюда постим результат работы для n=30.
Аноним 09/10/18 Втр 15:16:48 127679657
>>1275337
Go-боярин посмотрел на это всё как на баловство
Аноним 09/10/18 Втр 18:16:51 127687758
Аноним 10/10/18 Срд 14:27:00 127729459
>>1276796
Так и не понял нахуя эта параша если уже есть такие-то петухоны со всякими джангами, асинкайо и твистедами, жабы со спрингами, спарками и вертэксами, шарп с аспнетом. А для ебических скоростей всегда есть плюсы. Го какой-то всратый
Аноним 10/10/18 Срд 14:52:52 127730460
>>1277294
>петухоны со всякими джангами

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

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

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

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

Он за пределами /gd/ дохлый аки позапрошлогодний скелет мертвой вороны.
Аноним 10/10/18 Срд 15:35:46 127732061
>>1274053
укажи еще раз свой ник в телеге, пожалйста, а то не находит
Аноним 11/10/18 Чтв 10:11:23 127756262
>>1277304
>> Которые или интерпретатор в 2к18 или половина пакетов и библиотек на пупу не работает. И все эти асинкайо им как мертвому припарка
Ни пони. Жаба тоже интерпретатор так-то, как и шарп. Большинство проблем со скоростью можно решить инфраструктурой. Тяжелые вещи ничего не мешает пилить на каком-нибудь cython, если уж так приспичило. В чем проблема?

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

>> Он за пределами /gd/ дохлый аки позапрошлогодний скелет мертвой вороны.
Ну хуй знает, рынок труда с тобой не согласен
Аноним 11/10/18 Чтв 10:49:52 127757163
>>1277562
>Жаба тоже интерпретатор так-то, как и шарп

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

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

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

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

Там легаси дремучее, так то и на делфи есть дофига вакансий.
Аноним 11/10/18 Чтв 16:19:50 127772164
>>1277571
>> Только вот зачем, если JIT всё делает за тебя.
Я стесняюсь спросить как jit полностью решит проблему в случае если апп ходит за данными на стороннее апи, например. Или как оно поможет в случае если узкое место это база данных. Или если у тебя есть нечто дико выжирающее ресурсы и огромный объем запросов - отсрочит пиздец, но не предотвратит. Штука-то хорошая, но нихрена не панацея

>> Там легаси дремучее, так то и на делфи есть дофига вакансий.
Да ты шутишь, в обоих случаях. На дельфях вакансий полторы штуки, а легаси что у шарпа что у жабы много. Да и у петухона если уж на то пошло. Не так всё печально
Аноним 11/10/18 Чтв 19:05:00 127782565
>>1276796
Баловни посмотрели на go-боярина как на говно.
11/10/18 Чтв 21:04:39 127785366
>>1275312
> быть дауном который считает что фп и ооп ортогональные вещи
Метаклассов тебе в анус

А если по делу - в кложуре есть классы, добро пожаловать
Аноним 11/10/18 Чтв 21:16:09 127786067
>>1277853
>в кложуре есть классы
И вот по честному нахрена? Серьезно, либо ты отделяешь алгоритмы и данные, то отделяй ты их до конца. Нахера мешать в кучу объектное говно?

Если в язык тянут вещи, лишь по тому, что они модны и популярны - в жопу такой язык.
Аноним 12/10/18 Птн 09:57:21 127800268
>>1277721
>> Я стесняюсь спросить как jit полностью решит проблему в случае если апп ходит за данными на стороннее апи, например. Или как оно поможет в случае если узкое место это база данных. Или если у тебя есть нечто дико выжирающее ресурсы и огромный объем запросов - отсрочит пиздец, но не предотвратит. Штука-то хорошая, но нихрена не панацея
Ну тогда уже про ЯП можно не спорить, бд и прочие сторонние апи - это всегда будут независимыми от ЯП узкими местами.
Аноним 12/10/18 Птн 14:00:11 127807169
>>1278002
А я на это изначально и смотрел. В предел производительности питона в рабочих делах не упирался ни разу. А вот какое-нибудь тормозное внешнее апи которое при сихронных воркерах блокирует нахер весь воркер - запросто. Потому про такой-то asyncio и aiohttp и писал. Ну и туда же долгие запросы к базе с блокировкой в синхронном режиме
Аноним 12/10/18 Птн 14:16:05 127807970
>>1277860
> Серьезно, либо ты отделяешь алгоритмы и данные, то отделяй ты их до конца.

Только ситхи всё возводят в абсолют!
Аноним 12/10/18 Птн 17:55:29 127819471
>>1278079
Только одарённые смешивают несовместимые парадигмы.
Впрочем, я не удивлен.
Аноним 13/10/18 Суб 00:35:09 127839972
>>1278194
>несовместимые
Ты скозал?
Аноним 13/10/18 Суб 01:37:34 127841173
>>1274032
Ага)) два патока в етам гавне для дыбилов и макак передней морды.
Аноним 13/10/18 Суб 01:39:09 127841274
Аноним 13/10/18 Суб 01:40:55 127841475
Аноним 13/10/18 Суб 04:34:27 127843576
>>1278399
Ну тогда попробуй хоть раз в жизни в "дискуссию" и опровергни мои слова или продолжай звонко пукать вместо ответа, как это принято у малолеток
Аноним 13/10/18 Суб 04:44:57 127843677
>>1278435
Я даже помогу тебя.
ООП - это парадигма императивного программирования.
Ключевой аспект - последовательный процесс вычисления с изменением состояний и никак по другому

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

Эти парадигмы, несовместимы на фундаментальном уровне.
А теперь попробуй не пукнуть и сказать что-то умное, или укатывайся в js тред.
Аноним 13/10/18 Суб 05:40:44 127843778
>>1278436
>ООП - это парадигма императивного программирования.

Весело тут у вас.
Аноним 13/10/18 Суб 08:21:27 127844779
>>1278436
>Никакой последовательности и как следствие хранимых состояний
И именно поэтому ФП сосет. Без изменяемого состояния невозможно написать эффективную реализацию мало-мальски сложного алгоритма.

Эталонный пример - квиксорт на хаскеле.
Аноним 13/10/18 Суб 08:31:36 127844880
>>1278436
>ООП - это парадигма императивного программирования.
>Ключевой аспект - последовательный процесс вычисления с изменением состояний и никак по другому
>
>ФП - это функциональная парадигма.
>Ключевой аспект настоящего ФП - все является результатом или исполнением функции, желательно чистой. Никакой последовательности и как следствие хранимых состояний отсюда дроч на иммутабельность, правда не все понимают зачем.

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

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

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

Я применил функциональную парадигму. Так что, соси хуй. Язык это инструмент, а не выяснение у кого хуй длиннее.
Аноним 13/10/18 Суб 08:45:51 127844981
>>1278436
>Ключевой аспект настоящего ФП
>настоящего ФП
Прям как про кумунизьм рассказывают.
Аноним 13/10/18 Суб 10:48:53 127847482
>>1278448
>subscribeOn
>observeOn()
>result -> print(sosi xui)
>Я применил функциональную парадигму.
Не-а, ты насрал в глобальный стейт.
Если делать чисто функциональный реактивный фреймворк, он будет устроен совершенно по-другому. Сама же реактивность ни о чем не говорит.
Аноним 13/10/18 Суб 12:17:31 127848683
>>1278474
> Я применил функциональную парадигму ... Язык это инструмент, а не выяснение у кого хуй длиннее.
Поддвачну этого
Функциональное программирование - это просто парадигма, которая для каких-то задач более эффективна, для каких-то - менее.
А обмазываться функциональностью ради функциональности - это фанатизм, но никак не профессионализм.
Аноним 13/10/18 Суб 14:44:40 127850284
>>1278436
В js можно писать функцинальщину, со всеми этими монадами и тд
Аноним 13/10/18 Суб 16:14:26 127851185
>>1278437
Что не так, глупенький?
Аноним 13/10/18 Суб 16:28:02 127851486
>>1278448
>Так вот, написав
Лол, ты же понимаешь, что если в императивный язык тебе добавили синтаксический сахар в виде одной только лямбды, то твой язык не стал сразу ФП

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

Еще раз, для гуманитариев, в фп все и вся есть функции без состояния. А если ты вызываешь функции последовательно, то это, извини меня, процедурное программирование.
Аноним 13/10/18 Суб 16:33:45 127851787
>>1278514
То есть, для очень очень глупых, в этом примере, тебе добавили лямбду из процедурного языка, к ФП это не имеет никакого отношения.

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

У тебя либо всё вычисление это результат функций, либо у тебя императивно последовательное каша. А если последовательное, значит между вызовами должно быть состояние, которое нужно между вызовами держать и изменять.
Аноним 13/10/18 Суб 16:39:59 127852288
>>1278514
>>1278517
Мне кажется надо еще проще, для js программистов.
Если в твоем языке есть переменная (есть мутабельность) - то язык не функциональный. Даже если ты как истинный джедай все в калбэках пишешь и константах.
Аноним 13/10/18 Суб 17:49:06 127854689
>>1278522
Программировать на вашем языке большая честь?
Аноним 13/10/18 Суб 19:47:58 127860590
Аноним 14/10/18 Вск 20:05:56 127906891
>>1278605
Пиздец ты заносчивый.
Аноним 14/10/18 Вск 22:18:04 127912392
>>1279068
Ну, а как еще отвечать на твой реверанс?
Аноним 15/10/18 Пнд 00:26:17 127918093
>>1275337
Кому нахуй всралась твоя ебаная функция фибоначи?
Аноним 15/10/18 Пнд 08:42:50 127923494
image.png (74Кб, 300x191)
300x191
>>1279180
Алгоритм Фибоначчи стал уже эталонным мемом и признаком аутизма в программирование, но вот сервер, вычисляющий фибоначии, это просто праздник какой-то, просто апогей одарённости.
Аноним 15/10/18 Пнд 10:39:19 127928495
>>1278436
>Ключевой аспект настоящего ФП

это как настоящие шотландцы, только ФП. Все кто делает не так, как ты скозал -- не настоящие?
Аноним 15/10/18 Пнд 11:27:08 127932196
>>1279284
Нет, это определение, глупенький.
Аноним 15/10/18 Пнд 11:39:17 127933097
>>1274053
Как не надо работать в стартапе: вестись на обещания "вот выйдем в плюс, поднимем тебе зарплату (нет), поделимся процентом прибылей (владелец просто выставляет себе зарплату так, чтобы прибыль была нулевая и ты сосёшь писю без соли), опционы (реальная стоимость опционов хорошо если 1-2% от номинала)"
Как надо работать в стартапе: быть полноценным совладельцем с самого начала, пусть даже твоя доля 5-10% либо работать за полноценную рыночную зарплату строго с 9 до 5.
Аноним 15/10/18 Пнд 13:15:46 127939698
Аноним 15/10/18 Пнд 13:21:33 127940299
Аноним 15/10/18 Пнд 14:19:21 1279446100
Аноним 15/10/18 Пнд 16:56:41 1279535101
>>1279234
Ты хотел сказать рекурсивный алгоритм поиска n-го числа.
Аноним 15/10/18 Пнд 18:53:52 1279587102
Чито??
Аноним 16/10/18 Втр 16:34:32 1280013103
>>1279234
Считаю, что программисты делятся на разработчиков и скриптомакак. Первые отличаются от вторых тем, что задумываются о том, что они пишут и как это будет работать.
Чем хороши задачи типа "напиши расчёт числа Фибоначчи" - так это тем, что показывают, о чём человек думает во время разработки. Кодирование - это ведь только часть задачи.
Если чувак сел и решил это всё рекурсивно и, что называется, "в тупую" - то значит и в бою он будет писать код который как-то работает.
Я видел таких, способны "пофиксить" баг, устранив конкретный симптом не докопавшись до реальной проблемы. Я бы таких себе в команду не взял - приходится тратить прорву личного времени, чтобы решение было приемлемого качества и не отвалилось в неожиданный момент.
Аноним 16/10/18 Втр 16:46:44 1280030104
Learn-ruby-on-r[...].png (150Кб, 800x500)
800x500
Аноним 16/10/18 Втр 18:43:48 1280117105
>>1273526 (OP)
Что только макаки не придумают, лишь бы ОТП/Эрланг не учить.
Аноним 16/10/18 Втр 18:46:02 1280120106
>>1280013
>Если чувак сел и решил это всё рекурсивно и, что называется, "в тупую" - то значит и в бою он будет писать код который как-то работает.
Это значит, что чувак не занимается злом - преждевременной оптимизацией и будет выкатывать фичи быстрее байтоебов.
Аноним 16/10/18 Втр 20:05:01 1280168107
>>1280013
Оценивать человека по Фибоначчи, это как оценивает балерину по её ногтям.
Откуда вы такие гуманитарные философы то берётесь??
И кстати, почему канализационные люки круглые??
Аноним 16/10/18 Втр 20:08:46 1280172108
image.png (292Кб, 800x800)
800x800
Аноним 16/10/18 Втр 20:16:12 1280175109
>>1280013
>>1280120
>>1280168
Нужно для начала определить границы его знаний, задавая те или иные вопросы, а потом дать ему домашку (если чел метит выше мидла). И не с Фибоначчи глупые вы философы а что-то реальное, что покажет как он пишет код, как оформляет и как "думает" (модульно, или как скрипто баран - линейно как есть).
Почему домашку и время - потому что чел в привычных условиях покажет себя как есть. может он еб#ный аутист и асоциал, но кодит хорошо, в привычных ему условиях и надо выжать из парня все, чтобы понять кто он и на что способен
Аноним 16/10/18 Втр 20:19:06 1280179110
>>1280175
И да, иногда бывает важнее насколько чел глубоко знает, скажем SQL и какую-то матчасть. Мне совершенно срать сможет ли он там вспомнить как писать фибоначчи или бинарный поиск - мне важно чтобы он это умел это использовать когда нужно.
Аноним 17/10/18 Срд 14:42:05 1280509111
>>1280179
Если это "домашнее" задание - то плевать, все алгоритмы гуглятся. Тут важно понять, какой у чувака подход. Лично я стараюсь сделать максимально качественно в оговорённых границах (временных, финансовых, т.п.). Если у чувака другой подход - надо смотреть и обсуждать.
Преждевременная оптимизация - одна сторона фанатизма, "писать код не задумываясь о производительности и в принципе качестве" - другая.
Аноним 17/10/18 Срд 20:13:08 1280685112
>>1280509
>Домашнее задание
>Алгоритмы
Сразу видно пет-скрипт-киди. Ты хотя бы подумал, зачем давать на дом алгоритмы в 5-50 строк. Нет, речь идет про мини-проекты, по которым можно даже определить, умеет ли человек писать код в команде.
Аноним 17/10/18 Срд 20:23:33 1280696113
>>1280509
> какой у чувака подход
И какие подходы бывают?? Представь, ты собеседующая сторона и ты пытаешься понять какие-то некие подходы. То есть, ты сам себе ставишь абстрактную херню и потом будешь пытаться эту фантазию у человека найти. Не глупо ли?

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

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

Твой мозг уже работает как у гуманитарного программиста, а не как у технаря. Ты говоришь о высоком, абстракции, без конкретики и под свои удобные границы.
Аноним 17/10/18 Срд 21:04:19 1280724114
>>1275337
Хуёвая у тебя фибоначча.
1. Переделывайте на BigInteger
2. Чтобы работало за O(log2 n)
3. В компайл-тайме предрасчёт первых ста чисел.
Аноним 17/10/18 Срд 21:55:26 1280756115
>>1280013
Разработчики делятся на возвышенных дрочил, которые умеют делать с входными и выходными данными то, чего в камасутре даже нет, и приземленных работяг, которые переводят хотелки начальства в готовую программу. Нужны и те и другие, просто каждому своё место. Грубо говоря - одни ебашат охуенные кирпичи, а другие охуенно строят из них стены. а потом приходят макаки и вместо крыши ставят очередной фреймворк для пола, потому что ничего кроме заученного фреймворка не умеют
Аноним 17/10/18 Срд 22:01:21 1280760116
>>1280696
> подходы
Я видел всего три : "хуяк хуяк и в релиз", "надо продумать архитектуру для фич, которые появятся в проекте через десять лет " и "щас че нить ебанем, а там как пойдёт".
Аноним 17/10/18 Срд 22:42:43 1280782117
image.png (400Кб, 730x400)
730x400
>>1280756
У программистов зачастую завышенное ЧСВ. На самом деле нужен галерный гребец и все простой офисный работник, который бы работал ровно так же как и другие

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

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

Ты просто инвестиция и все, ты просто ресурс.
Аноним 17/10/18 Срд 22:44:13 1280783118
>>1280760
Первое и третье - одно и тоже
Аноним 17/10/18 Срд 22:48:43 1280786119
image.png (161Кб, 530x323)
530x323
>>1280782
>Бизнесу нафиг не нужен
Хорошему бизнесу.
Гуманитарии в HR конечно же начитаются херни и будут натягивать этот мир на высокие абстрактные идеалы понюхивая свои пуки
Аноним 18/10/18 Чтв 05:54:04 1280837120
>>1280013
>Если чувак сел и решил это всё рекурсивно и, что называется, "в тупую"
Напишу на функциональщине с хвостовой рекурсией, но ты, петушок, даже и не поймешь.
Аноним 18/10/18 Чтв 06:56:15 1280841121
>>1280783
Первое - "щас сделаем как всегда, лишь бы работало", третье - "михалыч, меня сегодня тянет на творчество". Я не очень удачно подобрал название для третьего
Аноним 18/10/18 Чтв 07:04:10 1280843122
>>1280786
Это в любой сфере так. Собеседуйся у начальника сразу.
Аноним 18/10/18 Чтв 07:11:56 1280845123
>>1280760
> "надо продумать архитектуру для фич, которые появятся в проекте через десять лет "
Это я и это нихуя не хорошо. Часто бывает трудно что-то написать не заебываясь архитектурой, понятностью кода и производительностью. Завидую тем кто можнет просто "хуяк-хуяк", а потом рефакторить.
Аноним 18/10/18 Чтв 08:26:55 1280856124
>>1280845
Я постоянно хуячу лишь бы работало, а потом рефакторю вилкой. Правда посередине, в команде нужны оба подхода. Такие как я-чтобы быстрее сдать задачу бизнесу, такие как ты, чтобы держать задачу на плаву.
Аноним 18/10/18 Чтв 10:20:22 1280885125
>>1279180
>>1280724
Маньки, вы даже проблемы не поняли. Тему этого треда прочитали прежде чем писать? Попробуйте реализовать это на своём любимом фреймворке - может тогда дойдет.
18/10/18 Чтв 11:24:44 1280904126
>2018
>иметь божественный, мощный С# и .NET Core
>юзать бомжеязыки полускриптовые и ГО без дженериков

Вы дебилы?
Аноним 18/10/18 Чтв 13:53:12 1280989127
>>1280696
>джуниора, который пишет 100 строк пол дня
А мидл выдаёт 100 строк/секунду?
Аноним 18/10/18 Чтв 14:23:41 1280995128
где платят больше то и надо изучать ебана.
Аноним 18/10/18 Чтв 14:25:02 1280996129
>>1280995
Пока будешь изучать, платить перестанут.
Аноним 18/10/18 Чтв 15:07:20 1281021130
C#
Аноним 18/10/18 Чтв 15:51:15 1281045131
>>1280756
Формошлёпы тоже нужны, да.
Но вот скажи мне, кто тебе помешает, получив задачу (к примеру) "запили мне расчёт числа Фибоначчи" - набрать это слово в гугле и обнаружить, что можно рассчитать его динамически, затратив O(n) операций, вместо того тупой рекурсии (если что, сложность будет экспоненциальной).
Время одно и то же, а итоговое качество различается кардинально.
Все эти скрипт-кидди с их смузиподходами "работает - и ладно", "поставил гигабайт сторонних пакетов, запрос в бд работает минуту - зато я потратил на него 10 минут и подключил новую хипстерскую орм", "много кушает - купим ещё оперативы, она дешёвая" живы пока только потому, что стоимость времени программиста пока что выше, чем стоимость электроэнергии и прочих "железных" затрат.
Но ничего страшного - это нормально (в любой "новой" области такое происходит во время интенсивного расширения) и это пройдёт. Технологии устоятся, тем развития замедлится (закон Мура уже сбоит) и бизнес начнёт больше времени уделять качеству. Тогда несоразмерно задранная планка заработной платы разработчиков упадёт до нормального значения и все эти школьники, которые отработали пару лет, научились лепить формочки на cms'ке и уже называют себя сеньорами, начиная плавать, даже если просто заговорить с ними о паттернах и просто ну очевиднейших практиках хорошего кода типа "не пиши запросов в шаблонах".
Профессионал тем и отличается от новичка, что способен оценить задачу и выбрать наиболее качественный вариант под заданные временные рамки. Например, написать не только быстро, но и достаточно качественно, просто не совершив очевидных ошибок.
Аноним 18/10/18 Чтв 15:51:33 1281046132
>>1281045
В тему, как раз недавно случай был, я общался с одним таким "разработчиком" и он мне доказывал, что базы данных и всё такое "не нужны", он же и так "справляется с работой". Через несколько дней обнаружилось, что связь между сущностями ожидалась не один-ко-многим, а многие-ко-многим (задача была на уровне "опиши библиотеку с авторами и книгами" - очевидно, что у автора может быть много книг, а у книги - много авторов). В итоге потребовалось писать миграции, править код и всё такое - лишние несколько часов работы.
Сеньор бы в таком случае или сразу догадался сделал правильно, или спросил бы (вообще, навык задавать правильные вопросы - очень недооценённый, но очень важный).
Аноним 18/10/18 Чтв 15:54:39 1281048133
>>1281046
К слову, то, что у стольких людей предложение "напиши мне расчёт ХХХ" вызывает возгорание - меня не удивляет, потому что этим я (или кто-то ещё) явно тыкаю в их неумение разобраться в вопросе и сделать что-то качественно, без переделок.
Чем-то напоминает строителей, там тоже мало какая бригада делает всё сразу, без косяков (профессионалов всегда меньше). И, если указывать на неровную плитку и прочую фигню, возмущаются горе-строители также громко ("мы ведь сделали! Ну и что, что криво!").
Аноним 18/10/18 Чтв 17:36:03 1281111134
>>1281045
Судя по твоему посту ты сам недалеко от джуна-теоретика ушёл. Вещи красивые говоришь, но не понимаешь что бизнесу нахуй не нужен красивый хорошо работающий код. Бизнесу надо код, который выполняет задачу. А если задача новая, то чтобы код был написан быстро. Все эти хипстерские языки и фреймворки появились на рынке лишь потому что позволяют быстро шлепать то что нужно.

А в тех областях, где требуется оптимизация, экономия памяти и прочие подсчёты тактов процесса, там нету всякого скипающего времени сахара.
Как говорил мой дед, каждому хуюшке по своей пиздюшке.
Аноним 18/10/18 Чтв 17:45:16 1281118135
>>1281046
Так тут проеб менеджера, который задачу хреново передал.
Аноним 19/10/18 Птн 01:20:11 1281268136
Поясните пожалуйста, за асинхронное программирование. Только вкатываюсь, не знаю про это почти ничего. Где применяется, зачем и сколько нужно знать и понимать для применения?
Аноним 19/10/18 Птн 05:12:05 1281287137
>>1280904
>2018
>иметь вендорлокнутый С# и .NET Core

Вы дебилы?
Аноним 19/10/18 Птн 07:25:49 1281294138
>>1281287
не понимаю твоего бугурта
Аноним 30/11/18 Птн 20:07:37 1303851139
Бамп
Аноним 01/12/18 Суб 13:32:30 1304248140
Аноним 01/12/18 Суб 20:22:18 1304418141
Выбрал хаскель.
Аноним 01/12/18 Суб 20:58:34 1304454142
>>1304418
...и навернул ложку борща

Аноним 03/12/18 Пнд 10:43:31 1305232143
>>1304454
В чём суть мема с борщём?
Аноним 03/12/18 Пнд 12:44:57 1305249144
>>1305232
В том, что хаскеллисты любят кушать борщ и приседать со штангой.
Аноним 04/12/18 Втр 01:26:37 1305557145
haskell.jpg (246Кб, 1024x768)
1024x768
lisp.jpg (61Кб, 388x599)
388x599
rust.png (1162Кб, 699x933)
699x933
cpp.jpg (209Кб, 700x467)
700x467

Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Топ тредов
Избранное