metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-11-22 09:12 pm

fby

Посетил таки мероприятие элитных функциональщиков http://fby.by/

Достаточно неплохо, правда, под конец я утомился и доклад [livejournal.com profile] xeno_by про Dotty, независимую от компилятора модель языка, метапрограммирование и сохранение AST/метаданных вместе с бинарниками либ слушал в сумеречном состоянии сознания.

Еще не успел послушать целиком [livejournal.com profile] levgem, т.к. был на другом потоке, слушал про F#. Вообще, его доклад полезен тем, что это про законченный большой продающийся продукт, в то время, как другие рассказывали больше про общие фичи языка или про некоторые частные идеи.

Было, в целом, достаточно много скалы и F#, наконец-то я посмотрел на новые F# с провайдерами типов (я до сих пор по причине использования 2010 студии сижу на 2.0 версии).

[livejournal.com profile] tonsky рассказывал про критерии полезности языков программирования в целом. Упомянул недостаток clojure - слабую масштабируемость разработки, все-таки это язык для мелких команд вплоть до одного человека.

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

В целом, что немного напрягает - сильный разнобой в функциональных языках и нет явно видимого фаворита - во всех языках реализуются/портируются друг от друга похожие фичи, поддержка инструментов, насколько я понял, на данный момент лучше всего в F# - там на конференции прямо в vs всякие приколы типа "запустим тайп-провайдер и в репле получаем его структуру" демонстрировали, метапрограммирование живое в скале с кложей, асинхронность хорошо в хаскеле с эрлангами

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

PS: Кстати, главное что мне понравилось на конференции: сэндвичи с мясом и травой, в чем-то вроде лавашей.
Я первый раз присутствую на мероприятии, где дают нормальную еду для мозга, т.е. мясо, трава и чай/кофе, а не только сладости и печенье. Впрочем, чай я с собой в термосе притащил, т.к. предпочитаю пить достаточно крепкий зеленый с добавкой эхинацеи :)

[identity profile] metaclass.livejournal.com 2014-11-23 08:57 am (UTC)(link)
Если бы дело ограничивалось качествами языка - имело бы смысл брать скалу или F# (или эрланг для специфических ниш).
Менеджерам и клиентам на технологии не похуй - хорошие выбирают то, что будет более эффективно (в т.ч. и пхп, если на рынке этих пхпистов по рублю пучок, а задача несложная), типичные - "то что всегда использовали".

[identity profile] metaclass.livejournal.com 2014-11-23 09:05 am (UTC)(link)
Мне нельзя, я асоциальный псих.

[identity profile] binf.livejournal.com 2014-11-23 09:14 am (UTC)(link)
== асинхронность хорошо в хаскеле с эрлангами

так в F# те же парадигмы и опции - Microsoft.FSharp.Control.MailboxProcessor с агентами.

[identity profile] binf.livejournal.com 2014-11-23 09:24 am (UTC)(link)
== более-менее толковые GUI тулкиты только в скале и clojure есть

xaml + WPF круче, проще и мощнее всего, что есть под JVM неважно для какого ЯП. Я щас вообще не приемлю другого подхода к гуям, кроме декларативного xaml или html5/css3

[identity profile] binf.livejournal.com 2014-11-23 09:37 am (UTC)(link)
"GUI сейчас в основном лепят на ООП" - тока под jvm и qt, но это идиотизм. Только декларативный язык, практически xaml под виндвз, html5/css3 под веб. Застраничный язык - js, C# или что-то ещё - вопрос второстепенный.

[identity profile] metaclass.livejournal.com 2014-11-23 09:38 am (UTC)(link)
Под дотнет нету внятного метапрограммирования. Руками гуй делать очень грешно.

[identity profile] binf.livejournal.com 2014-11-23 09:47 am (UTC)(link)
у F# система типов на дженериках, там всё несколько хуже чем в хаскеле с классами типов. Те же банальные функторы на F# уже никак не представишь, и это приводит к хуевой туче однотипного кода. В scala по идее должно быть ещё круче, но в итоге выродилось в дичающую сложность с ковырянием трейтов и case-классов.

[identity profile] binf.livejournal.com 2014-11-23 09:59 am (UTC)(link)
Зато есть нормальный декларативный язык. Для застраничных вью-моделей вряд ли метапрограммизм имеет какое-то решающее значение. Но если таки не терпится упороца именно под нэт - есть Nemerle.

[identity profile] binf.livejournal.com 2014-11-23 10:38 am (UTC)(link)
а нафига выжимать из C# больше функциональщины, чем он может дать, если есть F# ? по приколу?

[identity profile] anonim-legion.livejournal.com 2014-11-23 10:38 am (UTC)(link)
Почему-то в ЖЖ нет самого русскоязычного главного проповедника nemerle, а жаль.

[identity profile] binf.livejournal.com 2014-11-23 11:07 am (UTC)(link)
видимо ему достаточно rsdn'а, а на жжшный срачи нету времени))

