F# фор фан (і роботи)

всім привіт

Власне, питання: хтось використовує F# для роботи чи пет проектів?
Важко було освоїти? Легко? Подобається працювати?

Я бачив подібні теми, але 5 річної давності, тому цікавлюсь, як із цим на даний момент, особливо у світлі того, що вийшов .NET Core 5, який вже зовсім кросплатформений.

А також того, що випустили так званий SAFE stack для вебу, який дозволяє фронт писати на тому ж F# і компілювати у JS.

Ну і якщо галузь не веб, також цікаво.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Хто хоче писати на F#, приходьте в державне підприємство ІНФОТЕХ!
Стек платформи: ws.erp.uno

Использовался для компактной реализации dto и некоторых других целей, но после завоза в 9 шарпе records — был выпилен. Основная причина — сложности в навигации по references между f#/c# проектами и ньюансы сборки. Если бы не это, то процесс скорее принял бы обратное направление..

За последний год зарелизили пару фич с бизнесс логикой на F# на энтерпрайз проекте с возрастом 2,5 года в проде и ~10 девелоперов. Команда начала осваивать технологию год назад. use cases: событийний workflow генерации предположений о календаре\маршруте посещения городов\офисов на основании бронирования отелей\маршрутов перелетов\бронирования авто; volume control посещения офисов с букингом комнат on-demand(офисы с capacity до 20 к человек) c графиками по часам.
Через месяц изучения команда начала писать код, еще через месяц написания кода и ревью научились работать с функциями as first-class citizen и юзать базовые фп конструкции.
из минусов — остался introp с с# кодом, что требует некоторого boilerplate на нем же некоторый overhead. плюсов достаточно много. Отличный инструмент для бизнесс логики дополняющий разработку на .net проектах.

Колись, як він тільки зьявився у вісуал студіі, я намагався його вивчати. Сама мова дуже сподобалась, але згодом не було часу та я забив не цей Ф шарп.

Освоить F# без наличия опыта в фп — сложно, но можно. Работы очень мало.

У меня было свободное время в прошлом году и я решил разобраться с F#. Сначала было отторжение странного синтаксиса, но потом пришло понимание простоты и элегантности языка и функционального подхода.
Согласен с Scott Wlaschin, что F# - это лучший язык для энтерпрайз разработки ( fsharpforfunandprofit.com/...​best-enterprise-language ). Также, очень понравилась его книга Domain Modeling Made Functional ( fsharpforfunandprofit.com/books ) об использовании F# в DDD разработке.

Очень хотел бы найти работу на F#, но вакансий практически нет :-(

Тем не менее, разобравшись с F#, я стал лучше понимать и C#, и объектно-отриентированное программирование, и JavaScript. Так что польза есть в любом случае. Думаю, что в ближайшие несколько лет функциональные языки программирования получат большее распространение.

Це от-от відбувається вже зараз.
Питання в тому, що ідеї та підходи з функціональних мов перетікають в інші, не функціональні, і через це набувають поширення.
Тому, якщо навіть самі мови не такі вже поширені, вони все ж таки мають вплив через свої ідеї.

Нужно призвать Молдована в каменты)

Мы используем для разработки преимущественного количества проектов.
Сейчас 2 проекта на github.com/xperiandri/Elmish.Uno в пред produciton. Один под iOS, один на WASM под веб.
Ещё на Azure проект 100% на F# не считая Uno (там головы на C# + XAML, но сама логика тоже на F#). Даже библиотечку таку написали github.com/...​andri/FSharp.Azure.Cosmos

И сейчас ещё 2 проекта стартуем:
1. Мобильное приложение на Elmish.Uno
2. Облачная система с мобильным приложением на Elmish.Uno и IoT часть на Windows 10 IoT UWP (Elmish.Uno)

Если интересно поучаствовать, приглашаю пообщаться.

SAFE не используем, вместо этого пока github.com/...​jects/FSharp.Data.GraphQL
Мне не понравилась реализация Saturn.
А веб часть с учётом того, что есть Uno, и XAML приятнее HTML будет, пока на нём делаем.
Хотя с Bolero можно было бы поработать. Ну и с Fable тоже, но только если критичен размер веб-приложения.

А где можно подробнее почитать про ваши проекты? Сайт secretcircle.solutions ругается на сертификат...

Использовал для написания SQL Dynamite (GUI на C# а всё что кроме него на F#)

Использовал фофан для скриптов разворачивания инфраструктуры в ажур через их апи github.com/...​e/azure-libraries-for-net

jobs.dou.ua/...​ancies/?search=F#&descr=1

Так больше — надо в описании искать, думаю в djinni, linked-in можно еще больше найти. Как показывает опыт , на f# может писать любой .net девелопер пишущий на с#,при желании. При этом получать больше удовольствия от результата и разработки.

зачем если есть ocaml?

Думаю затем, что можно юзать дотнетовские библиотеки и фреймворки, которых насколько я понимаю в разы больше, чем у окамла. Ну и фреймворков для собственно фшарпа думаю больше, чем фреймворков для окамла. Например, веб-фреймворков для F# знаю есть минимум 5 штук (WebSharper, Saturn, Suave, Giraffe, Fable), а у окамла разве что Ocsigen/Eliom (ocsigen.org) и ReScript/BuckleScript, хотя может еще что-то есть). Ну и еще F# вроде как можно присобачить к Unity для геймдева ( github.com/FsUnity , правда хз как с последними версиями юньки, может уже не присобачивается...), если нет, то можно заюзать F# в рамках движка/фреймворка MonoGame. Ну и под мобилки писать на ксамарине (окамл под мобилки насколько знаю не может).

Хотя да, окамл насколько знаю крутой язык, к тому же на нем можно написать свой язык (Наxe тому примером).

Да, можно к Unity. Знаю чувака, который к Unity F# Interactive прикрутил. Можно на лету создавать объекты и выполнять F# код прямо как в студии

хороше питання

Власне, чому F# - вже відповіли.

Чому все таки не ocaml — через його «споживацькі властивості».
Автори (INRIA) живуть у своїй власній бульбашці і не сильно бажають із неї виходити.
Матеріалів мало, навіть не зважаючи на класну книжку Я. Мінскі (я навіть купив, але не прочитав).
«Стандартна бібліотека» написана Jane Street і вона *NIX онлі — пишу «стандартна» в лапках, бо не зовсім уявляю, накільки вона стандартна, але у книжці і прикладах без неї нікуди.
Компілятор до сих пір в основному *NIX орієнтований і на віндовс треба крос-компілювати з лінукса або скакати з бубном біля Cygwin (таке собі задоволення, я пробував)

З жирних плюсів: standalone бінарніки, які працюють навіть між різними версіями лінукса (з оговорками, звісно), непогана швидкодія.

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

Підписатись на коментарі