dbashford / mimosa

A lightning-fast, modular, next generation browser development tool.
http://mimosa.io/
519 stars 34 forks source link

question: comparison to brunch? #401

Closed tony-kerz closed 10 years ago

tony-kerz commented 10 years ago

hi,

just perusing around the world of js build tools trying to get a point in time feel for the landscape, and it seems like mimosa would be most closely comparable to brunch.

at a glance, it's not obvious to me what the differences are between mimosa and brunch, and given that, i might be inclined to invest time in brunch merely because of github stars, but i figured i might ask here to see if anyone could scare up some more meaningful info.

regards, tony.

dbashford commented 10 years ago

2 years ago I built Mimosa based on Brunch not being good enough for our needs at my job. Back then I knew very well what brunch didn't do that I needed to get done. I'm a little out of touch now on Brunch's capabilities, but I know there are some folks (@dnalot, possibly @breathe) that both know Mimosa really well but have fiddled with Brunch at some point that could chime in. I think @dnalot at some point was considering tossing a blog post together outlining some of the differences.

We were then (2 years ago) and still are a requirejs shop (though we use es6 mod syntax now) and you'd be hard pressed to find any build tool that provides the level of requirejs/AMD support that mimosa and its requirejs leaning modules provide.

That said, with the mimosa-browserify module, mimosa's fully capable of commonjs style web apps.

Mimosa is strongly convention over config. Config is available but if you stick to a few sensible conventions you don't have to spend much time at all configuring anything. I covered that a bit in a recent blog post. The idea is, if I want to compile CoffeeScript, I should be able to tell a build tool, "Hey, CoffeeScript, thanks", and it should be able to figure out what to do and how to do it.

Along the same lines, Mimosa tries really hard to remove some barriers and to just generally make your life easier. As an example, it will npm install your modules for you as you add them to your app.

And while star comparison is certainly a valid and useful way to determine usage and popularity, I use that metric all the time, downloads might be better. I don't know how accurate (one would think its an easy stat to reason about) the downloads numbers on NPM are, but Mimosa is just 20-30% less than brunch. Take that for whatever it means.

texastoland commented 10 years ago

They are extremely similar. Even individual plugins share striking parity. When I first looked I appreciated Mimosa because it felt more comprehensive out-of-the-box than Brunch. I'm starting a side project this month (I tell myself that all the time) that I want to go back and reevaluate. I appreciate Brunch's conventions more than I did before. It defaults to strong conventions about directory structure, file naming, and feels easier to do things like concatenate files based on patterns. I'm curious whether @paulmillr has tracked Mimosa?

dbashford commented 10 years ago

I would be surprised if it was on his radar. =)

I knew Brunch well 2 years ago, but I'm afraid I stopped paying attention as soon as I went my own way.

Mimosa's name is indicative of my desire to do something Brunch-like, and it started off really close to brunch in structure before it veered in (what I felt at the time was) another direction. I would be surprised if over the last few years some of what we struggled with with Brunch hadn't been addressed in some fashion.

One thing I know Brunch does a lot of is scaffolding/generator type stuff. Mimosa doesn't. Any time I've had that sort of thing available in a tool I've not used it. Would be easy to add as a separate module though.

paulmillr commented 10 years ago

not tracking mimosa

we don't do scaffolding / generator since mid 2012. only build / watch.