2. About me
- 7.5 years of web development in asp.net
- 5 regular projects
- 3 highload projects
- 1.5 startups
- 1 cup with ninjacat on the dino holding
windows flag
3. Misconceptions about F#
● It’s functional language
● It’s for scientists
● It’s for .NET only
● It’s dying
● It’s complicated
● It’s not practical
● C# has almost everything from F#
4. Why F# is not so popular (my opinion)
● Poor IDE support (fixed)
● Rumors about complexity (fixing)
● Poor frameworks (fixed)
● Translations are complicated. Better start from English. (sorry sos)
● Not enough developers (fixing)
5.
6.
7.
8. What’s wrong with C#?
● Nulls (until C# 8)
● BL Interfaces
● BL Exceptions
● Lack of high-level functionality
● Impurity
● Implicit conversions
● Microsoft driven
9. What’s shiny about F#?
● Avoiding nulls in most cases
● Highly composable functions
● Domain modeling (including errors)
● High-level functionality: Computation expressions, Discriminated unions,
Actors (Mailbox), Currying, Active Patterns, Type providers, Type inference,
Auto-generification, Composition, Piping, Units of Measure
● Purity with dependency rejection
● Explicit conversions
● Community driven
● Less code
10. FP and OOP
● FP for data pipelines, modeling, business logic
● OOP for mutable state, contracts, DI
11. Ok, what can we do with F#?
● Backend (Giraffe, Suave, Freya, Saturn)
● Frontend (Fable, Elmish)
● Cloud (Azure functions, Lambda)
● Concurrent programming (Hopac, Akkling, Orleankka)
● Testing (hedgehog, canopy, fsunit)
● ML (CNTK.fsharp, Math.NET)
● Data analysis
● Xamarin
● REPL
12. You’ll have more tools
● FSI
● Paket
● FsCheck
● Fake
● MBrace
● VSCode or Rider
● DDD
● FP
13. Any more benefits?
● New paradigms
● New mindset
● New contacts (including language creator)
● You have what to ask on interview
● More topics for .NET meetups