@Fsharp_chat

Страница 9 из 772
Vasily
07.03.2017
14:25:39
Я все пытаюсь на f# odata клиента запилить, но руки пока не доходят

Igor
07.03.2017
14:35:06
Ресурсов кушает меньше, чем Java (на порядок меньше CPU, примерно в 1.5—2 раза меньше памяти). Не падает.
Как ни крути HotSpot в C2 генерирует более оптимизированный код чем RyuJIT и у него есть спек. оптимизации. Так что в теории, когда он разогреется приложение должно работать быстрее, да GC в Java можно выбирать и поднастраивать.

Friedrich
07.03.2017
14:36:33
Как ни крути HotSpot в C2 генерирует более оптимизированный код чем RyuJIT и у него есть спек. оптимизации. Так что в теории, когда он разогреется приложение должно работать быстрее, да GC в Java можно выбирать и поднастраивать.
Я на самом деле очень уважаю HotSpot и считаю, что он по фичам наголову выше нашего CLR. Но уж чего-чего, а памяти оно жрёт намного лучше. У них там модель памяти другая. CLR старается не скушать больше положенного, а HotSpot жрёт, пока не упрётся в потолок. Модель потребления памяти JVM мне не нравится.

Google
Friedrich
07.03.2017
14:37:34
По CPU не могу объяснить свои наблюдения, но у меня рядом стоит простой сервер на JVM и на CoreCLR. Так вот, первый на текущий момент съел 4 часа CPU time, а второй полторы минуты. Работают одинаковое время, нагрузка одного порядка.

Однако приложения разные, и я не берусь утверждать, что даже порядок потребления CPU на такой нагрузке должен совпадать. Может быть, просто на CoreCLR-сервер никто не заходит :)

Igor
07.03.2017
14:41:02
По CPU не могу объяснить свои наблюдения, но у меня рядом стоит простой сервер на JVM и на CoreCLR. Так вот, первый на текущий момент съел 4 часа CPU time, а второй полторы минуты. Работают одинаковое время, нагрузка одного порядка.
В Java (в отличие от .NET) начинается с интерпретатора и постепенно разогревается проходя через 5 стадий компиляции. И что бы разогреться на максимум, методы должны вызываться очень часто.

Friedrich
07.03.2017
14:41:17
Ну не 4 часа же!

Friedrich
07.03.2017
14:41:55
Не, я не спорю, мои "наблюдения" нельзя назвать бенчмарками. И я не говорю, что JVM плохая, не подумайте :)

Igor
07.03.2017
14:42:52
ОК, кстати уже баян, но может кто не слышал еще http://razbor-poletov.com/2016/11/episode-121.html

Friedrich
07.03.2017
14:47:56
А я вот как раз и не слышал, спасибо. Послушаю.

Vasily
07.03.2017
15:02:52
Да, тоже вариант кодогенерации

Friedrich
07.03.2017
15:50:03
Aspnet lambda не смотрел?
Не смотрел, но что-то краем уха слышал. Что это вообще такое?

Google
Roman
07.03.2017
15:51:57
Asp.net в функциональном стиле

Igor
07.03.2017
15:53:29
Кстати, NancyFx никто не пробовал в F#?

Friedrich
07.03.2017
15:55:58
ОК, кстати уже баян, но может кто не слышал еще http://razbor-poletov.com/2016/11/episode-121.html
Вообще, очень смешно на этот выпуск смотреть с обеих сторон. Похоже, жавошники считают, что у нас в дотнете всё плохо, экосистема страшная, нету обратной совместимости, и вообще дотнет помирает. Из опыта общения с теми, кто пишет под дотнет — настроения противоположные: это жава умирает и в ней всё плохо, нету библиотек и обратной совместимости %)

Но я пишу под то и другое, и знаю страшную правду: умирают обе платформы, и всех скоро поглотит жабаскрипт %) (шутка)

Igor
07.03.2017
15:57:34
Особенно когда работает и с тем и с другим (много лет xamarin и android).

