Yes it's bad, but once you're this low it can only get better, right?
How can we improve
Maybe I over emphasized how bad the situation is, but if we don't do anything in near future, this is exactly what somebody is going to tell about Plone.
We need to:
For reasons mentioned above I started a project called Plone Mockup. Goals of this project are:
- Front end developer should never ever have to hear the word buildout. Well I believe word buildout should only be used in jokes, but thats the whole different story.
- Plone Mockup - at some point - should become fully functional Plone interface.
First bundle: Widgets
Is a collection of different widgets which should be part of Plone since last year. To provide modern widgets I'm depending on 2 external libraries: select2 and pickadate which are wrapped as patterns and registered with Patternslib.
Patternslib also gives us nice way to trigger patterns via pat-<pattern-name> class. This is something that is not forced on you, since every pattern is also jQuery plugin and pattern can be triggered as jQuery plugin.
Many would also say that using data-* attributes for providing options to pattern, reminds them on something we are trying to get away, KSS. But there is a clear difference. KSS tried to invent new language, while we are just passing options via data attributes. Also many other frameworks (eg. Twitter Bootstrap) is using this technique and many seem to like it.
Also I'm using RequireJS to define dependencies, but once compiling them to bundle I'm using almond which is a lot lighter version of RequireJS (but also does a lot less). Now if we at some point decide to go with some other implementation of AMD for whatever reason, we'll have dependencies already defined.
Last to mention is a tool call jam which is used to keep track of all dependencies. jam automatically creates RequireJS configuration for our dependencies. And jam wouldn't be complete if there wasn't a nice way to create bundles, it provides compile subcommand which does this for us.
Now, I've mentioned many new tools which are used in Plone Mockup but that is only what is under the hood.
I hope I explained some parts of Plone Mockup and how all works. I'll try to improve documentation about it and would also like to hear more concerns about decisions that I already took with Plone Mockup.
Please look at documentation provided at http://plone.github.com/mockup and if something is not explained well I'm always looking to improve it.