Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Mar 27 2015 20:26
    User @sudodoki banned @doneck-russia from this room
  • Mar 19 2015 20:58
    User @mr-mig banned @pgr-ru from this room
  • Mar 15 2015 01:09
    User @mr-mig banned @putin-hero from this room
  • Mar 15 2015 01:09
    User @mr-mig banned @stepan-bendera from this room
Paul Colomiets
@tailhook
@kstep, я скорее всего смогу приехать и что-то рассказать
Kyrylo Yakovenko
@blia
@tailhook как таб Боб?
Konstantin Stepanov
@kstep
@tailhook будем очень рады! :+1:
Kyrylo Yakovenko
@blia
тут есть живые
Ingvar Stepanyan
@RReverser
ага. з 27 лютого тиша, і то був офтоп :)
Kyrylo Yakovenko
@blia
а тут кажется оффтоп всегда, никто же на нем не пишет реально, только говорят :trollface:
Ingvar Stepanyan
@RReverser
лол
Kyrylo Yakovenko
@blia
ну если поскроллить - это не далеко от правды
Michael Pankov
@mkpankov
@blia @RReverser ребята, хотите более активный чат - приходите сюда
Paul Colomiets
@tailhook
Кажется @blia только что обозвал меня "никто" :(
Ну да, и вот свежий вброс: https://twitter.com/dysinger/status/709519920086712320
Luda Lukashevskaya
@lud4ik
это был твит в защиту людей, которых поначалу заставили писать на go
Ruslan Shevchenko
@rssh
там дробоксяне уже опровергли - не реддите было, сейчас уже не найду (на руст у них написана собственно низкоуровневая fs, а оркестрация - на go. общаются они между собой по IPC )
EugeneN
@EugeneN
Та і те і друге - злісна імперативщина, чого тут сперечатися ;-)
Можна навіть сказати - процедурщина
mbme
@mbme
@EugeneN на rust це від програміста залежить :)
EugeneN
@EugeneN
@mbme rust хороша мова, можливо навіть одна з найкращих - низькорівневих імперативних. Але ні разу не функціональна. ФП - це не залежить від програміста, це математична дисципліна, грубо кажучи.
і зрештою цілком закономірно що для rust нема такого різноманіття веб-фреймворків і іншого високорівневого коду
бо для того є куди кращі мови :-)
хаскель наприклад
а де треба сильно низькорівнево, оптимізовано з пам’яттю, якісь інші гарантії робити з залізом - там от ніша для rust, а хаскелю там робити нічого
а go взагалі збоку :-)
ні до розумних, ні до красивих не відноситься)
Paul Colomiets
@tailhook
Ну по-моему для rust'а уже больше фреймворков чем для haskell'а (ну или как минимум уже очень много, учитывая что 1.0 еще менее года). Другое дело что я тоже считаю что они не нужны :)
EugeneN
@EugeneN
та вони є, різної степені придатності. Інша справа, що вони справді не потрібні)
ну тобто для фану писати можна, але якщо робота на результат - то тут хаскелю нема конкурентів)
в хаскелі їх небагато ( відносно) тому що там дуже великий коефіцієнт реюзу коду
тобто там на кожну задачу, на кожному рівні одна рівно ліба є і робить свою роботу добре
бо на хаскелі якісно пишуть зазвичай
а ще там високоякісний discrovery механізм
треба тобі фунцію - пишеш в пошуку її тип і знаходиш що таке вже є
не перевинаходиш велосипед
дуже прагматична мова - хаскель
а хаскель+раст взагалі тру могло б бути
mbme
@mbme
@EugeneN точно, rust не є чистою функціональною мовою програмування
але (раптово) позволяє без напруження писати у функціональному стилі
go цього не дозволяє (без кодогенерації або написання тисяч коду вручну)
саме тому я і написав, що все залежить від програміста
Luda Lukashevskaya
@lud4ik
@EugeneN и что ты на хаскеле написал? оно юзается в продакшене?
EugeneN
@EugeneN

@mbme Що таке фп - широке питання, недавно на реддіті був батл на ну тему. Я не хочу холіворити, абощо, але все-таки думаю варто уточнити, сповільнити зростання інформаційної ентропії навколо цієї теми.

