Hacker News new | past | comments | ask | show | jobs | submit login

Some of the issues (such as null values sneaking through the standard library) are a price to be paid for using a runtime such as .NET with a large ecosystem of existing libraries. This can be avoided to some degree by writing/using thin wrappers around the troublesome integration points that translate nullable values to option types. I agree, it is a source of friction. I believe other functional languages that target existing platforms (such as Scala) have similar issues.

Other points you mention (like being forced to upcast values to interfaces) have been resolved in recent versions of F#.[1] The language continues to evolve and improve with annual major releases. My biggest pain point is actually the tooling around the language, but that situation has been improving as well.

[1] https://docs.microsoft.com/en-us/dotnet/fsharp/whats-new/fsh...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: