|
|
|
|
|
by Parazitull
2233 days ago
|
|
TL,DR: Try F# or other "impure" ML languages if you want the security of types but you don't like actually typing the types. I also used to love js / php because because I thought types make the code unnecessarily verbose. After some pet projects with a strongly typed lang (c#) I realized the peace of mind that using types gives. But I still maintain my opinion that types make the code too verbose. But then I saw the "light" that is F# and I'm here to preach: F# has types BUT you don't need to type them (most of the time) because it has type inference.
F# can be used in the .net ecosystem and most of the time it can replace C#.
F# can be compiled to js (although the interop is a bit messy).
F# is a better typed javascript than typescript.
F# is predominantly functional but you can also write code in the non-functional(ha!) style of your choice.
F# discourages you from coding mutable spaghetti
F# has decent tooling: VSCode + Ionide + dotnet + paket
F# has pipes |> The bad parts: F# is not a hard-core functional language like Haskell, but for me this is a positive
F# is a functional language which requires a change about how you think about a program.
F# doesn't have a huge community
F# doesn't give you a lot of job prospects
F# doesn't have a lot of 3rd party libraries (but you can use c# libraries in .net or js libraries with fable. You can also mostly port libraries from other functional languages)
F# requires you to think about the order of your declaration. Cyclic dependencies are harder to accomplish although this might be a good thing. |
|