babel / minify

:scissors: An ES6+ aware minifier based on the Babel toolchain (beta)
https://babeljs.io/repl
MIT License
4.39k stars 225 forks source link

Name change to babel-minify #124

Closed hzoo closed 7 years ago

hzoo commented 8 years ago

Ok it's changed (pkgs should be updated as of 0.2.0)

Change it back to babel-minify? Ref https://github.com/babel/babili/issues/8

Given that it's just a preset + plugins it makes sense to just be babel-minify so everyone understands what it is and we don't have issues trying to explain it or it's pronunciation.

And after talking with people about it (what's that?), I refer to it as the babel minifier anyway. Haven't met many people that liked the name 😛 .

cli: babili preset: babel-preset-babili

cli: babel-minify preset: babel-preset-minify


Message from @thejameskyle:

Since I can already tell this thread will blow up:

A couple notes before you comment in this thread

Please ensure that any comment you are making on this thread is actively contributing to the discussion of a name change. Please do not go on tangents, please be respectful of others (follow the Babel CoC), and don't just keep repeating something that has been said. Be aware of strawman arguments and other logical fallacies and don't do them. Dont assert your own opinions/experiences as the opinions and experiences of the entire community. Yada yada yada be constructive, be aware, don't be mean.

hzoo commented 8 years ago

babel-minify

hzoo commented 8 years ago

babili

kangax commented 8 years ago

I still like Babili. We can just clarify pronunciation — Babíli vs. Bábel.

hzoo commented 8 years ago

don't care option - EDIT: maybe should be the bab option

amasad commented 8 years ago

Meh... No one what the hell a googol is at first. Stick to your guns, it'll work out

amasad commented 8 years ago

Lol, not implying that this will be worth billions of dollars though. Just an example

hzoo commented 8 years ago

Haha we can hope

jamiebuilds commented 8 years ago

I would really prefer renaming it to babel-minify.

We should just have a name that tells people what it is. I don't see a need to hide the meaning behind a name.

kangax commented 8 years ago

@thejameskyle I'm not sure why babili is disliked so much. I would really prefer to keep it :) Unique-sounding codenames that don't mean much are pretty common and are usually not a problem — underscore, lodash, angular, ember, cheerio, mocha, gulp, etc.

jdalton commented 8 years ago

@kangax

underscore, lodash, angular, ember, cheerio, mocha, gulp, etc.

underscore, angular, ember, mocha, gulp are common words (not really search friendly either).

Lodash is uniq though. It's a play on "low dash", which is an alternative to underscore. That said, being too clever with naming caused problems. It used to be Lo-Dash which folks typed as LoDash, lo-dash, lo_dash, or Lodash. I eventually removed the - to keep it simple.

Something like babel-minify gives a pretty clear indication of what it is and avoids communication issues.

jamiebuilds commented 8 years ago

Unique-sounding codenames that don't mean much are pretty common and are usually not a problem — underscore, lodash, angular, ember, cheerio, mocha, gulp, etc.

Yeah but almost all of those are all umbrella projects. You then have underscore.string, angular-ui, ember-data, gulp-babel.

Having unique names for each individual thing within the projects just makes it confusing.

kangax commented 8 years ago

If everyone finds it confusing then sure, let's change it. I like Babili but I care more about what majority wants :)

Sent from my iPhone

On 29 Aug 2016, at 22:16, James Kyle notifications@github.com wrote:

Unique-sounding codenames that don't mean much are pretty common and are usually not a problem — underscore, lodash, angular, ember, cheerio, mocha, gulp, etc.

Yeah but almost all of those are all umbrella projects. You then have underscore.string, angular-ui, ember-data, gulp-babel.

Having unique names for each individual thing within the projects just makes it confusing.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

amasad commented 8 years ago

Let's also rename Babel to AST-Transformer

brentmclark commented 8 years ago

I vote for Babili. It's not immediately apparent what it is, sure, but at least you know you've found the droids you were looking for.

alavkx commented 8 years ago

Babili is a cooler name for sure, but with the sheer amount of tools developers have to remember to include in their build it only makes sense to name it in a way that describes the use.

jamiebuilds commented 8 years ago

Since I can already tell this thread will blow up:

!!!!!!!!!!Note!!!!!!!!!!

Please ensure that any comment you are making on this thread is actively contributing to the discussion of a name change. Please do not go on tangents, please be respectful of others (follow the Babel CoC), and don't just keep repeating something that has been said. Be aware of strawman arguments and other logical fallacies and don't do them. Dont assert your own opinions/experiences as the opinions and experiences of the entire community. Yada yada yada be constructive, be aware, don't be mean.

pertrai1 commented 8 years ago

babelssor

kkemple commented 8 years ago

i prefer the declarative nature of babel-minify devs looking in the package json will know immediately what the package does and won't then have to run npm repo babili 😜

kangax commented 8 years ago

@jdalton Bambi, Pizza rolls, and Italy — are you kidding me?! Is there anything cuter, funner and yummier than this ridiculous, weirdly exciting combo? It's unpossible to not go with that... 🍕 🐴 🇮🇹

hzoo commented 8 years ago

I have bab too: https://www.npmjs.com/package/bab

pertrai1 commented 8 years ago

babelure

timdorr commented 8 years ago

If it's supposed to represent something being minified, shouldn't it be bbl?

hzoo commented 8 years ago

Yeah bbl is great, just don't have the npm name although we could always ask. cc @brianc

but babel-minify is the most clear still 😄

kangax commented 8 years ago

We thought about bbl but it's a common abbreviation so would be even more difficult to find/differentiate.

gillesdemey commented 8 years ago

As a concerned developer I'd like to mention that it's often refreshing to see a package in my dependencies file that describes what it does instead of having to recall what the hell it was for.

There are so many packages with a "tongue-in-cheek" name that I don't recall what half of them do and I often find myself referring to packages and tools by their description during conversations because I simply can't be bothered to memorize all of them 😞

brianc commented 8 years ago

Hey lemme know if you decide to go w/ bbl & it's yours! Much, much, much ❤️ for babel from me! Thanks a million to all the contributors!

timdorr commented 8 years ago

We thought about bbl but it's a common abbreviation so would be even more difficult to find/differentiate.

Big Beautiful Language! 😄

But yeah, that makes total sense. Just suggesting it so there's an option. I think I'd prefer babel-minify personally.

MatthiasWinkelmann commented 8 years ago

I'd like to quickly make the vain attempt to argue for poetry in world of prose: An evocative name can, sometimes, bring a moment of levity, a hint of a smile in an otherwise dull day. It can help the project if it adds emotion to function, if only by being more easy to remember (which also helps users). My favorite example is "Plan B" for the morning-after pill. This naming agency (no connection) has a bunch of articles on it.

I'm on the fence if it makes sense here, and I'd say only "bbl" actually fits the idea. It's mostly a matter of size: a programming language can afford to have a non-descriptive name, leftpad should rebrand to 000001.js, but a project that isn't at the center of attention may just make life difficult for everyone by trying to be clever. Does a minifier have the mindshare it takes? I'd say "yes, but it's close".

Because I've frequently run into the what-does-this-package-do-again-problem cited above, I'd also like to share the following snippet. Maybe it should be used more often in install instructions to make it common practice?

"bbl": "minifier using the babel toolchain",
"bbl": "^1.0.0"
ghost commented 8 years ago

Whilst I myself upvoted 'babel-minify' earlier on in this thread, Matthias has some really powerful arguments here that I emphasise with. 000001.js is a no brainer in hindsight. (Brilliant Matthias. Is that your own original idea?) Likewise in hindsight, 'bbl' needs a second look.

Also, being a long time C/C++ veteran, accustomed to typing 'cc', I think I could easily get rather comfortable and cosy typing 'bb' when using a tool such as Babel which is rapidly becoming ubiquitous in the ECMAScript universe. Maybe in not so long time, Babel + the (its) minifier will be thought of one and the same, like a holy duo. Just an idea, perhaps the Bavel CLI itself could be envoked with just 'bb' and something like a '-m' option to invoke the minifier? Notice that another variant, 'bl', which is yet a further contraction of 'babel', is a play on 'cl' which some C/C++ compiler CLI's use.

One the other hand, one can envisage having different types of minifiers that play in concert with the Babel transpiler. 'Babili' might be the reference implementation, say, called babel-minify-babili. This could spawn a healthy cottage industry in Babel minifiers, say babel-minify-crockford, babel-minify-yui, etc. Just kidding with these names but it does give rise to some interesting possibilities for a 'bbl' command line with a '-m ' option.

Hope my comments are a positive contribution to the discussion, the underlying point being that one does not have to choose calling between calling it 'babel-minify' or 'babili' or other. We can have our cake and eat it too using 'babel-minify-' as stem words.

timoxley commented 8 years ago

The fanciness of the name should roughly reflect the level of attention required of the developer. Since a precise, self-explanatory name is available and this is just a minifier, having a fancy name seems like unnecessary obfuscation, regardless how clever it is.

edit: thinking more on using it standalone, I can see merit in this perhaps having its own name.

chicoxyzzy commented 8 years ago

Can the CLI be named Babili and use babel-minify/babel-preset-minification under the hood?

hzoo commented 8 years ago

The name change would really only be for the preset/cli name. All the plugins are independent. We can always alias as well

kangax commented 8 years ago

What I like about "Babili" is that it gives project identity.

We can change the name to something more common and easier to pronounce but I really wish it wouldn't just be "babel-minify". That sounds boring, generic, repetitive/longer to pronounce (if you're talking to someone or giving a talk). It makes more sense for me to hear/say "Meet Babili, a Babel-based minifier" vs. "Meet babel-minify, a babel-based minifier" (what a nice tongue twister).

