Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to drive F# Adoption - Part 3 #809

Closed
KevinRansom opened this issue Dec 17, 2015 · 21 comments
Closed

How to drive F# Adoption - Part 3 #809

KevinRansom opened this issue Dec 17, 2015 · 21 comments

Comments

@KevinRansom
Copy link
Member

Okay thanks for sticking with this,

Before we do the next bit: __ the internet is a confirmation bias machine ... I may suffer from it, you may suffer from it.__

Now the tricky bit:
It appears to me that as enthusiasts the top 4 suggestions for improving F# adoption you would propose are:

  1. Microsoft employees needs to talk about the future of F# more, and be more positive about it
  • This had pretty much universal agreement.
  1. Improve F# out of the box experience
  • This was a majority opinion with different flavors of "improve"
  • Address experience blockers and bugs quickly
  • Make available the power tools type functionality -- better yet the power tools by default
  • Improve documentation
  1. Coreclr
  • Common response
  • For alignment with .Net technical direction
  1. Web Tools
    • lot's of work done by developers in VS is currently web programming so make that easier
    • Common response
    • Good ASP experience
    • Good DNX experience because ... its the future!
    • Interestingly Suave seemed to not resonate with you that much ... I wonder why? cos it's great (Please answer it in Part 2 because it's irrelevant to this discussion)

Is this the right set? very brief comments please.

@lefthandedgoat
Copy link

Looks good.

I use suave and really enjoy it, especially vs ASP.net MVC with F#.

@CumpsD
Copy link

CumpsD commented Dec 17, 2015

👍

@lambdakris
Copy link

I think a richer SQL and NoSQL data access/manipulation story still needs to be a part of this. Having a DSL/language integrated means of generating optimized SQL code and idiomatic F# drivers/adapters for top NoSQL databases is as necessary as the Web Tools if we want to be able to say that you can do most common things in F# at least as easily as you can in C# or Java or Scala.

@KevinRansom
Copy link
Member Author

@lambdakris The story for data access is type providers .. personally I think we should make them much easier to find, and make them look more integrated into the tooling experience. Currently they are on nugget but you sort of need to know what you are looking for. A type provider wizard, that answered questions and selected the type provider and generated the source to get started might be interesting.

Something like that anyway ...

@rojepp
Copy link
Contributor

rojepp commented Dec 17, 2015

Clippy

@KevinRansom
Copy link
Member Author

@rojepp Clippy is exactly the right model yes :-)
I always liked the Clippy suicide note story.

@lambdakris
Copy link

@KevinRansom I've become quite chummy with the SqlClient Provider, having used it in two projects at work, and I have also had time to evaluate the SQLProvider at various times over the past 5 months. The SqlClient is an improvement over ADO.NET, certainly sufficient, and in my estimation currently the best sql data access tool for F#, but personally I've found that most micro-orms offer more productivity from a query building and conventional reads and writes perspective (if only they knew what to do with Option types...). As for SQLProvider, I fear that it's use of SqlMetal.exe means that the generated SQL is less optimized than what is generated by EF 4.1+. If you are interested, check out http://getquill.io/ as an example of a cool approach in Scala land. I think Type Providers are also cool, but the problem here really isn't the discovery of types, but rather the combinators that can make that type of SQL generation and verification possible (which LINQ and anything LINQ based/derived cannot really accommodate).

@rojepp
Copy link
Contributor

rojepp commented Dec 18, 2015

Clippy aside :)
I agree, finding the TP to use is not a problem. By then you are in F# land.

@KevinRansom
Copy link
Member Author

@rojepp if you are a new user to F# and you have just created a console app. Is it possible that you might want some help trying to access data?

@jackfoxy
Copy link

1, 2, 3, 4, perfect.

Related to the OOTB the community needs to be able to add F# code examples to all the MSDN documentation across the board through pull requests. Especially for Core CLR going forward. I'm sure this will get a big participation and all of those empty F# code boxes will quickly fill.

Suave resonates with me. There is a good chance I will start a Suave/Websharper project real soon.

@enricosada
Copy link
Contributor

@jackfoxy documentation and code example you want is https://github.com/Microsoft/visualfsharpdocs i think, send pr!

@panesofglass
Copy link
Contributor

Looks mostly right to me. I think Web Tools should be replaced with .NET Native / LLVM support. I don't care any longer about ASP.NET support. I think we have better options now; just need better docs. However, native / IoT support is crucial for performance and breaking out into other domains (F# everywhere).

@panesofglass
Copy link
Contributor

@jackfoxy @enricosada I don't know if MSDN is the right focal point. I liked the idea of http://getfsharp.net/ and providing a hub of great content and docs. In particular, see https://doc.rust-lang.org/stable/book/, http://elixir-lang.org/docs/stable/elixir/Kernel.html, etc. These look like ReadTheDocs or GitBook output. If we have something like this available, we will be in a far better place. F# samples in MSDN are important, but less so compared to this more basic need.

cc: @swlaschin - I would love to help with this effort if/when you move forward.

@enricosada
Copy link
Contributor

@panesofglass i was speaking about msdn docs because lot of devs find info there.
a general f# docs site is a nice idea

something like https://get.asp.net/ ( we have fsharp.org => get.fsharp.org , or get.fsharp.net better )
for docs yes, ReadTheDocs is nice, again https://docs.asp.net/en/latest/

about .NET core, http://dotnet.github.io/ and http://dotnet.github.io/docs/ ( we need to add F# info there )
I sent a pr to dotnet compile a f# project.

btw dotnet cli work really well, OOTB experience too

  1. http://dotnet.github.io/getting-started/
  2. download msi/rpm
  3. dotnet new ( scaffold a new project )
  4. dotnet compile ( restore nuget, build )
  5. dotnet run or an .exe ready to use

@jackfoxy
Copy link

@enricosada that's just the F# docs, which by and large are OK. (Although it still appears there is no mechanism for correcting/submitting code examples.) I want to see F# code examples throughout the MSDN .NET and Azure docs. That will make F# 1st class.

@panesofglass Agreed. I would be down with inserting .NET Native / LLVM support into the 4th slot.

@swlaschin
Copy link

@panesofglass re: helping. Of course! :)

@pezipink
Copy link
Contributor

@lambdakris the SQLProvider does NOT use sqlmetal, that is the whole point of it and why I wrote it in the first place. It is a proper erasing type provider, with its own query compiler. This is also what allows us to target all the other database types other than sql server (postgres, oracle, mysql, sqlite, etc)

However, we don't support stuff like aggregation and nested queries, but that's just because it's a big bit of work and no one has done it yet.

Edit: I do agree LINQ sucks a bit though, I wish I had taken the time to write my own builder rather than using query{ ... } but it is what it is for now

@lambdakris
Copy link

@pezipink Big apologies for spreading misinformation. I guess I should have watched https://vimeo.com/96658740. In fact, even more props to you since that means you did even more work to make SQLProvider. Hope you didn't feel I was bashing. I do love the concept.

@pezipink
Copy link
Contributor

@lambdakris no problem, this video is the better one if you are going to watch it https://www.youtube.com/watch?v=PrmF6a0iTXk

Cheers

Ross

@Kurren-N
Copy link

I agree with all the points of the original post

@dsyme
Copy link
Contributor

dsyme commented Jul 12, 2016

Closing as we have a Part 4 to this discussion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests