Also, I want to add, I don't care where you land on the side of the debate whether to use Bootstrap or not, there is some very smart minds behind the project and there always something to learn from the source code.
I spent a lot of time deleting stuff lol. Still more to optimize around though as we work through the alphas.
Personally I hope they never impose such an awkward naming convention.
However, what about the problems that BEM tries to solve? Using a naming pattern to communicate structure (element E is a "child" of block B) is a good idea (instead of e.g. a descendant or a child selector) because of:
a) Performance: one class (e.g .blockB__elementE) will be faster to "match" by the browser than .blockB > .elementE /.blockB .elementE;
b) Less coupling to DOM structure: to have the desired style, element E doesn't necessarily have to a child of B.
Similar points can be applied to modifiers. A "btn--large" instead of "btn btn-large" seems like a good idea for performance and also to avoid conflicts (the latter class will override the first, but I wouldn't want to care with order).
I used to be totally against Bootstrap for a myriad of reasons. Then I got hired to build a fairly complex transactional application for a large health care organization under a tight schedule.
Bootstrap allowed me to get a UI up and running super fast with all the components I needed, out of the box. It literally saved me hundreds of hours of work. I look at it completely different now.
This version looks pretty sweet and I'm already eyeing up version 4 for a few future projects I've got in the hopper.
Properly theming (at least in 3.x) took a lot of effort. Just try to make a theme whereby at first glance, you can't tell that Bootstrap was used. It's not that it's not possible to do, it just took a lot of time and effort to nitpick over every detail.
In professional environments (ie: real flesh and blood companies), developers cannot say "we're using Bootstrap's default theme". The business has designers, the designers come up with a design, and unless the developer can customize Bootstrap to accommodate the requirements, in a reasonable amount of time to meet deadlines, Bootstrap is simply not an option outside of using the grid system.
That's precisely what we do at my place. We don't do it for customer facing things, but for back office tools why would we spend time customising Bootstrap? There are better things we could be doing with our time.
How terrible would it be if all your desktop apps had completely different UI components? Indeed, people seem to greatly prefer desktop apps that follow the style and UI conventions of their OS.
So if the Internet were largely made of pages powered by a few popular UI frameworks, I really think it would be a huge boon to users everywhere. UIs would be more familiar and consistent. Seems like a great step forward.
Your users(and clients) won't care that the buttons are not flat or that it looks like many other applications ,if anything that's a positive if you build a UI components like Navbars they's used
This sure contributed to reducing the size.
* or thereabouts