@Fsharp_chat

Страница 321 из 772
kana
21.09.2017
20:09:46
TypeScript и BuckleScript почему то умеют делать ES5, а Fable нет. Что хорошего это даёт разработчику на Fable кроме гемороя с полифилами и баблем - в упор не вижу.
Ну имхо это все таки упрощает сам фабель и перекладывает работу по конвертингу на более компетентные инструменты. Другое дело, что он мог сам вызывать бабель

Pawel
21.09.2017
20:10:13
В fable из обязательных зависимостей только babel, все остальное на свой вкус. В дефолтовом темплейте помоему yarn используется. Плюсы fable в том, что это транспайлер f# в js. Это не огромный фреймворк как websharper или elm, а небольшая тулза, которая помогает перенести f# в js. И это не ограничивается фронтом, можно без проблем писать сервер на ноде, или десктоп на электроне. И самое главное, что fable тебя не ограничивает (теоретически) в выборе js библиотек, фреймворком. В общем я не вижу смысла сравнивать websharper с fable. Тут разумно сравнивать с typescript. Если устраивает синтаксис и инструменты TS то лучше взять его,ну или elm.
> И самое главное, что fable тебя не ограничивает (теоретически) в выборе js библиотек, фреймворком ограничивает ни чуть не меньше чем все подобные инструменты. А зачастую на много больше. MobX например в Fable нельзя ни сейчас ни в обозримом будущем ?

Google
Pavel
21.09.2017
20:11:00
Fable продьюсит babel AST. Я не сильно слежу за js миром, но мне кажется браузеру это скормить не получится.

Pawel
21.09.2017
20:12:13
Ну имхо это все таки упрощает сам фабель и перекладывает работу по конвертингу на более компетентные инструменты. Другое дело, что он мог сам вызывать бабель
давай называть вещи своими именами - разработчик упростил написание компилятора за счёт усложнения его использования.

Да, есть такое. Но вроде уже пилятся атрибуты. Fable достаточно гибкий инструмент, особенно в сравнении с websharper
хз в чём ты видишь особую гибкость fable. В websharper точно так же можно вызывать нетипизированный raw js, биндингов у него предостаточно. Но у него есть гуманное FRP, а в fable для хранения сотояния и vdom надо использовать костыли в виде redax + react, которые в typescript сделать гораздо проще

> Это не огромный фреймворк как websharper или elm, elm не огромный, он довольно компактный) websharper для фронта тоже маленький

Vladimir
21.09.2017
20:26:02
Подскажите плиз, почему вот это module Router let usersPathString = PathString("/users") компилится вот в это public static class Router { [CompilationMapping(SourceConstructFlags.Value)] public static PathString usersPathString { get { return Router.usersPathString@27 } } И как оставить поле вместо свойства

Pawel
21.09.2017
20:26:03
> Если устраивает синтаксис и инструменты TS то лучше взять его,ну или elm. собственно да. Алгебраические типы - есть. Неизменяемые структуры данных - тоже. Система типов более мощная. Есть ad-hock полиморфизм через миксины. И это я ещё молчу про reasonml, где всё на много круче ?

Aleksander
21.09.2017
20:44:29


Сходил на митап про F#. Доклады для совсем начинающих, ну и народ туда больше приходит за нетворкингом.

Andrew
21.09.2017
21:00:46
Где проходил митап? Где анонсировался? Можно ссылку?

Aleksander
21.09.2017
22:14:56
Google
Andrew
21.09.2017
22:16:21
а, так это в Лондоне :)

Дед Пегас
22.09.2017
05:37:20
Доброе утро!

Evgeniy
22.09.2017
05:37:51
Pavel
22.09.2017
05:41:29
Он сам и вызывает.
Все правильно. А вебпак используется для бандлинга, запуска вебсервера, запуска демона fable.

Evgeniy
22.09.2017
05:44:03
Если честно, то мне немного надоедают споры про инструменты для компиляции в JS, которые начались ещё в @elm_ru и перекатились к нам.

Pavel
22.09.2017
05:48:37
Ну почему споры. Человек вроде искал что ему выбрать для фронта на f#. Просто высказывают своё мнение про тот или иной инструмент.

Evgeniy
22.09.2017
05:49:25
Да, я погорячился, конечно же. Наверное, мне так кажется, потому что я уже не первый раз перечитываю одни и те же аргументы. ?

Pavel
22.09.2017
06:32:41
Твит в тему последней дискуссии https://twitter.com/k_cieslak/status/911006135150350336

Evgeniy
22.09.2017
06:38:16
А у меня есть про WebSharper. ? http://forums.websharper.com/view-ticket/83481

Я не очень хорошо понял, для чего это и чем грозит. сс Pavel @ruzzke_mir

Смотрите, какая интересная штука! > Computer Vision with F# - Advanced Lane Finding https://github.com/fwaris/CarND-Advanced-Lane-Lines/blob/master/fw_adv_lane_fine_writeup.pdf

@ruzzke_mir И если будет свободная минутка, расскажешь про WebSharper? А то там много всего, вроде и для бэкенда что-то есть, и UI.Next.

Pawel
22.09.2017
07:25:27
Очень годная штука. Позволяет написать сервер и тонкий клиент прямо в одном проекте. Интегрирована с ASP net. Сборка через msbuild, всё настроено в шаблонах проектов для Visual Studio. Много биндингов, нормальный interop с js. Много уникальных фишек - сайтлеты, тайп-провайдеры для шаблонов html, типизированный роутинг, FRP. Документация хорошая, много блог-постов - почитай. Вендорится крупной фирмой, много активных контрибъютеров, все мейнтейнеры - грамотные инженеры.

^ @gsomix