You can argue that "babel-minify" speaks for itself and then you don't really need to even explain it. But then it's still awkward — if "babel-minify" is a minifier then why isn't it "babel-minifier" or just "Babel Minifier". Is it something that minifies babel (as "babel-minify" would suggest?).

Codenames are good because they're memorable, recognizable, easier to reference. Even the ones that make no sense could work — anyone wondered what in the world "yeoman" is when it came out? We can get the best of both worlds by coming up with something relevant (aka uglify), yet unique. But please let's not do "babel-minify".

/end of bikeshed

nikolay commented 8 years ago

@kangax You like the name - fine! Use it for some other project. But you don't need multiple brands for some little utility within Babel. From a marketing point of view, having more brands is worse than less ones. Focus on Babel and build on top of it - babel-min, if you wish, but don't ruin the main brand!

alexeyraspopov commented 8 years ago

As a +1 for project identity argument, here is another one.

Not everyone uses Babel for their projects. In the future™ we all hope to not use Babel because we'll be able to write just modern JavaScript that does not require compilation step. However, we still need minifiers for a production environment. That's where Babili (as separate, recognizable project) steps in. While Uglify's maintainers are working on ES6+ support, Babili can do it by default.

kangax commented 8 years ago

@nikolay Why do you think it's a "little utility within Babel"? The minifier is a standalone tool on top Babel/Babylon. It's no smaller or different than, say, ESLint which is based on Esprima. I don't see how Babel is affected (ruined) by this at all.

