fsharp / fsharp.org

The F# Software Foundation website
https://fsharp.org
290 stars 275 forks source link

Windows options are misordered: please consider user experience #857

Open charlesroddie opened 3 years ago

charlesroddie commented 3 years ago

Beginners may come to https://fsharp.org/use/windows/ to work out what to use. It is extremely important that the default is good. This is critical to getting new F# users to choose an option that gives them a good experience.

The current order seems to have been chosen randomly, or for political reasons, with no understanding of user experience:

1: Option 1: Install the CLI tools and use your own editor
2: Option 2: Install Visual Studio Code and Ionide
3: Option 3: Install Visual Studio
4: Rider
5: Build from source

The problem was created by https://github.com/fsharp/fsfoundation/pull/799

How did a PR get approved which puts "use your own editor" as the first option? There needs to be some understanding of the user experience of typical developers and especially beginners.

"Use your own editor" should be moved below Rider.

VS and vscode should be swapped since vscode is not feature complete (limited project system support) and gives uses problems that they often report on slack and reddit. This user study https://github.com/dotnet/fsharp/issues/6785 noted the problems with vscode among new users, and yet shortly after this PR was merged which moves vscode above VS?

The only consideration here should be whether new users are going to get a good experience using F#. In particular, promoting community-maintained projects or promoting the idea that true developers should hack things together themselves should not be considerations.

dsyme commented 3 years ago

I get what you're saying here.

As background, there was an explicit decision to prioritise consistency across Windows, Linux and Mac - i.e. to give the consistent, lightweight, editor-neutral command-line installation first and then give detail on editors - again ordered by cross-platform consistency. Whether it's right or wrong depends on whether you're assuming the user is willing to change editors or not, or whether they care about cross-platform consistency or not. I guess those assumptions have basically flipped in recent years and are now "assume the user is unwilling to change editors and cares about prioritise cross-platform consistency".

Probably the best solution is to display options side-by-side.

cartermp commented 3 years ago

I think they should stay the same. The study you're referring to also had some aspects to it that are worth considering:

  1. Everyone who wasn't an existing .NET developer did not look to use VS, even when using VS was the top google search result for them. Existing .NET developers immediately chose VS regardless of what they found on the internet. This stratification is actually quite a big deal that we've observed on the C# side, too. People who have little to no exposure to .NET overwhelmingly start with VSCode.
  2. There are negatives to starting out with VS that aren't captured in the issue you reference. Other user studies, unrelated to F#, have shown that VS is seen as highly confusing and overwhelming for newcomers. Needing to install GB of tools before writing your first "hello world!", a confusing installer with terminology they don't understand, a UI that's seen as antiquated and with too many buttons/options/etc.

And more importantly, everything people struggled with that was related to tooling (keep in mind that it was not just tooling people struggled with) is resolved with Ionide 5. Project support, scaffolding, and installation requirements are in a very good place. At this point, the people who struggle the most with Ionide 5 are existing users who don't have .NET 5 installed, which is mostly just a point-in-time issue as it gets adopted. All "get started with..." documentation that floats to the top of google search results has newcomers installing .NET 5.

limited project system support

This is really only a concern when you're mixing F# and C# at this point, which is very much not a beginner scenario. And existing .NET developers are already largely using VS, which has what they need.

cartermp commented 3 years ago

What I think this really hits at is the "do you already use .NET?" question. Since F# is installed by default, the large majority of .NET developers already have it available to them in their familiar File > New Project experience. They are also more likely to incorporate it into an existing C# codebase. So the kinds of things they need to know to "get started" and feel productive is fundamentally different than people starting out with F# and only F#. It's a challenging position to be in.