F# фор фан (і роботи)
всім привіт
Власне, питання: хтось використовує F# для роботи чи пет проектів?
Важко було освоїти? Легко? Подобається працювати?
Я бачив подібні теми, але 5 річної давності, тому цікавлюсь, як із цим на даний момент, особливо у світлі того, що вийшов .NET Core 5, який вже зовсім кросплатформений.
А також того, що випустили так званий SAFE stack для вебу, який дозволяє фронт писати на тому ж F# і компілювати у JS.
Ну і якщо галузь не веб, також цікаво.
23 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівХто хоче писати на 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
Вакансії на DOU:
jobs.dou.ua/vacancies/?search=F
кількість вражає :)
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 который я не перевариваю