[identity profile] anonim-legion.livejournal.com 2014-11-23 11:11 am (UTC)(link)
Человек недооценивает силу общения с людьми. ЖЖ - площадка общего типа, кывт - специализированная. В рунете про немерле вообще нигде не пишут, кроме кывта.

[identity profile] jakobz.livejournal.com 2014-11-23 11:26 am (UTC)(link)
Это всё декларативное - тоже плохо работает для UI, потому что семантика там та же ООП-шная: тот же XAML и HTML - это языки для сериализации ООП-шного дерева компонент.

У каждого этого компонента - здоровенный кусок стейта, куски которого потом в "застраничном коде" пытаются синхронизировать, что и создает ту самую экспоненту в сложности от количества кнопочек. А размазанность этого стейта - создает проблемы с cross-cutting фичами.

[identity profile] binf.livejournal.com 2014-11-23 11:47 am (UTC)(link)
не, ну я тоже слышал про что-то типа Yampa в хаскеле, но оно всё очень далёкое от свинцовых реалий нашего Мордора. Wpf кстати очень многое позволяет делать stateless и без C# на чистом xaml и в тенденция там к расширению. Для меня лично проблема c UI даже не в отсутствии функциональщины, в конце концов можно писать застраничный код на F#, инкапсулируя изменяемое состояние в замыканиях на ссылки и т.п. Для сложных UI зачастую проблематично разделить модель представления и саму вьюшку, особенно если доменная структура данных составлена не лучшим образом. Но если уже удалось сделать нормальный view-model, то сама вьюшка получается простой.

[identity profile] cross-join.livejournal.com 2014-11-23 11:56 am (UTC)(link)
Голословные утверждения, показывающие ко всему прочему, ваше незнание исторического контекста возникновения технологий GUI и ООП.
Edited 2014-11-23 11:56 (UTC)

[identity profile] love5an.livejournal.com 2014-11-23 12:01 pm (UTC)(link)
затролел ок)

[identity profile] jakobz.livejournal.com 2014-11-23 12:12 pm (UTC)(link)
Про исторический контекст возникновения - не понял наброса. Да и вообще наброса не понял.

[identity profile] evil-invader.livejournal.com 2014-11-23 12:31 pm (UTC)(link)
А почему maven - содомия?

[identity profile] geniepro.livejournal.com 2014-11-23 12:46 pm (UTC)(link)
> Ничего. Скоро выберут самый-самый плохой и сделают главным.

И это будет F# -- хуже не придумаешь...

[identity profile] naartir.livejournal.com 2014-11-23 12:48 pm (UTC)(link)
1) Так, праблема. Але людзей, якія ня пішуць логі, трэба біць.

2) Часткова згодны, але за код зусім без дакумэнтацыі і прыкладаў, незалежна ад мовы, зноў такі, трэба біць нагамі. Ужо прабачце, рэбэ. )

Што да clojure, я на яе паглядваю як на мову для аднаго праекта. Мне цікава, якія рэбэ можа назваць годныя альтэрнатывы clojure/clojurescript для ўэба?

[identity profile] berezovsky.livejournal.com 2014-11-23 01:02 pm (UTC)(link)
Левгем вроде стриминговый сервер продаёт.

Интересно, как коррелируют интернет, участники живых конференций и активные проекты.

[identity profile] geniepro.livejournal.com 2014-11-23 01:08 pm (UTC)(link)
> В имитационном моделировании объекты живут своей жизнью и обмениваются сообщениями. Симула-67 - ООП в полный рост, хотя уже был Лисп.

GPSS Трудно назвать объектно-ориентированным, насколько я знаю...

[identity profile] jakobz.livejournal.com 2014-11-23 01:18 pm (UTC)(link)
Мне кажется что вот эта проблема мэппинга viewmodel и UI, или viewmodel и model - она начинается с того, что обычно есть два средства сделать мэппинг:
- ущербный eDSL aka "databinding"
- императивный код, размазанный соплями по всяким beforeRender и onChange

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

Короче для начала нужно бы отказаться от распространённой идеи что eDSL для преобразования viewmodel во view и обратно может и должен быть ущербным. И принять идею что это должен быть полноценный язык, закрывающий 90% задач.

[identity profile] metaclass.livejournal.com 2014-11-23 01:20 pm (UTC)(link)
Юзабилити у него из разряда "пользуемся, потому что все остальное еще хуже" :)
Так-то идея хорошая, но реализация не очень.

[identity profile] metaclass.livejournal.com 2014-11-23 01:24 pm (UTC)(link)
Я clojurescript не смотрел, т.к. и обычный жабаскрипт-веп не очень знаю, им другие люди занимаются.
Собственно, у меня бекенд - это RESTful сервис (неважно на чем (у меня два похожих - clojure и C#), он все равно на 90% оборачивает в себя либо CRUD, либо отчетность какую, в планах - workflow всякий еще).
На фронтенде js с jquery - я туда не лезу, а пинки людям чтобы осилили какой react.js + бутстрапы, не помогают.

Page 2 of 4