Програмування з immutable даними, чи там з використанням optional, чи з map/reduce, навіть якщо це назвати функціональним стилем - не є фп. Суть фп - це програмування, що базується явним чином на законах математики і логіки, на equational reasoning і ще подібних речах, для чого необхідно мати гарантії детермінізму від мови ітд. Якщо мова не пропонує тобі явно описувати твій наступний веб-фреймворк моноїдами, аплікативами, монадами, не може перевірити логічну коректність за допомогою типів (глобально, а не в межах однієї функції), ніяк не обмежує ефекти (а без цього про якийсь детермінізм неможливо говорити) - то це не фп, та й годі :-)

Статичні гарантії коректності роботи з памяттю - фішка раста - напряму вказують що раст не фп - бо в фп нема проблем роботи з пам’яттю. Робота з пам’яттю - це low level, деталі імплементації заліза, неважлива річ для фп. Завтра буде пам’ять що сама регулює доступ або ще по іншому працює, квантово якось, реплікується на кожну зміну - і імплементація раста буде неважлива. А фп залишиться і розквітне ще більше :-) ФП працює на вищому рівні, і не займається детялями реалізації низькорівневої залізяки. Це як в javascript ніхто не займається питаннями tcp/ip ітд.

Практично чистою фп мовою є хаскель, не чистою фп мовою є кложур, ерланг не є навіть не чистою фп мовою, ну а раст взагалі не фп мова :-)

@lud4ik саме так, я фул тайм комерційно і в продакшні програмую на хаскелі. В тому числі веб-фронтенд - 100% хаскель, через ghcjs. Причому продукт юзається навіть фейсбуком і інстаграмом - це такий інструмент що застосовує ML для покращення контенту, реклами зокрема, але не тільки.
EugeneN
@EugeneN
чому фп - omniversal, і чому інопланетяни мають свій хаскель: https://www.youtube.com/watch?v=IOiZatlZtGU
mbme
@mbme
@EugeneN робота з пам'яттю тут взагалі ні до чого, це деталь реалізації
хочеш - заглиблюєшся в неї, не хочеш - передаєш все за значенням
rust має first-class functions (lambda calculus) тому на ньому можна писати у ФП стилі ("підтримує ФП парадигму")
так само як і Lisp/JavaScript/Python/Ruby і т.д. :)
круте відео, доречі :)
EugeneN
@EugeneN

наявність функцій вищого порядку це ще не lambda calculus сам по собі. Крім того, Lambda calculus - це ще не все з чого складається фп, особливо на сучасному рівні розвитку - про це чомусь постійно забувають, але lambda calculus - то далеко не вершина фп, а просто один зі спрощених варіантів від того ж typed lambda calculus. Сучасне фп, з теорією категорій і іншими системами типів, пішло ще дальше. Я писав вище емпіричні правила як визначити чи мова фп чи ні. Якщо ти під час програмування думаєш постійно і регулярно про функтори і монади - це, можливо, фп. Якщо ні - то це не фп, навіть якщо це лісп :-)

З іншого боку, я згоден що rust в такій самій мірі фп як і JavaScript/Python/Ruby, і в чуть меншій степені ніж лісп (лісп принаймі історичні заслуги має :-) От тільки усі вони не фп. Те що в описі у вікіпедії пишуть "мультипарадигменний" - це ще не достатня умова щоб бути фп. Це такий жарт. Машинні коди теж фп, бо ж навіть хаскель в результаті перетворюється на машинні коди. А ще машинні коди ооп, і усі інши *п разом взяті :-)

З цими всіма поняттями, назвами і тд дуже багато плутанини, і це вже стає небезпечним для ніакрєпших умов. Саме тому я от намагаюся по можливості уточняти поняття і терміни. З фп ще просто, от з ооп набагато більш запущено :-)

І ще одне базове відео в стилі попереднього: https://www.youtube.com/watch?v=Z35Tt87pIpg

mbme
@mbme
ок
з таким максималістичним підходом haskell не фп
тільки agda і coq - фп
а скоро і вони не будуть true FP
це мені нагадує xkcd https://xkcd.com/378/
EugeneN
@EugeneN
:-) ні
кінь - не автомобіль
ford model t - автомобіль
мерседес 2015 р. випуску теж автомобіль
те що мерседес кращий (?) не означає що форд не автомобіль :-)
vdimir
@Vdimir
This message was deleted
Ingvar Stepanyan
@RReverser
а тут, як завжди, офтопи :(
mbme
@mbme
зате чат живий
Андрей Листочкин (Andrey Listochkin)
@listochkin
@RReverser а чат по расту вот https://gitter.im/ruRust/general Там полно сообщений каждый день