Friedrich
07.03.2017
16:00:25
Особенно когда работает и с тем и с другим (много лет xamarin и android).
Под Андроид ещё более своя атмосфера. Вся эта модель с распространением софта через Android SDK Manager отдельно от общих репозиториев пакетов — это тотальный геморрой для всех. Хоть для тех, кто в Gradle компиляет Java-проекты, хоть для тех, кто на Xamarin пишет, и вынужден у себя хранить огромный Android SDK.

Friedrich
07.03.2017
16:01:48
Ого, правда? Это очень хороший прогресс. У меня у самого только старые проекты под Андроид, я боюсь там что-то трогать и менять :)

А чо, посаны, ждём VS2017?

Akhmed
07.03.2017
16:19:00
а зачем ждать - я уже ставлю :)

Friedrich
07.03.2017
16:19:03
Там же F# 4.1 будет, со структурками во многих местах, ускорением компиляции и всякими плюхами.

(я уже тоже ставлю поверх RC)

Roman
07.03.2017
16:21:16
https://launch.visualstudio.com/ VS2017 is here!

Alexander
07.03.2017
17:06:59
смотрели трансляцию? что инетерсного было?

Friedrich
07.03.2017
17:14:09
Новый компилятор субъективно и правда стал быстрее.

Friedrich
07.03.2017
17:14:47
Ну да, мы же в F#-чате :)

Igor
07.03.2017
17:15:31
У меня просто нет винды что бы протестить ?

Friedrich
07.03.2017
17:16:31
А под операционными системами разве новый F# нельзя поставить?

Igor
07.03.2017
17:17:31
А под операционными системами разве новый F# нельзя поставить?
VSCode и VSforMac вроде не обновили F#. А какая есть фича в 4.1. несовместимая с 4.0 что бы протетстить?

Google
Friedrich
07.03.2017
17:19:39
Погоди, щас я тебе найду. И у себя потестю тоже.

Чёрт, не могу документации найти :(

https://www.infoq.com/news/2017/01/fsharp-4-1 вот самое свежее, что нашёл.

Давай вот эту строчку тестить: let origin = struct (0, 0)

Давай вот эту строчку тестить: let origin = struct (0, 0)
Кароч, у меня в VS2017 она теперь работает.

Alexander
07.03.2017
17:30:32
а сколько новой студии надо гигов минимум? Боюсь места не хватит

Igor
07.03.2017
17:43:51
Давай вот эту строчку тестить: let origin = struct (0, 0)
dotnet new console --language вроде создает с 4.1 но не компилит. Не было такой ошибки? FSC : error FS0074: The type referenced through 'System.ValueTuple2' is defined in an assembly that is not referenced. You must add a reference to assembly 'The system type 'System.ValueTuple2' was required but no referenced system DLL contained this type'.

Akhmed
07.03.2017
18:54:07
Live Unit Testing is present in the Enterprise edition of Visual Studio 2017 and it’s available for C# and VB projects that target the .NET Framework. :(

Roman
07.03.2017
19:15:20
Live Unit Testing is present in the Enterprise edition of Visual Studio 2017 and it’s available for C# and VB projects that target the .NET Framework. :(
Я честно говоря не оч расстроен, т.к. в F# эти тесты это какбы не оч. Он так построен же что компилится, значит работает в 99.9% случаев.

поэтому, кстати, не компилится гораздо чаще чем C#)

Arseniy
07.03.2017
19:29:02
https://www.infoq.com/news/2017/01/fsharp-4-1 вот самое свежее, что нашёл.
очень странный релиз. пилят фичи для байтосодомитов в языке, который не должен трогать эти вещи и пятиметровой палкой.

Igor
07.03.2017
19:34:24
очень странный релиз. пилят фичи для байтосодомитов в языке, который не должен трогать эти вещи и пятиметровой палкой.
interoperability одним словом. Кстати в dotnet теперь появился изкоробочный шаблон для F# dotnet new mvc --language f#

Evgeniy
07.03.2017
19:38:35
Кто не должен? Все должны.

Arseniy
07.03.2017
19:40:48
не

все эти вещи очень сильно мешают писать код. в смысле продуктивно писать код.

Evgeniy
07.03.2017
19:46:40
Мне помогают!

Пойду напишу еще немного кода.

Roman
08.03.2017
02:09:14
Господа, вдруг кто считает что ему интересно

https://hh.ru/vacancy/19622482

Friedrich
08.03.2017
06:21:45
очень странный релиз. пилят фичи для байтосодомитов в языке, который не должен трогать эти вещи и пятиметровой палкой.
А мне новые фичи нравятся, хорошие фичи. Можно ускорить код нехило. Я рад всему, что поможет мне решать задачи. Пассаж про "байтосодомитов" мне вот неясен.

Google
Friedrich
08.03.2017
06:25:48
Alexander
08.03.2017
06:28:13
https://hh.ru/vacancy/19622482
Можно сюда запостить https://t.me/microsoftstackjobs

Combot
08.03.2017
21:32:09
combot.org/chat/-1001116883766

Evgeniy
09.03.2017
05:27:16
Установил VS2017. Работает, но не без багов.

Что-то поломано в отображении ошибок компиляции.

https://github.com/Microsoft/visualfsharp/issues/2547 https://github.com/Microsoft/visualfsharp/issues/2548

Friedrich
09.03.2017
06:24:43
История с System.ValueTuple вообще очень мутная. Например, в проекте на C# можно использовать свою реализацию для этой структуры, и на этом багует уже решарпер :) (я им зарепортил)

В следующую версию фреймворка обещали его просто взять и включить.

Anton
09.03.2017
08:22:57
хм, пока не обновлялся.

Evgeniy
09.03.2017
08:24:17
Меня больше всего радует, что теперь VSIX со свежим мастером visualfsharp публикуют.

Можно фиксы (и новые баги) быстрее получать. :)

