Exciting times to be a Drupal Frontend guy?
I have been doing Drupal Frontend Development for quite some time now. That means that I have been through (almost) every step of the insane learning curve:
- Creating template-files by the dozen until noticing there is such a thing as hooks,
- Getting the difference between theme hooks and all the other ones.
- Hypnotising myself looking at the browser loader-icon, waiting for the cache to clear to get these hooks to work.
- Avoiding hooks with more then 4 words in its function name.
- No longer caring about markup being semantic or not, when you finally got the blessing of a working hook.
- Writing hacky jQuery, because the documentation on render array is depending on good php knowledge.
- Fixing that jQuery with behaviours and having struggling browsers because the code gets executed over a 100 times.
- Noticing that certain theme regions can not be deleted,
- Cursing when saving the view got the option set on “All displays” instead of “This display”.
- Reading documentation and getting more confused by its complexity.
- Pretending to know the difference between taxonomies and vocabularies.
- Sweating on styling e-commerce forms,
- And so on…
Now as much as I cursed on these things, I always felt better when I got to the bottom of it. I kept on learning the funkyness of Drupal’s self-invented logical-itis. As time progressed, I started to realise that the gained knowledge is only relevant in Drupal-universe. But if Drupal would die tomorrow, my skill set would almost evaporate within a day. *Flashback to Flash-developers*
I gained a deeper understanding of HTML, CSS, jQuery, js-libraries and frontend best practices while struggling with Drupal. But when I wear my frontend-hat, it pains me to say that Drupal held me back quite a lot while I learned those web-fundementals. It is not until you have a very decent understanding of Drupal that you can start becoming proud of your delivered frontend-work.
So,… Drupal 8!
Now in D8, things have improved a lot for frontenders. We can now work inside a SMACSS and BEM-oriented environment, we have Twig as a templating engine, settings in Yaml-files, semantic markup by default, jQuery 2.x and responsiveness is no longer an extra. Loads of best practices are now third-party which gives our skillset a huge bonus and makes us feel less crap about having chosen this blue headed CMS. This improved skill set also means hopefully more Drupal frontenders will throw themselves into the Drupal extravaganza and so making the CMS by itself, more popular by a bigger community.
Now on top of all these changes, which have consumed a lot of time of very talented people, the next exciting thing already comes knocking on the door: “Choosing a client-side framework for Drupal”, a discussion started by the inventor himself.
The implementation of this idea would be to use progressive decoupling and so fully separating content from presentation. As nice as this sounds, the decision on if this is a good idea, and what framework exactly Drupal will adopt, is still under discussion.
Why is this a good idea?
I know a lot of people won’t agree with me, but that is what discussions are about.
The reason Drupal developers are in such a high demand, is because of its insane learning curve. There is documentation on every aspect of Drupal, but no self-respecting developer wants to read so many explanations of a system that can be used in 12 different ways. Every developer has been given the task of having to know it all, writing as good css as performant database-queries. People like to learn new things, follow the trends, jumping on the next big thing. Just as Drupal 8 is kind of scary to get transitioned to, but that transition is nothing compared with the excitement we feel as a developer.
Drupal is becoming more and more a system where developers can build upon, instead of building around. I am imagining a world where a Symfony-guy and a React-guy can team up to make a giant e-commerce using Drupal. I am scared I won’t have the same passion for the CMS, 5 years from now when we decide to not change anything for the frontend-subcommunity. As a freelancer, I much rather satisfy the jobmarket by increasing the community, instead of living -relatively alone- on this Drupal-frontend island. The thing that keeps me going for now is the short but good moments where I can do something cool in the theme-layer and knowing I am implementing it for a huge audience. The less distracting Drupal becomes for frontenders, the more fun I will certainly have.
In the spirit of not trying to invent our own drupalited client-side framework and alienating our skill set. I have all the trust in the community in deciding the right one that already exsists. But therefor people first need to decide if they even want it or not.
Lets have a vote,
I say yes.