As much as I want to put this on StackOverflow, I think this particular question fits better here.

I hope this doesn't sound too petty, but this is something that has always bothered me.

I've always wondered why the designers/developers of programming language websites don't just put version managers right next to the initial setup and installation instructions in their documentation instead of long after, and sometimes quite hidden in the side-notes.

Most people (I would assume at least) follow installation procedures line by line. That being the case, and the fact that you usually have to install the version managers first if you have a need for them; wouldn't it be more logical to bring the version managers to the user's awareness right around the same point in the documentation as the language's installation instructions?

In fact, Ruby is the only language I've ever installed that started the installation section with something like:

"some language" Installation Options:

  • Stand Alone Installation Instructions
  • Virtual Machine Installation
  • Installation With A Version Manager

So, as stupid as this might sound, I've begun to wonder if there isn't some reason for this. Obviously, I'm not trying to excuse anybody for not thinking of version management up front, however considering that I almost always forget about version management when coming into a new language, I'd assume that it's at least sort of common to make that mistake.

So, is this one of those globally common bad design things? Is this even bad design or am I just being whiny? Or is there legitimate reasoning behind this, and if so - what? It seems far too common a practice for it to just be by accident. I mean, who writes up installation procedures, then adds version management instructions at the tail end and not think, "huh, maybe I should put this up at the top." ?

  • Sorry but what exactly do you mean with "version manager"? Package managers like APT/npm/NuGet/Chocolatey? Or tools that manage versions of specific software, like pyenv?
    – kapex
    Nov 30, 2019 at 9:11
  • @kapex, yes - exactly. Tools like perlbrew, rvm, rbenv, pyenv, nvm, n, etc. Dec 1, 2019 at 8:40

2 Answers 2


I resigned from Navy after I've worked 5 years on warships and then 1.5 year on one of the headquarter's office. I didn't have to use any tech-related skills till I start Computational Art & Design Master even I studied Computer Engineering in my license degree.

After my resignment, I totally switched off to a different career and first started to learn and then work as a UX Developer and any kind of job within this segmentation.

As a beginner at my late twenties and early thirties, reading all these stuff you mentioned (for my case; npm, node.js, GitHub, stackExchanges (:, php, composer, and as many others) was "always" lacking of the cases I faced as a truly newbie.

The assumption you made about all of these platforms that they missing all the same thing is (I assume but almost sure) because they become get used to the circumstances they belong to or they don't see these stuff as even a thing to be explained. And you're unfortunately true about this guess, they all missing that design. Not let's say for a newbie, but totally not caring anyone from another tech-related background.

Even I looked for a single source to tell me everything step-by-step to become a frontend developer long time, then I found out it's how the things work and also put apart in development and design area.

A slightly bit same situation happening again intersection of the design and development like, coders doesn't or can't design and designers can't or doesn't design mostly. It's not a rule but unlikely to happen reversely somehow.


It's a gap which long-time-learners lack of visual impairments about first-time-learners and even it's easy to get rid of, most of the platforms can't handle to get over it.

For instance, LinkedIn Learning and the videos on the platform covers it very well (maybe mostly the ones I watched), and tells every step in the selected area, not for a specific level, but for every grades probable in the case.

  • 1
    So, you're saying it's just a lack of common sense on their part. They're not looking at it as a user would. I think you're right man. Nov 30, 2019 at 0:36
  • 1
    It's also common for end2end software products. If you want to serve a software product, the platform it'd run should also think of consideration, right? It's more about CX (Customer Experience) but anyway in any meaning, it includes satisfying user's effort or helping while they're trying to find the way out worth mentioning. Nov 30, 2019 at 6:18

There are two sides to every 'argument'!

1 yes, poor communication skills are in-evidence. However, many coders struggle when it comes to the requirements various eco-systems impose when it comes to 'packaging' their work. Similarly, there may be a number of choices for packaging and repos, and if one is familiar with a single approach it can be difficult to even remember that others may prefer alternatives. However, programmers and arrogance (esp. lack of empathy/consideration for others) are often too close for comfort...

2 we live in an age of 'I want it now'. Whereas previously, one was taught and encouraged to plan and prepare before 'doing'. Such a habit enables one to plot alternate courses through a task, eg installation process, and to choose 'the best', before actually 'diving in'.

Humorous encouragement to read-first: http://sanchezclass.com/docs/Directions%20Test.pdf

Regards =dn

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.