Evgeniy
22.09.2017
07:27:22
@ruzzke_mir А для отдельного фронта есть UI.Next, правильно?

Pawel
22.09.2017
07:27:37
да, конечно

Evgeniy
22.09.2017
07:28:24
Ок, спасибо.

@ruzzke_mir Я так понимаю, .NET Core не поддерживается, да?

Pawel
22.09.2017
07:35:20
нет, не поддерживается.

Google
Vladimir
22.09.2017
08:17:20
Private?
Нет, не помогло, просто модификатор стал internal

Evgeniy
22.09.2017
08:22:03
Нет, не помогло, просто модификатор стал internal
Я боюсь, что никак. А для чего это?

Vladimir
22.09.2017
08:24:29
Я пытаюсь дальше улучшать перформанс Highloadcup решения и ищу где =) уже всего в 3 раза хуже чем топовое на плюсах

Ну вот проперти вместо поля вроде бы очевидно что не нужно

Еще неожиданно обнаружил что Seq генерит вот такую конструкцию try { double num3 = 0.0; int num4 = 0; while (enumerator.MoveNext()) { num3 += fsharpFunc.Invoke(enumerator.Current); ++num4; } if (num4 == 0) throw new ArgumentException(LanguagePrimitives.ErrorStrings.InputSequenceEmptyString, "source"); num2 = num3 / (double) num4; } finally { IDisposable disposable = enumerator as IDisposable; if (disposable != null) disposable.Dispose(); }

Тоже надо будет переписать

Evgeniy
22.09.2017
08:28:15
Да, у Seq пока что-то странное с производительностью. В следующей версии F# должно быть получше.

Vladimir https://telegram.wiki/desktop/tdesktopcodesnippets

Igor
22.09.2017
08:29:07
Кул, seq может быть IDisposable. Кто-нибудь применял?

Vladimir
22.09.2017
08:30:32
еще кстати кому интересно - все переписал на структуры и получилось медленней, вернул обратно классы

Evgeniy
22.09.2017
09:24:10
ANNOUNCING THE SAFE STACK > Today, we're announcing the launch of the SAFE stack initiative, which brings all of the elements together as a cohesive story: - Suave model for server-side web programming - Azure for cloud-based systems - Fable for Javascript-enabled applications - Elmish for an easy-to-understand UI programming model https://compositional-it.com/blog/2017/09-22-safe-release/index.html

Привет. о/

Vasily
22.09.2017
09:29:09
Это бот, походу

techi
22.09.2017
09:34:31
https://i.imgur.com/2lUiJ70.png

Evgeniy
22.09.2017
09:35:55
Похоже на то.

Roman
22.09.2017
09:36:53
А дайте ссыль на CIL

Evgeniy
22.09.2017
09:36:59
Будет спамить, удалим. :)

techi
22.09.2017
09:37:09
https://t.me/cilchat

Будет спамить, удалим. :)
Я же сейчас ничего не нарушил?

Google
Roman
22.09.2017
09:37:32
https://t.me/cilchat
Спасибо тебе добрый человек)

Evgeniy
22.09.2017
09:37:42
techi
22.09.2017
09:38:18
Нет. :)
Вот и хорошо! Я тут всё ещё сижу и не могу понять как использовать ФП вообще. Оно какое-то дикое...

Vasily
22.09.2017
09:38:50
Но симпатишное

techi
22.09.2017
09:39:17
Vasily
22.09.2017
09:39:35
Ну тут все ок

techi
22.09.2017
09:40:29
Я не могу понять смысла этой конструкции...

Vasily
22.09.2017
09:40:51
Она значит, что надо вместо возвращаемого значения вернуть unit

Т.е. проигнорировать результат вычисления

Например 3+2 вернет 5, а 3+2|>ignore unit

techi
22.09.2017
09:42:01
Звучит странно. Почему именно uint?

Vasily
22.09.2017
09:42:14
Рассматривай это как void

techi
22.09.2017
09:42:26
А, точно.

Vasily
22.09.2017
09:42:29
по факту - пустая функция

Поскольку в f# функции не могут ничего не возвращать

То unit - аналог void

techi
22.09.2017
09:43:52
В F# нет void, но есть unit, а он как void...

Вроде легче стало, спасибо :)

kana
22.09.2017
09:50:58
ноуп. Юнит - единичный тип, есть одно значение. У void нет значений, это нулевой тип. Хотя если void из сишки, то да, наверное Ох уж этот миснейминг

Evgeniy
22.09.2017
09:52:08
В F# нет void, но есть unit, а он как void...
Там есть немного про unit. https://fsharpforfunandprofit.com/posts/how-types-work-with-functions/

Google
Evgeniy
22.09.2017
09:53:12
И ещё немного из документации. https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/unit-type

Да, по поводу чатов. Есть отличный список, который я немного помогаю пополнять: https://github.com/goq/telegram-list

И CIL чат там тоже есть. :)

Artemy
22.09.2017
12:01:33
Тут всеразличные примеры есть, если что: https://try.websharper.com

Roman
22.09.2017
12:08:59
Спасибо

Pawel
22.09.2017
12:09:37
А есть пример интеропа с js?
ну вот например https://developers.websharper.com/docs/translation Там очень много материалов на сайте в доках на эту тему

Artemy
22.09.2017
13:27:49
https://forums.websharper.com/view-ticket/83499

Evgeniy
22.09.2017
13:28:40
https://forums.websharper.com/view-ticket/83499
А вот это хорошо. > Enable WebSharper for .NET Core

Artemy
22.09.2017
13:29:05
Ага. По крайней мере, они работают над этим.

Кстати, у них и форум преобразился. Над своим сайтом неплохо поработали в последнее время.

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