Anton
09.03.2017
08:56:34
Я останусь в своём уютном vs code & ionide

Я даже на C# не пишу в визле =)

Alexander
09.03.2017
09:58:18
Я даже на C# не пишу в визле =)
Какие типы проектов?

Igor
09.03.2017
10:01:49
Привет, что-то чат скатился (к обсуждению VS и C# ?) - пора подбросить дровишек. Вот реализация типа Reader в F# с fsharpforfunandprofit: type Reader<'environment,'a> = Reader of ('environment -> 'a) Как видно - она не предполагает асинхронности. Это просто функция из "окружение" в "результат". Но что делать если в цепочки вызовов нужно будет вставить "низкоуровневый" метод с "сайд эффектами", который перескачит с главного потока и потом обратно (типа I/O async/await)? Не могу же лочить UI поток?

Vasily
09.03.2017
10:02:34
Запустить в async?

Igor
09.03.2017
10:04:13
Запустить в async?
Ну формально она так и запускакется, ну а как это скрестить с Reader?

Vasily
09.03.2017
10:04:53
type Reader<'environment,Async<'a» = Reader of ('environment -> Async<'a>)

Хотя не, так не прокатит

Google
Vasily
09.03.2017
10:06:00
Тьфу, ошибся

Слева Async не нужен

Igor
09.03.2017
10:06:38
Да и вообще хотелось бы выть на уровне Haskell и не втаскивать F# частные реализации. Я пока думал над type AsyncReader<'environment, 'a> = AsyncReader of ('environment -> (unit -> unit) -> 'a)

Vasily
09.03.2017
10:07:38
Тогда лучше ('environment->unit) list ->'a

Ну или без листа

Недавно статью видел на похожую тему про стримы как раз

В целом, можно свой expression написать, по идее

Со всей нужной логикой

Roman
09.03.2017
10:24:27
Я даже на C# не пишу в визле =)
Когда на лине сидел все тоже хотел VSCode превратить в супер IDe, но чего-то как-то не вышло

Vasily
09.03.2017
10:25:14
Я даже на C# не пишу в визле =)
Все от размера проекта зависит и объема кодовой базы

Vasily
09.03.2017
10:27:51
Тогда уж надо склейку городить по идее

»>

Roman
09.03.2017
10:30:28
Тогда уж надо склейку городить по идее
в целом да, вертеть можно как хочешь)

Vasily
09.03.2017
10:31:22
Но красивее оператор переопределить :)

Шо-нить типа ?=>

Igor
09.03.2017
10:31:39
let runReaderAsync reader param = async { retrun reader param; }
Честного говоря я примеры на F# привожу только потому что это F# чат ? В итоге хочется реализовать "свою Async + IO монаду" совершенно на другом языке.

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