Who manages the package managers?


#1

(NOTE: This was moved from another topic)

Oh ok sorry, it was worded as if I was on Stack Overflow(I have had some bad experiences on SO at times so its still frustrates me even after many years later). :smile: I appologize for responding like that, but if I saw the reason prior I would of gave a better reply.

(I hope I don’t bore you with my long explanation, but I want to say this so that way I can get my point about my ideas about your project)

But as far as your project, after reviewing your code and readME; I love what you have done so far. Actually I have been wanting to start working in open source to help me learn.

Not getting off topic here(I am trying to make a point with this by telling you my experiences), I am currently taking a summer coarse called "Internet Computing at my college taught by a wonderful professor. Though after 5 days of going to class and staying up all night to meet the deadline for a code review I thought of something.

After watching my fellow classmates strugle with build tools like grunt and nodeJS/npm, I came to this realization that their is a problem with this. The high entropy of possibilities/packages/plugins/generators can make a beginners head explode if I utter the word “packages” and "dependencies.

I try to help my classmates as much as I can despite my busy schedule. Basically everyone emails me and the professor every day but the most I have seen are about build tools and packages. They aren’t as confused with the code, but they are confused about why APM or NPM exists.

[Ok here’s my idea below just incase of cltl;dr]

So I am kinda of though of what if we could fix that complexity. I dont want it to become just another package manager. I wanted something to easily manage those package managers. So say we have a package.json just chilling in the global directory. Well why is there just one package.json folder??? Why cant there be many of them which are labeled for the builds and dependencies we would like in certain projects. Wouldnt that be faster than just:

npm install this that thenThis moreCrap okTooMuchCrap

Which has got me thinking of what if I could just take your idea of syncing configurations with my own. Could I be able to make something to sync a set of configs in which are used for different purposes. By basically making managing the manager itself. They are called packages for Pete Sake why can’t we pack the packages? I feel like maybe my idea is a good place to start because yes you can sync your configs, but why not as well sync many different configs. It may be a feature you can make optional.

Now I have to admit even though I have done alot in Web Development but I really want to learn through contributing to the community. With the goal set to make it more easier/better for inexperienced people to learn. That is my goal is to help developers become lazier by saving a few min time.

I am not experienced in making build tools so if you’d like to discuss this somewhere else since we are getting off topic: here is my email: www.matthew-dickens.com

I apologize for any bad grammar since I am both coding and typing this at the same time.

Again thank you! :smiley:


Unable to install atom packages or themes. I get this error where it cant even view my installed packages
#2

Moved this to a new topic since it was definitely different from the old topic :grinning:


#3

To me that idea sounds close to scaffolding. See Yeoman.
I.e. packaging the packages, to get one consistent dev enviornment with all (or at least most) of the dependencies installed in one convenient command.

For example, look at this “starter kit” someone made for a React project, with all those packages included:

Yeoman also usually gives you the ability to configure questions about which pieces to include and which not, but is that roughly what you’re looking for?


#4

(Note: My grammar and spelling sucks on this so I will edit the post when I get the chance)

You are correct that yeoman provides scaffolding for projects. I have used Yeoman before and it’s great! Though I would like to give some criticism on all these Package Managers and Build Tools.

One thing is that its sometimes can get to the the point where you have all these packages, generators, and other stuff installed to the point where you cant remember what you have. Sure we have NPM as the universal package manager but I don’t know of any NPM package/feature that supports custom configs. I can agree that Yeoman can solve the problem of “Who manages the package managers?”(Love your title leedohm) but from a beginners perspective to make a generator or publish a package takes a considerable amount of work and knowledge of dependencies. Why cant we automate that where I can say “I love this setup I have put together” and just simply type:

binExecutable (yourCustomConfigName) --save

And then it will just auto manage the dependencies, generate tests automatically, and you don’t have to do all of these listed:

As programmers we like to try to be lazy to the point we become more productive with less effort. Even though yeoman is wonderful I still don’t know of a implementation where I can just say “Generate this package, get the dependencies all in order, install a couple of plugins for gunt and auto write my grunt-file configs, and if I get errors with a certain package, (and and so on)”

Sure these build tools cut the needed effort, but I still see that it takes a lot to make your perfect environment. Why cant we just have a universal system which is more a universal task runner. So I could say:

taskRunner doCustomTaskWithBuildTools

But maybe my point is we need something to just make it more of a connected, custom, and modular platform which can reduce the craziness of creating your own generators, preventing errors with dependencies(aka the package will be tested before installation), and maybe a easier/robust user experience. I applaud the community for making the efforts to improve the development experience, but the problem is that as far as I know a universal system or something that connects the dots in a more concise way with user needs of customization in focus. Instead we rely on others to make sure nothing breaks in our project, constantly run into errors like these as I got this mourning:

Why cant I just be informed that our tests indicate that its a bad idea to install or run this package. I am frustrated with all these build tools: Its not easy to configure at times, I get error after error because of the inability to implement testing prior to the installation process, and a-lot of overhead at times.

I say we need something to Manage the Managers. So that way everything is in check when doing all this madness.


#5

Sooo… Grunt and Gulp is what you’re looking for?

I know exactly what you mean because I’m not even a developer myself and the sheer variety of tools and frameworks and packages for everything everywhere is hugely overwhelming for anyone who tries to dip their toes into this crazy world.

But the thing is that there can never be this one manager of managers, because there is always something some people don’t like or which is missing and so they start their own manager of managers even though all it does differently is use a different syntax or prettier icons or coffee instead of tea while coding it for the fun of it…

Things like Grunt and Yeoman and all the various package managers for dependencies are all born out of the very sentiment you’re describing. And there are always others who want the same thing but build it differently.

And then you have frameworks like MEAN.js or Meteor.js that try to be very opinionated (what a fucking buzzword), i.e. they make it easy for you by not asking you what you want but give you everything they think you need.

And here’s the thing:
It’s all awesome!
It’s all bloody insane! But it’s also awesome, because it’s probably the reason for the surge in developers over the last half decade or so (all of whom worship the Mac for some hipster-fueled reason I still don’t understand) and it enriches a huge ecosphere of technological discovery and creativity.

I’m having a hard time, too, but I enjoy it immensely.


#6

Very minor off-topic comment. This seems like a simple accurate use of the word. The choices come from someone’s opinions.


#7

Oh of course it’s accurate. It makes total sense.
But it’s also a fucking buzzword :wink: