@Fsharp_chat

Страница 7 из 772
Akhmed
01.03.2017
22:07:28
ну тут я не могу уверенно утверждать так как абсолютно ничего серьезного не делал на Scala

Arseniy
01.03.2017
22:08:16
Кстати, про f* кто что может рассказать? Что это? зачем?
f* достойный молодой игрок в лиге языков для написания изощрённого и сложного кода, который ничего не делает

Akhmed
01.03.2017
22:09:02
что за f* ? это такой стеб над F# ?

Arseniy
01.03.2017
22:09:41
это теорем прувер. типо агды или кока. только написан на F# и в качестре решалки использует z3

Google
Akhmed
01.03.2017
22:10:26
любой разработчик низкого скила может написать код который ничего не делает на любом языке и гордиться этим

у меня был студент который гордился методом в 1000 строк на C#

и он гордился что он смог написать такой сложный метод

Roman
01.03.2017
22:11:10
Akhmed
01.03.2017
22:11:15
я сначала не понял что он гордится - думал жалуется что он такой говнокодер и мол говорю "не переживай, научишься кодить с практикой"

он удивился - мол типа а что он разве не умеет? Он же осилил такой сложный код в 1000 строк только в одном методе

когда показал что после рефакторинга этот объем уменьшился до 300 сильно удивился

и стал намного проще и читабельнее и понятнее по сравнению с тем что было

а F# практически всегда выдает более простое и элегантное решение нежели C#

Женя Зэ
01.03.2017
22:15:36
Так скала конкурент фшарпу или они о разном?

Akhmed
01.03.2017
22:16:15
Они такие же конкуренты как C# и Java

кто живет на C# стеке вряд ли когда нибудь пойдет на Java стек

и наоборот

Google
Женя Зэ
01.03.2017
22:16:59
Т.е. конкуренты, ок

Akhmed
01.03.2017
22:17:19
ну я в этом сильно сомневаюсь

Arseniy
01.03.2017
22:17:24
Лучше расскажите чем OCaml отличается от F# (кроме того что второй на .net).
точкой у операций с плавающей точкой) ну и еще система типов там более сильная и позволяет выражать более сложные вещи. F# выигрывает инфраструктуров дотнета, единицами измерения, квазицитированием. по идее тайпровайдерами, но у меня от них плохое вречатление осталось.

Akhmed
01.03.2017
22:17:35
вот C# и Java действительно конкуренты

а вот F# и Scala как гораздо менее популярные языки по сравнению со своими старшими братьями не могут быть конкурентами в принципе

т.е. кто пишут на Java никогда не возьмут F#

Женя Зэ
01.03.2017
22:18:29
ну я в этом сильно сомневаюсь
Почему? У меня ЦПП стэк, я думаю куда мигрировать

Akhmed
01.03.2017
22:18:30
точно так же как если у нас UI на C# то для логики мы никогда не возьмем Scala

Женя Зэ
01.03.2017
22:18:46
У меня новый проект

Я выбираю стэк

Akhmed
01.03.2017
22:19:22
не ну тогда можно сказать что любой функциональный язык является конкурентом

почему не тот же Clojure ?

или тот же Haskell ?

с такой точки зрения все конкуренты

Женя Зэ
01.03.2017
22:20:38
Хаскелл вряд ли...

Arseniy
01.03.2017
22:20:48
Я выбираю стэк
а что делать-то надо?

Женя Зэ
01.03.2017
22:21:36
На дот нете и джвм у меня будет возможность миксовать функциональный стиль с ооп если понадобится

Хаскель слишком чистый

Akhmed
01.03.2017
22:22:08
миксовать между собой F# и C# проще нежели Java со Scala

Google
Женя Зэ
01.03.2017
22:22:52
А скала изначально не чистая функциональщина

Как бы ты уже на уровне скалы можешь отъехать если надо

Я просто пытаюсь спор поддержать

Не фанат джвм

Akhmed
01.03.2017
22:23:50
так и F# может все что может C#

F# точно так же как и C# является мультипарадигменным языком

многие новички F# думают что они умеют писать на F# только потому что они придя на F# пишут абсолютно так же как писали на C#

Arseniy
01.03.2017
22:25:45
по-моему, это всё ерунда. миксовать-не миксовать. тут надо идти от потребностей. нужна база данных - какие есть либы. нужен фронтенд? какие есть веб-фреймворки. сериализация там. акторы или что еще.

Akhmed
01.03.2017
22:26:54
http://www.scala-lang.org/old/faq/4.html#4n263

Arseniy
01.03.2017
22:27:43
Ну все это есть в обоих случаях же!
каких обоих случаях? F# и Ocaml или что?

Akhmed
01.03.2017
22:27:46
т.е. ВСЕ что можно использовать для C# точно так же можно использовать и для F#

Женя Зэ
01.03.2017
22:28:15
Это потому что ЦЛР изначально пилили независимым от языков

Так?

