4 ms·
I've been working with the language for a few months. Overall, I love pretty much every single aspect of the language. I am even starting to feel like the few t
by saosebastiao 12y ago
I've been working with the language for a few months. Overall, I love pretty much every single aspect of the language. I am even starting to feel like the few things that I would like to have aren't necessary (such as HKTs and ML-style functors). In terms of platform support, F# has done almost everything right (I feel like Scala made boat loads of bad compromises to support Java interop, which I don't find at all with F#). There are entire classes of frameworks for web and mobile development in C# that are made obsolete even by the simplest language-level features like Agents, ADTs, Computation Expressions, Active Patterns, Type Providers, etc.
My disappointments so far are super frustrating though. Like Jarcane, I've found quantity of documentation to be an issue. Most tutorials assume that you a) already know C# and b) are using VisualStudio, and the whole ecosystem is still very Windows-centric. It is nearly impossible to learn the language without an IDE, and all of the non-VS IDEs are pretty crappy in terms of F# support. The whole msbuild or whatever it is behind the scenes doing the building is completely opaque and incomprehensible. The compilation order issue (you basically have to tell the build system the order of compilation, with no cyclical dependencies) is pretty difficult to understand and sometimes very difficult to work with. It also makes code organization very unintuitive (you can't put code in directories?!).
All in all, it is pretty frustrating, but at least they got the language right. The frustrations will likely go away in time, so I'm willing to put up with them for now. Maybe I'll get good enough at the language to actually fix them :)
- muraiki 12y agoSomething that's kept me from pursuing learning F# is whether I need to know C# and/or Windows development, plus concerns about lacking access to Visual Studio. I'm learning Scala now and found that it's relatively approachable without knowing Java, but Clojure was definitely easier to approach from the "never used Java" perspective. But it seems like F# is a much bigger leap to make for someone with no MS stack experience than Scala/Clojure for someone with no JVM experience. It seems like Scala and F# are the only real choices for typed functional languages in relatively common use in industry (in comparison to Haskell and OCaml).
- deleted 12y ago[deleted]
- jackfoxy 12y agoYou definitely do not need to know C#. Knowledge of the .NET Framework or Mono is however desirable (which if you do not know C#, you are unlikely to have) in order to get things done. Learning on anything other than Visual Studio will probably be challenging. You know you can get full Visual Studio 203 for free now? https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx https://www.visualstudio.com/en-us/products/visual-studio-co...
- sremani 12y agoI use LinqPad for writing small to medium size F# programs. There is also another IDE called Tsunami for F#, its useful and lightweight. MonoDevelop does run F# but you have to get that as a plug-in after installing on Linux and OS X. Atom has a F# package, but I have not used it. Of course, fsi (interactive) is probably best kept secret while learning the language or playing a new library.
- marpstar 12y agoIs there any support for type providers or code completion for F# in LinqPad? I was (mistakenly) under the impression that F# wasn't supported, so spent most of my time inside of VS and Xamarin Studio for the goodness of type provider intellisense.
- sremani 12y agoNo there is no intellisense in LinqPad, interestingly tryfsharp.org has the online editor that seem to excel with intellisense esp. while using IE for type providers.
- Zolomon 12y agoThere is support for IntelliSense through http://www.omnisharp.net/ http://www.omnisharp.net/. I wrote a tiny blog post about how I got it set up with Emacs on Windows 7 [1]. [1] http://blog.zolomon.com/development,emacs/2015/03/25/emacs-on-windows.html http://blog.zolomon.com/development,emacs/2015/03/25/emacs-o...