TomYeoman commented 8 years ago

My vote is for babel-minify, I've been waiting for it for ages and yet when I read your post on HN about it I had no clue it was just a minifier until I stumbled upon a link to this issue reading through the comments!

I believe there are enough things to worry about when creating a project as a newbie, struggling to find a minifier for babel because it's called a name you would never guess just adds to that.

Perhaps keep this name as a standalone project, but on babel website name it babel-minify

Good job btw guys :)

nikolay commented 8 years ago

@alexeyraspopov So, your logic is: Keep a non-Babel-related name so people who don't like Babel could be stupid enough to use this instead of Uglify.

Don't get too emotionally attached to things that don't really matter!

In fact, if this is detached from the Babel's brand, being loyal to Babel will keep us using this as part of the ecosystem. Don't try to steal Uglify's "customers" - try to keep us instead.

You created a poll of sorts and a lot of people voted. But, yes, you have all the rights to ignore the feedback.

MatthiasWinkelmann commented 8 years ago

A project's developer spends orders of magnitude more time seeing the name, creating folders with that name, seeing their name in the same sentence as the project's name or giving presentations on .

The user's interests are best served by keeping those guys/gals happy, especially regarding such subjective issues.

Personally, I'd argue that "naming your baby" is a sort of natural right of a creator, but I see how that's somewhat subjective.

