GoogleChromeLabs / tooling.report

tooling.report a quick way to determine the best build tool for your next web project, or if tooling migration is worth it, or how to adopt a tool's best practice into your existing configuration and code base.
https://tooling.report
Apache License 2.0
848 stars 49 forks source link

Why is stealjs not on the list? #355

Closed frank-dspeed closed 4 years ago

frank-dspeed commented 4 years ago

StealJS is a rock solid bundler from bitovi a top 10 web agency from US with fortune 500 customers like apple and yahoo they use https://stealjs.com it is also in use by the frameworks https://donejs.com and https://canjs.com

jakearchibald commented 4 years ago

We sort-of cover this in our FAQ https://bundlers.tooling.report/faqs/.

Our list isn't exhaustive, of either tools or tests. We did what we felt we could do a good job of given the resources available.

But even if we had the resources… I'm not really familiar with StealJS, but it doesn't seem particularly popular https://www.npmjs.com/package/steal - around 1000 downloads a week.

Compare with esbuild https://www.npmjs.com/package/esbuild that has 24k per week.

If I was going to put effort into adding a new tool to the site, I don't think StealJS would be next on the list.

surma commented 4 years ago

Moving this one to the board as well for tacking purposes

frank-dspeed commented 4 years ago

Hmmm ok, I understand we go for popular first and then choose what is the right tool that supports the most needed features? Ok Sounds fair for me. Maybe someone should put NPM on this list and NPM is like Gulp + Browserify a nice task runner npm has maybe the most downloads lets put that on the list.

jakearchibald commented 4 years ago

Maybe someone should put NPM on this list and NPM is like Gulp + Browserify a nice task runner npm has maybe the most downloads lets put that on the list.

I'm having trouble parsing this. NPM is a package manager, not a bundler. Browserify & Gulp are already on the site.

frank-dspeed commented 4 years ago

NPM scripts can be used as a bundler they can execute shell commands and also other javascript like gulp does so the conclusion was to show that if you want to go for popularity NPM is the Tool to list as it can, for example, build and minify typescript or like gulp it can do "ls | cat > output" to bundle files

NPM is in fact with its script section a task runner like gulp but it has far more downloads

https://www.npmjs.com/package/npm

frank-dspeed commented 4 years ago

I want to make the point that this project should list other tools that are able to do the job and not list tools based on popularity the criteria for a tool that gets listed should be the feature list and how easy they are to use the final result matters, not the downloads.

surma commented 4 years ago

npm could replace gulp in our test setup. But Browserify is the tool doing the bundling, which is why the section on tooling.report is called “Browserify”, not “Gulp”.

cat can indeed qualify as a bundler, but I’d argue that it’s not very popular (as in, very few projects actually resort to cat to bundler their files) and it would also fail the vast majority of the tests. Not sure it’s worth the effort.

The reason we consider popularity in our choice is that we have very few people on the team and want to maximize the number of people that find tooling.report useful. The vast majority of projects uses one of the 4 tools we have listed. I understand that this can be frustrating as a tooling author.

However, we welcome contributions. So if you want to provide us with the data for StealJS, please do so. But heads up: We have work to do on the site and the build scripts before we can list more than 4 tools, so we won’t be able to merge it immediately.

jakearchibald commented 4 years ago

@frank-dspeed

Oh you mean NPM scripts? Ok, it feels like you're making a deliberately obtuse, bad-faith comparison, but I'll answer as if you were being genuine.

If you look at any of our tests, you'll see we're already using NPM scripts to run the bundlers.

Also note that we focus on "browserify", the bundler, rather than the task runner, "Gulp", although most of our browserify tests include gulp, because that's how they're typically used in the wild.

Also also note that we've cast doubt on including snowpack or vite as they're built on top of existing bundlers.

jakearchibald commented 4 years ago

@surma

So if you want to provide us with the data for StealJS

I think we should have a discussion before giving the go-ahead to something like that. Remember that it'll like fall to us to maintain any documentation/tests for tools that are added to the site. We can't assume that authors are also committing to coming back and providing the implementation to any changes or extra tests that are needed.

frank-dspeed commented 4 years ago

@surma I have some free resources I would like to offer some refactoring to this whole project https://github.com/TechEmpower/FrameworkBenchmarks is a Project that I am familiar with it tests frameworks for different coding langs and has a solid structure to run tests we could apply some stuff. Like the Tool oriented structure at present, this is using a test based structure but it would be easier to have a test catalog and then a list of tools with a implementation of the catalog

frank-dspeed commented 4 years ago

@jakearchibald I see the issue that's why I suggest a bit of refactoring so that everyone can add tests as long as they pass if an added test suite does not work anymore and is not maintained it simply does not get listed.

for example, the docker library is a good example of a repo where external code gets referenced and maintained by external people. or https://github.com/TechEmpower/FrameworkBenchmarks here the code gets directly contributed but it has less maintenance overhead because of the integration framework

jakearchibald commented 4 years ago

@frank-dspeed an automated solution can't really cater for "partial" passes, which I think are important for the site. I don't we need a refactor at this stage, and I also don't think tooling.report's primary purpose is for people to promote their own tools.

frank-dspeed commented 4 years ago

@jakearchibald oh my intend is not the promotion of my tools I am not affiliated with any tools only rollup at present as a contributor.

I am simply a passionated ECMAScript Developer that wants to push forward and I see a big issue with this project when it only promotes the old tools that everyone knows. I only put StealJS on the list because it is Unique I do Research on this field for ages.

jakearchibald commented 4 years ago

I note your point that an entire site refactor would be necessary to represent StealJS, and will take that into consideration when looking at other tools to list on the site.

frank-dspeed commented 4 years ago

@jakearchibald

I think it would be cool when the directory structure would enable simple adding of other bundlers and some filtering I think that this project can add value to the scene when it would allow comparing tools so a tool author should be able to add his tools.

Then we all can get better tooling based on that results.

https://www.techempower.com/benchmarks/

this data added so much value to my tech stack choice and i would love if this project could add extra value for the tooling part,