Arseniy
01.03.2017
22:29:45
Вот как раз таки это не ерунда. Любую .NET либу можно использовать на F#
вызывать джаву из скалы - тоже самое что сишарповские либы из фишарпа. либо оборачивать для нормальной работы в идиоматичном стиле, либо писать криво-коряво в соотвествии с дизайном либ под императивный - ОО язык

Akhmed
01.03.2017
22:30:43
Насколько я знаю с совместимостью Java и Scala Далеко не все так гладко

вот уже кидал выше:

Google
Akhmed
01.03.2017
22:30:51
http://www.scala-lang.org/old/faq/4.html#4n263

Женя Зэ
01.03.2017
22:33:01
Крч мы приходим к тому что вин дотнэта в изначальном дизайне ЦЛР

Arseniy
01.03.2017
22:34:15
да всё у скалы и джавы нормально. нету тут никакого вина, 1 в 1 всё)

Akhmed
01.03.2017
22:34:30
можно спросить у скиловых Scala разработчиков

ну по крайне мере вот подобных болезней нет: Can I compile Scala code into Java source (for example, so I can use GWT)? Not at the moment, although there is a project underway to provide this functionality.

Вы можете прямо сейчас у себя скомпилировать F# и декомпилировать в C# без проблем

собственно я часто это делал что бы лучше понять особенности работы F#

Женя Зэ
01.03.2017
22:37:38
Закрепляем, вин дотнета это архитектура ЦЛР!

Roman
01.03.2017
22:38:44
Igor
01.03.2017
22:38:57
можно спросить у скиловых Scala разработчиков
Насколько я знаю основная проблема scala то что у нее свои коллекции не совместимые с java и приходится перегонять данные. (в Kotlin таких проблем нет тк они юзатю java коллекции + 100500 своих extension methods для них).

Akhmed
01.03.2017
22:40:00
ну я с котлин тоже не работал активно но мне он реально понравился. По крайне мере после C# переходить на котлин заметно приятнее нежели на Java

Arseniy
01.03.2017
22:40:19
да блин, использовать скалу из джавы без врапперов нельзя. с фишарпом аналогичная история. хочешь фишарповые либы из сишарпа - врапперы.

Akhmed
01.03.2017
22:41:08
одно дело когда тебя обязывают использовать враппер без вариантов

другое дело когда все типы из коробки совместимы абсолютно и ты для красоты дизайна приложения сам решаешь сделать враппер

любые функции объявленные в F# доступен в C# как статичные методы статичных классов

Вот Роман лучше расскажет как профи F#

сейчас не поленился и сделал пример

одна строчка кода на F#

type Product = Book of int | Album of string

Google
Akhmed
01.03.2017
22:49:29
декомпилировался на C# в такой ад:

http://i.imgur.com/9SfTa0W.png

Arseniy
01.03.2017
22:53:17
это всё известно. вопрос в том, что на практике. является интероп между скалой и джавой шоустопером? нет. есть плей, есть акка, спарк - всё это используется из джавы без всяких проблем. в тоже время, если мы берем какую-то полезную либу на F#, то у нее есть враппер для сишарпа, например http://nessos.github.io/Streams/

Igor
01.03.2017
22:56:29
Даже в "разборе полетов" упоминали http://razbor-poletov.com/2016/02/episode-104.html Барух до сих пор про это java-чате (pro.jvm) "дискутирует".

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

Даже в "разборе полетов" упоминали http://razbor-poletov.com/2016/02/episode-104.html Барух до сих пор про это java-чате (pro.jvm) "дискутирует".
Да они там хейтеры скалы сидят, раздувают там чёт, интриги скандалы, расследования. Форсят какую-то мёртвую грувю)

Vasily
02.03.2017
05:35:17
На самом деле у f# интероп с c#-тот еще головняк. Особенно сценарий, когда надо из c# либу вызывать

Roman
02.03.2017
10:00:00
На самом деле у f# интероп с c#-тот еще головняк. Особенно сценарий, когда надо из c# либу вызывать
Вот тут, обычно проблем не возникало. Что за проблемы появлялись?

Vasily
02.03.2017
10:18:30
Ну как обычно

1. Прокидывание и вызов делегата

2. Преобразование типов

Приходится что-то вроде такого писать : let getFunc (func:Func<'a,'b>)= fun x-> func.Invoke(x)

Arseniy
02.03.2017
22:30:02
https://twitter.com/VisualFSharp/status/837375739729043456

GNU/Patchouli
03.03.2017
16:58:38
Хаскель слишком чистый
Пожалуйста, есть крупные расширения - Haskell++ и O'Haskell, которые привносят полноценное ООП в Хаскелл.

GNU/Patchouli
03.03.2017
17:39:20
http://risovach.ru/upload/2016/02/mem/bolnoy-ublyudok_105123256_orig_.jpg
Да чего там, это вполне нормально и вписывается в язык. Больные ублюдки те, кто на стоковой жаве кодит в функциональном стиле, не пользуясь императивным и ооп подходом, вплоть до объявления всех переменных константными, хедедеде

Arseniy
06.03.2017
13:30:08
https://eiriktsarpalis.wordpress.com/2017/03/06/f-and-purity/

Страница 7 из 772