So to those putting in the hard work: do what you're comfortable with; this project will be measured with yardsticks other than its name. And don't feel bound by on online poll – creative endeavors aren;t usually a good fit for "wisdom of the crowds".

mstade commented 8 years ago

This mostly seems like bike shedding to me (so naturally I'll jump in) and probably doesn't matter much in the end. Babili is a fine name, so would probably most any other name be. Arguments that babel-minify would more accurately describe what the preset does is not entirely on point, since minifying is just the JS community's own term for optimizing. Following that logic, you may as well call it babel-optimize or something to that effect. My point being: for all consumer's sake it's probably less important what the thing is called, and more important that it does what it says on the tin.

jdalton commented 8 years ago

I just did a search for babel-minify because I had forgotten this name.

mikesherov commented 8 years ago

I vote babel-minify, especially for the preset name. Here's my .babelrc... one of these things is not like the other:

presets: [
  "es2015",
  "stage-3",
  "babili"
]

If we want to resolve this incongruence, we can either: rename this to "minify", so the list of presets clearly express what they do. Or, rename all the other presets to "branded" terms like "TwonOneFive" and "StableTown" for es2015 and stage-3 respectively.

fnlctrl commented 8 years ago

+1 for bab over babili/bbl, because it matches its purpose (minifing things, including names), it hints people that it's related babel, it's easy to read/pronounce/remember, and it's cool. babili is doing the opposite and complicating things. bbl is hard to read because of dropped vowels, and it hardly makes people think of babel at first glance.

Though babel-minify should be the necessary one.

superherointj commented 8 years ago

For our own sanity, rename this to "minify"!

scottohara commented 8 years ago

I only recently discovered babili after removing my babel build step (now that all desktop/mobile browsers have near complete ES2015 support, and I'm not using any ES2016+ yet), only to discover that uglify doesn't support arrow functions (!?).

The very next day I wanted to read more about it, but promptly forgot if it was spelled babili, babeli, babilli, babelli, etc.

I took a (wrong) guess at babeli (on the assumption that it was babel + i) and found nothing on the first page of Google results.

I ended up googling "babel minifier" to find it.

So on that basis, I would personally vote for babel-minify.

nikolay commented 8 years ago

@scottohara Yup! Without any doubt, "uglify" is a more beautiful name than "babili"!

chicoxyzzy commented 8 years ago

I can't imagine how browserify people will call babili transformer. Babiliify? 🤔

pertrai1 commented 8 years ago

Take a look at the names of the tv characters for Transformers and give the name its own identity that people can relate to: https://www.wikiwand.com/en/List_of_The_Transformers_(TV_series)_characters

patrickjuchli commented 7 years ago

I like Babili because the suffix -li is used as a diminutive in Swiss German.

It's used to make things small and cute. That's where the names for Google's new compression algorithms come from as well. Brotli (should actually be Brötli) means small piece of bread, Brot being the actual word for bread. Same thing with Zopfli (Zöpfli), another type of bread called Zopf. Lately they added Guetzli, a new JPEG encoder which means 'cookie'. Cookies are always small and cute so I'm not aware of the non-cute version. All in all a very Swiss thing, see my name.

Seen through this lens, the small version of Babel would have to be Babeli. Babeli is a cute version of the name Barbara. It sounds a bit old-fashioned though, I'm not using this word at all.

hzoo commented 7 years ago

Ok well I didn't take that long to decide.. not

I wanted to change it to babel-minify for a while and I don't think anyone on the team disagrees? It's clearly voted on 10x more, and makes more sense for anyone that is newer (babel-minify makes sense) and theres way too many changes people ask "what's that babel minify thing called".

The individual packages don't reference babili, so we'll just have to update the main pkg + integrations (webpack, rollup, cli, gulp, etc), and docs.

Not everything is updated yet, so we'll be updating stuff in the meantime (packages, etc)