
Evgeniy
23.05.2017
15:09:28
На этом и закончим, пожалуй.

Akhmed
23.05.2017
15:11:36
Точнее не пропогандируют а в отличае от большинства они не делят на чистое ООП и ФП. Такое деление только на низком уровне есть.
Вообщем еще раз извиняюсь

Pawel
23.05.2017
15:18:26
== Вы просто в силу того что не знаете то о чем говорите думаете что они убивают ФП
на всякий случай я ничего подобного не говорил. И чтобы раставить точки над ё - право называть идиотами кого бы то ни было столь же не зыблемо, как и ваше право кого бы то ни было уважать. Тут конечно вопрос в аргументации, но я не думаю что такая дисскуссия будет здесь уместной. Просто каждый отсанется при своём мнение а желающий сами проанализируют является ли Фаулер идиотом или великим гуру как его позиционируют

Google

Roman
23.05.2017
15:18:54
тяжелый сегодня день какой-то

Pavel
23.05.2017
15:24:19
не конструктивненько, давайте лучше про монады

Evgeniy
23.05.2017
15:24:28
Давайте лучше код писать. :)

Pavel
23.05.2017
15:24:54
уже вечер, отдыхать тоже нужно когда-то :)

Летучая
23.05.2017
15:26:02
Окай, код для петов писать

Akhmed
23.05.2017
15:26:54
https://www.youtube.com/watch?v=7Zlp9rKHGD4
Помните задачу про температуру ? Можно на сайте замутить сборник таких задач с предложением решений и голосовалкой за лучшее решение.

Evgeniy
23.05.2017
15:56:40
@Mblkolo Пожалуйте. :)

Роман
23.05.2017
16:00:14
Я вкатился вот с каким волнующим меня вопросом: кто-нибудь ощутил профит от F# ?

Vasily
23.05.2017
16:00:59
В чем профит должен выражаться
?

Роман
23.05.2017
16:01:22
это не спор о том, какой язык лучше, а вопрос о том, где F# полезнее для разработчик C#. Исхожу из того что универсальных языков нет.

Vasily
23.05.2017
16:01:48
Расширяет арсенал навыков, позволяет писать более чистый код, имхо

Google

Роман
23.05.2017
16:03:22
это абстрактно.
я поизучал интерактивные примеры на http://fsharp.org/learn.html
Погуглил что-то типа "F# на практики", но пока не понял где я это смогу использовать.
С ходу профиты могу назвать такие: проще код, меньше шансов ошибиться.
слышал что C# многословаен по сравнению с F#

Evgeniy
23.05.2017
16:07:07
@Mblkolo Использовать можно для тех же задач, что и C#. Но нужно учитывать, что могут разные инструменты использоваться, или например, в некоторых местах поддержка F# не такая крутая как у C#.

Роман
23.05.2017
16:07:47
такая мысль:
Я могу взять свою лабиринт на сокетах, переписать на F# и понять что было лучше, а что хуже.
А могу спросить здесь, где кто-нибудь полюбому уже проходил такой путь :)

Алька
23.05.2017
16:08:36

Evgeniy
23.05.2017
16:16:22
@Mblkolo Мы можем быть немного предвзяты. :) Лучше самому попробовать. Просто ответ на твой вопрос довольно большой и сложный. Обычно упоминают самое простое: меньше кода, почти нет проблем с null, удобно описывать предметную область в типах, сложно испортить хорошо написанный код.
Много всего, и у всех разный опыт. :)

Роман
23.05.2017
16:18:02
Ну а может у кого-то есть истории успеха, типа "переписал/написал на F# и так хорошо получилось", в идеале с ссылкой на репу ?

Friedrich
23.05.2017
16:25:38
Любой инструмент, который думает за меня, и позволяет такие проблемы выловить — хороший.


Roman
23.05.2017
16:34:34
Оба языка для общих задач, с# довольно мощный сам по себе, так что сходу не увидеть плюсов, кроме как в краткости синтаксиса. В целом язык подталкивает к более корректному коду, даже если писать в ООП стиле, например заставляет использовать интерфейсы, а не конкретные реализации.
Например
type ILogger =
abstract member Log: 't -> unit
type LoggerClass()
interface ILogger// не помню синтаксис имплементации интерфейса
member Log s -> printfn "%A"
let logger = LoggerClass()
logger.Log(1) // не существует
т.к. Надо привести к интерфейсу ILogger, но обычно явно никто не приводит и используют
let log (logger:ILogger) obj = logger.Log obj
Сразу не поймёшь, почему такое "неудобство" это хорошо, но когда приучаешься программировать на интерфейсах, то понимаешь, что избежал кучи ошибок
И это только один из многих плюсов


alix
23.05.2017
16:36:30
и прочими радостями
я за многословность в этом контексте

Roman
23.05.2017
16:36:48

Google

Роман
23.05.2017
16:40:36
@neftedollar спасибо

Igor
23.05.2017
16:43:38
Кто-нибудь тестил новый Xamarin Live Player?
Что-то он с F# отказывается работать, только C#.

Nikolay
23.05.2017
16:52:56
У кого-нибудь был опыт разработки под Unity на F#?

Igor
23.05.2017
16:54:02

Nikolay
23.05.2017
16:55:10
Хотя официальной поддержки, конечно же, нет


Anton
23.05.2017
17:17:35
Тему с DU обсудили вроде. Вот мне еще понравилось, что замыкания в Fsharp сериализуются. Это например позволило мне на одной из работ сделать весьма интересную вещь. Через компутейшн експрешшн можно описать функцию с тербованиями к среде выполнения типа колчисетво памяти свободной, нагрузка на cpu, загруженный в память большой датасет. Тоесть функция исполняется и как только у нее есть требование дальше исполняться с определенным условием, она прерывается и сообщает рантайму требование. Рантайм находит подходящую ноду в кластере, сериализует замыкание и передает ее в рантайм другой ноды.
До этого все было описано с помощью стандартных паттернов распределенных приложений и это был геморой.
Прадва сейчас есть акка нет и орлеанс, так что немного уже не в кассу. Хотя теже акторы можно использовать как рантайм для вышеописанной системы.


Roman
23.05.2017
17:26:48

Roman
23.05.2017
17:27:00
это конечно, не unity

Nikolay
23.05.2017
17:27:11
Это 2D :)

Roman
23.05.2017
17:27:20
нуок

Evgeniy
23.05.2017
17:27:32
@Dolfik
https://developer.xamarin.com/guides/cross-platform/urho/fsharp-and-urhosharp/

Roman
23.05.2017
17:27:43
кстати, на monogame fsharp отлично ложится

Evgeniy
23.05.2017
17:30:29
@fvnever --warnaserror:25
Не позволяет компилировать incomplete pattern matches.
@azazeo Где взял стикеры с Ленойдроид? :)

Google

Ivan
23.05.2017
17:55:55
В споре о SRP и SOLID + plugins (расширяемая архитектура), где можно реально увидеть примениние Reader вместо DI на большом комлексном разрешении зависимостей? Или не получится без Хаскель?

Igor
23.05.2017
18:14:25

Pawel
23.05.2017
18:16:30

Roman
23.05.2017
18:17:35

Pawel
23.05.2017
18:18:06
конечно, в райдере же например
для плагинов
была статья автора ionide где он это описывал
ну и вообще для кодогенерации динамической
http://kcieslak.io/Dynamically-extending-F-applications

Admin
ERROR: S client not available

Roman
23.05.2017
18:23:41
Блин, такая печаль. Используешь AppSettingsTypeProvider, а его ConnectionStrings нельзя использовать с SQLProvider =/
постоянно натыкаюсь на это и постоянно расстраиваюсь

Ivan
23.05.2017
18:25:26


Pawel
23.05.2017
18:30:28

Igor
23.05.2017
18:31:08

Pawel
23.05.2017
18:32:51

Ivan
23.05.2017
18:33:42
А это сервер, в кластере. С микросервисами. Здоровый (размер). Самое то для функционалки. И народ не против. Но как опыта не хватает, что ли.
Конкретно в F#

Pawel
23.05.2017
18:36:24
Конкретно в F#
в F# ad-hock полиморфизма нет. и видимо никогда не будет

Ivan
23.05.2017
18:38:42
Вся команда .NET. На C# получается уже непотребно. На F# лучше, но как без рук плавать...

Google

Evgeniy
23.05.2017
18:38:48
@ruzzke_mir Не совсем корректно. Ad hoc полиморфизм есть, нету трейтов/тайпклассов.

Ivan
23.05.2017
18:39:21
Я тут по этому поводу уже шумел. Их ДЕЙСТВИТЕЛЬНО не хватает.

Roman
23.05.2017
18:39:22

Ivan
23.05.2017
18:40:33
Для Reader опять же не хватает монадных трансформеров

Roman
23.05.2017
18:40:52

Igor
23.05.2017
18:41:05

Ivan
23.05.2017
18:41:27
Получается какой то недо функционал, с кучей интерфейсо и их размазанной реализацией ?

Anton
23.05.2017
18:42:00

Ivan
23.05.2017
18:42:48

Anton
23.05.2017
18:43:09

Ivan
23.05.2017
18:43:57
Теоретически, при равных рефах, мжно поробовать кинуть асинки

Anton
23.05.2017
18:44:29
Использовать Reader для DI по мне так сомнительная идея. Я сам как то думал на эту тему и пришел к выводу что fp это чистые функции и надо просто описать ast как DU далее все это описываем через копутейшн експрешшенс далее функции генерят Ast который уже попадает в интерпретатор.

Pawel
23.05.2017
18:44:56

Evgeniy
23.05.2017
18:45:19
@ruzzke_mir Да, я знаю.

Ivan
23.05.2017
18:45:34
Опять же натягиваем DSL без макросов - как то не айс

Evgeniy
23.05.2017
18:46:01
Надо радоваться, что без макросов. :)

Anton
23.05.2017
18:46:49
Старое описалово мое подхода тут. Но там уже в ретроспективе я понял что слишком нагородил, ну и устарело как всегда http://hodzanassredin.github.io/2016/02/12/ddd_with_dsl_monad.html

Ivan
23.05.2017
18:46:59
Вот тут я совсем не согласен. Чуть чуть изменить тайп провайдеры - и макросы есть.

Evgeniy
23.05.2017
18:47:23
Вам хочется поддерживать код с макросами?

Ivan
23.05.2017
18:49:53
А вы пробовали? Я поддерживал, с гигиеной. В команде. С DSL. Кода стало в 5 раз меньше. А страх -это естественно. Зато - copy-paste в замену. И на 34000 файлах поддержка.
И это небольшой проект. Так и до 150000 доходило. И в каждом копи -пейст. Команду надо, извините, дрессировать в хорошем смысле ?