nodejs.org icon indicating copy to clipboard operation
nodejs.org copied to clipboard

Please Refer: Presentation of Version Download Buttons

Open kemitchell opened this issue 8 years ago • 14 comments

Might someone please direct me to the right place to open an issue about the presentation of these buttons?

2017-06-15-185417_1600x900_scrot

It's been my experience that this choice remains confusing and difficult, especially for new Node.js programmers and new programmers full stop.

In particular, I'd like to lend my experience to discussing whether some of these approaches might be appropriate:

  1. Make the LTS button larger, pace it above the Current alternative, or in some other way make its visual weight reflect its recommended status.

  2. Use the word "beginners" or similar to make very clear to new people that LTS is what they want if they're going to install this way, even though they have no idea what LTS means, and it is not the time for them to learn quite yet.

  3. Offering more of an apples-to-apples comparison by way of the descriptive text.

Many thanks,

K

kemitchell avatar Jun 16 '17 02:06 kemitchell

https://github.com/nodejs/nodejs.org/pull/1233 @kemitchell If you have further suggestions, probably use #1233 as the baseline since it has been cooking for a while and we want to land it soon. Improvements could happen in iterations 🤞

refack avatar Jun 16 '17 03:06 refack

Thank you very much kemitchell for your post. They are plenty of thinks to study or to learn so when something is confused, that drastically reduce the attractivity. I'm just asking to me what are the best choice between the two versions. A comparative table as for example http://toitures-supremes.ca/en/roofing-material-comparison-chart/ with one column by type of download would be very usefull. An other way is probably to suggest one or more reference books to know more about the differences between products.

VincentBreton avatar Jul 07 '17 14:07 VincentBreton

@VincentBreton These are no different products, so there's no need for a "comparison table". LTS is the recommended version for production environments with a special need for long-term stability, whereas "Current" gives you the most recent features for development and testing.

fhemberger avatar Jul 08 '17 05:07 fhemberger

Thank you @fhemberger for your reply. I realized that the link at the bottom of the main page, just below the two buttons is usefull to know more about differences between LTS and current versions.

