Hello everyone.
The front-end world is evolving really fast, and it's very hard to pick the
good JavaScript framework, the good CSS preprocessor, or the good CSS
toolkit. It's so unpredictable that it has inspired a comic strip:
http://www.commitstrip.com/en/2015/09/16/how-to-choose-the-right-javascript…
:)
Last year, we have chosen to use Bootstrap for our new Flamingo Skin.
Quickly, I have discovered that we had to integrate a CSS preprocessor to
be able to customize it [1]. The natural choice was Less, since Bootstrap
and of lot themes of the web were using it.
Now, the situation have changed. Bootstrap 4.0 will be released soon [2].
It have been entirely rewritten and some retro-incompatibilities have been
made. But the most breaking change is that they don't use Less anymore, but
Sass.
By the past, they use a less-to-sass converter so they were able to propose
both versions of the framework. But now, I doubt the opposite converter
could be possible since Sass have more features than Less.
Worse, it seems that Sass is becoming more popular than Less [3].
Note: the current Bootstrap version, 3.x, will be maintained during one
year, so we have this time to adapt.
If we want to upgrade to Bootstrap 4, we will need to integrate the Sass
preprocessor. Fortunately, we can re-use a lot of the work that I've done
for Less (the cache mechanism, etc...) that I can modify to be more
generic. I don't have estimated the time it would take yet.
If we want to upgrade Flamingo to Bootstrap 4, it will create some css
breakage (and the ability to use LESS in SSX will be loose). And we will
have to convert our Less code to Sass.
We could also decide to keep Bootstrap 3.x in Flamingo and use Bootstrap 4
for our next skin.
Thanks,
[1]:
http://design.xwiki.org/xwiki/bin/view/Proposal/ColorThemeforFlamingo#HImpl…
[2]: Bootstrap 4 announcement:
http://blog.getbootstrap.com/2015/08/19/bootstrap-4-alpha/
[3]: The State of Front-End Tooling – 2015:
http://ashleynolan.co.uk/blog/frontend-tooling-survey-2015-results
--
Guillaume Delhumeau (gdelhumeau(a)xwiki.com)
Research & Development Engineer at XWiki SAS
Committer on the
XWiki.org project