Does anyone know of a good community to learn abou...
# present-company
c
Does anyone know of a good community to learn about DSL/SDK design with FSharp? It doesn't have to be a community only about FSharp or only about DSL design.
Cc @Ahmad Sattar @Garth Goldwater @pbiggar
p
I have’nt really tapped in to F# community yet. In terms of DSLs though, you’d probably enjoy this: https://www.microsoft.com/en-us/research/publication/the-f-computation-expression-zoo/. Seems to be how lots of DSLs are done in F#
👍 2
c
Thanks, @pbiggar, I'll check this out! Ahmad also turned me on to computational expressions. And I've been really impressed with how the "builder" works with the type system well. It looks like macros almost, but it seems to feel like any other FSharp (with type checks, inference, go to def, etc)
a
I'm unsure if there is a well formed community around it, unfortunately, as it is a little niche. Something I can chime in with is the shared fsprojects github org that you might have run into. It's for sure a good place to look at how others have handled DSLs. And also a lot of the members would know about it :)
❤️ 1
g
almost all of my exposure to f# is watching scott wlaschin talks on twitter—and id classify them as more about functional programming patterns than F# in particular... also i think Koka, the algebraic effects proof of concept language was written in f#
1
e
m
@Cole I don't know about any, but am also interested! Brother and I are building our DSL (waps-lang.dev) and we are approaching it in pretty ad-hoc manner - it would be cool to have some kind of community to learn from. Although we are doing it in Haskell. Is there a specific reason why you would use F#?
c
@Martin I've heard of Wasp lang, it seems like a pretty great project! Many reasons for trialing F# during this phase. It's mostly because it shares a lot of similarities with Rust (which we use heavily), and it has great support in VS Code (which we use mainly since we also use a lot of TypeScript). I really like the sorbet ecosystem, and believe that F# has a better "works out of the box" feel than languages like Haskell or OCaml. The compatibility with C# is awesome as well to leverage a huge existing ecosystem (maybe: depending on .Net 5 compat). Honestly, Haskell also feels really intimidating and seems to have a fractured ecosystem of different language extensions. But, that's just my early take on things. I'll certainly hold stronger opinions after spending more time with FSharp
👍 1
m
@Cole thanks for detailed answer! That makes a lot of sense, the whole interplay with other technologies from the NET ecosystem. I thought there might be some special reason why it is a great fit for DSLs but I assume it is the same arguments as for Haskell. Haskell is a weird animal, but on the other hand it does have pretty good IDE support I think - although probably not as good as F# does. I wouldn't say system is fractured, there are just many extensions to choose from - but never felt like a problem. Anyway I didn't want to defend Haskell 😄, I certainly don't have enough experience to do anything like that, just offering quick view 🙂. Excited to hear more about the whole journey once you get more into it!
b
If you join the F# Foundation, you can join the F# Slack, which may be a good place to check. I personally love F# but have not dove into using computation expressions yet.
👍 1