I'm glad to discover Node.js website and to share my firtst own experience on the user interface. In addition to the message from @kemitchell, what make me in trouble is the sentence "Or have a look at the LTS schedule."

  1. the link on "LTS schedule" should be for example in bold face with another color (green color link is so dark that's very difficult to see the difference between the other part of the sentence wrote in black. That's also the case for the links in the first paragraph.
  2. The sentence "Or have a look at the LTS schedule" should be changed to "Or have a look to this page to make the best choice" (or a more appropriate sentence because English is not my mother tongue...). In my opinion, the LTS term would not be included in the sentence or eventually replaced by "LTS (Long Term Support)".

For the new Node.js programmers, I hope my first impression or experience and the suggestions from @kemitchell will be useful for iterations as suggested by @refack

VincentBreton avatar Jul 08 '17 09:07 VincentBreton

LTS isn't about beginner friendliness. If anything I'd say non-LTS releases are more beginner friendly because you're less likely to need to transpile.

It's also a pretty established term. Ubuntu describes LTS like this: https://wiki.ubuntu.com/LTS (some of it like "hardware support" doesn't apply, but generally it's the same definition of LTS like being "More Tested", targeting the "Enterprise Focused", "moderately risk averse")

I personally have a different beef with the buttons: I go to the site to read the changelog and end up downloading the latest release (the design/wording doesn't match my brain).

@VincentBreton: There is such a table about ecmascript API support at http://node.green The major API differences between 6 and 8 is async functions.

friday avatar Jul 24 '17 16:07 friday

I've just encountered this issue with a developer as well, they didn't know how they'd installed node.js, but had version 13.x; Perhaps it can be Download LTS | Other versions as the buttons, where other versions takes you to the LTS schedule or the "downloads tab"

I think the downloads page does a good job and signalling which should be used:

Screenshot 2021-03-04 at 19 49 17

"Recommended for most users" vs "latest features", and the homepage should probably encourage using LTS.

The rationale is that majority of non-node.js users will see the homepage and not know the different between LTS and Current and Current sounds like the one you want, so non-node.js users who only need it because of a frontend tool or something similar end up on Current instead of LTS.

Sure, we want people to try out and use Current instead of LTS, but ideally these should be people with node.js experience and who know why they install a given version.

ThisIsMissEm avatar Mar 04 '21 18:03 ThisIsMissEm

@ThisIsMissEm Thanks for the screenshot and details and for reviving this issue because it's an important one.

The home page does now use the "Recommended for most users" vs. "Latest features" language, and I do think we can do a bit more to steer the average user to LTS.

image

Perhaps the home page can replicate the download page practice of using color to highlight/emphasize LTS.

image

@nodejs/website

Trott avatar Mar 04 '21 20:03 Trott

@friday raises a good point that the better syntax support in latest makes it more beginner friendly, as setting up tooling for this can be very complex. I think it would be better to have a "For Production" label for LTS, and "For Developers" label for Current. Personally I'd also like to emphasize Current instead of LTS for the same reason.

nickserv avatar Mar 05 '21 23:03 nickserv

@friday raises a good point that the better syntax support in latest makes it more beginner friendly, as setting up tooling for this can be very complex. I think it would be better to have a "For Production" label for LTS, and "For Developers" label for Current. Personally I'd also like to emphasize Current instead of LTS for the same reason.

But shouldn't want you use in development match your production environment? Also, what v8 language features exist in 15.x that don't exist in 14.x, apart from very new bleeding edge spec features?

ThisIsMissEm avatar Mar 06 '21 15:03 ThisIsMissEm

Like, "less likely need to transpile" really depends on the developer & project — for a very large number of people installing node.js, they only need it to run create-react-app or webpack or gulp or something. That is, they're not actually building new modules or servers or anything like that.

I think the current education curve for new comers, i.e., folks writing modules or servers, is that they download some template repository or read a medium article and go from there, in which case they've usually been given a build tool chain setup, usually webpack or typescript, and continue from there.

But for the person that isn't installing node.js because they want to learn and use node.js, steering them towards LTS makes most sense, imo. But sure, if someone wants to learn and experiment with node.js, maybe non-LTS is better for them. It all depends on which audience you want to target.

I think folks going to nodejs.org to get an installer are really just going there because some tool or blog post said "go install node.js" without explaining much about it, so these people don't really have an interest in developing for node.js, but rather, node.js is just a implementation detail of something else they are using.

ThisIsMissEm avatar Mar 06 '21 16:03 ThisIsMissEm

Aside: I opened this issue nearly three years ago, but don't currently have bandwidth to keep up on comments. So I've unsubscribed.

Please feel free to handle the issue however you like.

kemitchell avatar Mar 07 '21 23:03 kemitchell

My "less likely need to transpile" comment is 4 years old. Things have changed. I stand by it, but I also don't think it's as relevant today.

I also never meant this was an argument for defaulting to the current release. I'm mostly agnostic to which one you default to. I just don't think beginner friendliness is an argument that should be made for the LTS release, as suggested in earlier discussion. The argument for LTS should be stability imo.

friday avatar Mar 08 '21 08:03 friday

My "less likely need to transpile" comment is 4 years old. Things have changed. I stand by it, but I also don't think it's as relevant today.

I also never meant this was an argument for defaulting to the current release. I'm mostly agnostic to which one you default to. I just don't think beginner friendliness is an argument that should be made for the LTS release, as suggested in earlier discussion. The argument for LTS should be stability imo.

Right, but steering people towards stability is improving beginner friendliness.

ThisIsMissEm avatar Mar 08 '21 15:03 ThisIsMissEm

The non-LTS releases are not unstable. They're just not long term support. Non-LTS releases may actually be more stable because they have more active bug fixes, though hopefully anything also affecting LTS would be backported.

Still, I don't think we should assume beginners are using build tools. CRA is popular, but for someone making a backend for example manually setting up Babel is relatively very complex, and I think non-LTS has the better usability because of its feature support. If users want to use the same Node version in production they can continue using LTS, but many beginners are only developing locally.

nickserv avatar Mar 18 '21 00:03 nickserv

The layout of these buttons will become the layout of nodejs.dev, which addresses these issues. I'm closing this for now as there's no action to be done as this is fixed in the new codebase (being ported over to here soon).

Please feel free to reopen this if after the porting issues are still found.

ovflowd avatar Mar 12 '23 13:03 ovflowd