|
|
|
|
|
by thelazydogsback
2225 days ago
|
|
F#'s strengths are also some of its weaknesses.
Re: H-M type system (a) the lack of decls makes code nice to look at when writing, but coming back to it a year later or w/someone else's code, it can be hard to follow. (b) Sometimes the errors are still quite baroque! And the tooling (esp. 3rd party) isn't as prevalent. Partial application can be one of those write-only code constructs unless used in very simple/canonical patterns. I'd also like to have a Scala like "hole" syntax with positional args -- this is also need to alleviate the need to write a (fun -> ...) when calling methods on object in a |> pipeline. And speaking of pipeline, they look nice, until you want to debug through them. (Need something like Ozcode's LINQ debugger for pipelines.) F# also (last I checked) doesn't do the level of optimizations I'd like to see, such as removal of tuple creation between fn's when there never actually stored, etc. Although I understand the rational for the Curried form for fn types, it seems a bit pedantic to present things this way by default -- seeing (int -> string) -> Foo -> (bar list -> baz -> qux) is IMHO harder to look at than the standard presentation. Although C# really needs seq and post-fix types -- "IEnumerable<Foo>" is an eye-sore compared to "Foo seq". But it's hard to go back to any lang w/o DU's... |
|