Microsoft Specific
Anything you do in F# and can I do in C#
C# has much more Microsoft support
It is easy to get C# jobs. There are no F# jobs
C# is the language of choice for Microsoft
I am 100% productive in C#. I don’t have the time to learn a new thing
Microsoft is going to kill F#
It is too hard to learn
Intellisense sucks. It makes no sense
MSDN can’t help
I tried a couple of F# books and they don’t help
Linq is good enough for me
Non-Microsoft
F# and/or functional programming is not all that is cracked up to be
It is a fringe language without traction.
Erlang, Scala, Haskill, Lisp are better functional langauges
Python is a better functional language
Functional people are too ivy-tower
I did a presentation at codestock on Saturday about building the business case for using F#. There was some resistance both during and after the talk. I did my best to solicit opinions from different people in the audience about why they don't use F#. Here is my collection of answers. I am aggregating the questions first before trying to come up answers (if there are any). Please add any other criticisms/reasons to not use F#. Note that I am not passing judgments on the validity of the responses, just collecting them.ThanksMicrosoft Specific
Anything you do in F# and can I do in C#
C# has much more Microsoft support
It is easy to get C# jobs. There are no F# jobs
C# is the language of choice for Microsoft
I am 100% productive in C#. I don’t have the time to learn a new thing
--
--
To post, send email to fsharp-o...@googlegroups.com
To unsubscribe, send email to
fsharp-opensou...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/fsharp-opensource
---
You received this message because you are subscribed to the Google Groups "F# Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fsharp-opensou...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I could strike through each point you mentioned, but .NET's open-source universe in inferior to JVM's (and Python's) - for me this is the main reason not to use F# exclusively. I have spent almost 2 years learning/using F# and I enjoy it. Other things being equal, I would use it in most cases (and C# in others). However, other things are not equal. Five days ago I started learning Scala and JVM in general, because I do not like the idea of reinventing the wheel (probably the wheels from the Morgan's picture are not squared at all, or the road is more developed for the squared wheels), I cannot ignore the huge number of good libraries (Twitter libs/Apache/ElasticSearch/Datomic) and IKVM is not a silver bullet.The good thing with Scala is that I feel I already know it: it is something in between of C# and F#. Instead of a religious war on which language is better, I just want to leverage the best parts from the best two platforms (.NET, JVM), and I started working on convenient interop between the two worlds using JSON-serialized message passing. F#, and the whole .NET, is definitely not enough now, but one is not obliged to choose either one or another.I think the back-door strategy (i.e. promoting F# for non-production code or for small parts where F# is best as the first step, e.g. latest Tomas's talk at NY meetup) is much better than telling other smart people that their wheels are squared (which is effectively telling them they are stupid). I am attending Hacker School in NYC now, and I am the only .NET and F# guy here. I tried to be vocal about how good in F#... but I prefer to make friends than to be right - when there is no universal truth and others are also right in their own way.To my surprise, many people at Hacker School do not know that F# is open source, cross platform, has good free tooling other than VS, allows to write cross-platform mobile apps, has great community and documentation, adopted in industry. Despite the fact that they are younger and more open-minded/curious than an average enterprise programmer... They know that MSFT = M$FT and is (used to be) evil, and stop at that point. Last week there was a flame war about F# vs. OCaml, and the major point was that F# is not ready for "high-scale production" and there is no single example, but OCaml has *1* example - Jane Street, and "1 > 0". After pointing to the testimonials page/Tachyus, the argumentation became mostly irrational. For some reason, Jane Street is hot, and MSFT & Co are not.
On Monday, July 14, 2014 5:37:53 AM UTC-4, Morgan Persson wrote:
2014-07-13 22:33 GMT+02:00 Jamie Dixon <james...@gmail.com>:
I did a presentation at codestock on Saturday about building the business case for using F#. There was some resistance both during and after the talk. I did my best to solicit opinions from different people in the audience about why they don't use F#. Here is my collection of answers. I am aggregating the questions first before trying to come up answers (if there are any). Please add any other criticisms/reasons to not use F#. Note that I am not passing judgments on the validity of the responses, just collecting them.ThanksMicrosoft Specific
Anything you do in F# and can I do in C#
C# has much more Microsoft support
It is easy to get C# jobs. There are no F# jobs
C# is the language of choice for Microsoft
I am 100% productive in C#. I don’t have the time to learn a new thing
--
--
To post, send email to fsharp-o...@googlegroups.com
To unsubscribe, send email to
fsharp-opensou...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/fsharp-opensource
---
You received this message because you are subscribed to the Google Groups "F# Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fsharp-opensou...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I recently wrote a small iOS app in F#. This was partly for personal education/interest, but also partly to give recommendations to a client.The experience was "fun" for me because I enjoy learning new programming languages and experimenting with functional programming. However, it is hard to recommend F# as a general-purpose iOS development language to clients/bosses for these reasons:- Learning curve would be considered steep by most developers without experience with FP or F#.- While it provides access to the native iOS APIs, the differences in the names of functions, types, and other identifiers led to a lot more need to refer to the documentation than I expected. I understand the desire to provide an API that seems more natural for F#, but it was frustrating to feel like an iOS developer newbie again.- Dependency on Xamarin is a risk that you wouldn't have if you stick with Apple's tools.- Xamarin's license cost isn't unreasonable, but it's not ignorable either.- Apple's new Swift language provides many of the benefits of F# (in comparison to Objective-C). It may not be as good as F#, but it may be "good enough", and it is a more natural migration path for current and future iOS developers.- Cross-platform development for iOS and Android (and other platforms) is an attractive feature, but it doesn't seem to be as easy to accomplish in real-life as the documentation suggests.I'd echo many of the things that Michael Langford wrote. Books, documentation, and tutorials are not up to date, and if you aren't using the Microsoft stack then a lot of what is out there is irrelevant.I like F#, and if I was completely independent I might use it for my apps. But it's hard for me to recommend to somebody else who just wants to get iOS apps written as efficiently and expediently as possible.-- Kris
On Sunday, July 13, 2014 4:33:14 PM UTC-4, Jamie Dixon wrote:
I did a presentation at codestock on Saturday about building the business case for using F#. There was some resistance both during and after the talk. I did my best to solicit opinions from different people in the audience about why they don't use F#. Here is my collection of answers. I am aggregating the questions first before trying to come up answers (if there are any). Please add any other criticisms/reasons to not use F#. Note that I am not passing judgments on the validity of the responses, just collecting them.Thanks
Microsoft Specific
Anything you do in F# and can I do in C#
C# has much more Microsoft support
It is easy to get C# jobs.There are no F# jobs
C# is the language of choice for Microsoft
I am 100% productive in C#.I don’t have the time to learn a new thing
Microsoft is going to kill F#
It is too hard to learn
Intellisense sucks.It makes no sense
MSDN can’t help
I tried a couple of F# books and they don’t help
Linq is good enough for me
Non-Microsoft
F# and/or functional programming is not all that is cracked up to be
It is a fringe language without traction.
Erlang, Scala, Haskill, Lisp are better functional langauges
Python is a better functional language
Functional people are too ivy-tower
I Have used f# since 2010. First time , I was thinking like C# group, after 2 years f# became my favorite language, clear logic, vey easy understand, smaller code. Now I would say not all my f# code , can translate to C# (it will be in 2 or more times more code then F# code). Just need to something build and go thru headache some days .... and brain will be rebuilt for f#)
On Jul 29, 2017, at 2:07 AM, Casper Bollen <hal...@gmail.com> wrote:
>
> I hate the tooling and project management.
I wish people wouldn’t blame F# for individual IDE/editor shortcomings.
If you don’t like how Xamarin, VSCode, or Atom manage F# projects, blame the editor or IDE, don’t blame F#.
> When developing javascript, Elm, purescript project management is so much easier
Of those three, I only use JavaScript, and my reaction to that is *what* JavaScript project management? Unlike with F#, there are no canonical tools for it, other than the browsers, and the browsers don’t have project management.
It sounds like you’re comparing My Favorite Text Editor to all of the F# tools. If so, be clear about it.
Personally, my “JavaScript project management” is a Makefile, and that only because I need something to drive the validation, merging, and minification process, which I hand-built back in the days before we had all-in-one tools that do that.
The current F# tool alternatives are a bit of a mess at the moment, as we’re at a point of transition, what with the Xamarin buyout, the .NET Core transition, etc. But, I still think the JavaScript world is in a far messier state:
https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
> mono, netcore, .net, all awful
Let’s take those in order:
1. Mono: “awful” why? Be specific. Personally, this is my first choice when it comes to cross-platform development. Just write a Makefile and you’re done. If you don’t like GNU make, pick one of the many build systems available that you like better. FAKE is the F# world’s first-class tool; I just haven’t bothered to learn it.
2. .NET Core: Yes, awful for F# today, but if there were any justice in the world, it would still be called a beta platform, even for C#. I think this is going to be yet another of those Microsoft products that doesn’t become widely usable in production environments until 3.0 ships. Meanwhile, expect to be a pioneer; you can tell them by all the arrows sticking out of their backs.
3. .NET: *What* project management in .NET? It’s just a library and runtime. Do you mean MSBuild? I can understand not liking MSBuild XML files, but they’re not meant to be hand-written. If you want a hand-written “project file”, I again recommend Makefiles. There’s a reason Makefiles are still in use ~40 years after the tool was first shipped.
> I tried Xamarin
I don’t think it’s a good idea to start new projects with Xamarin Studio today. My reading of the tea leaves is that it’s going to merge into Visual Studio on Windows.
The current “Visual Studio for Mac” is an updated version of the old Xamarin Studio, and that *is* a good choice going forward. It will generate and consume the same MSBuild files that Visual Studio for Windows does.
Maybe we’ll get a similar “Visual Studio for Linux” at some point. Until then, you can run msbuild.exe via Mono on Linux to build using the MSBuild files generated by Visual Studio on the other two platforms. Any decent Linux programmer’s text editor can be taught how to run an external build tool and interpret its error messages.
> Atom, VSCode
Some people like to layer these with Ionide + Fake + Paket and such. If that’s the toolchain you’re not happy with, I get that. It feels rather messy to me as well.
For some reason, Vim + gmake + Paket feels less messy, but maybe that’s just my generation showing.
> VS2015
VS2017’s been out for months now. :)
> is limited to the windows environment.
Not unless you consider “Visual Studio for Mac” to not be “Visual Studio.” It’s arguable, since it’s not the same code base, but at the project level, they’re compatible, so I don’t see why the differences would affect this thread.
> NetCore looked like the light on the horizon with a 'normal' json project file, and then they abandoned this in favor of really ugly and unreadable xml format ;-(
project.json was *too* simple. You couldn’t do very basic things with it easily, and some of the things it could do only worked if you structured your project *just so*. Way, way too much effin’ magic, IMHO. Good riddance.
This is one of the many reasons I wished Microsoft had called .NET Core 1.0 “.NET Core Developer Preview 1”. 1.1 is DP 2 in my view, and 2.0 will be DP 3.
About a year from now, I expect to have the feature-complete stable version that I’d be willing to call .NET Core 1.0, and it’ll probably actually be called .NET Core 3.0.
> Using the node environment this seems a no brainer, one json project file.
One key difference with Node is that you don’t have to compile anything. Sure, there are transpilers and minifiers and such, but you don’t *have* to do any of that stuff, so that what goes into “run project” amounts to “start node with main.js”.
Statically-compiled languages require that you think about things like dependencies, build order, linkage, executable deployment, etc. It’s always going to be more involved. If you want a fair comparison, compare F# to Haskell or OCaml, not to JavaScript.
Here’s a simple, readable F# Makefile, intended for use with GNU make on macOS and Linux, or under Cygwin on Windows: