I am proud to announce that the latest version of Agnostic Dev has been redeveloped and is now up and running on top of Drupal 8. I am very happy that the entire development process went very smoothly and from start to finish only took me about two weeks. This is a significant improvement over what it took to develop the Drupal 7 version of Agnostic Dev as it took me close to a month and I did not have any content to port. Along with the smooth development process there were also many valuable lessons that I picked up about Drupal 8 along the way. For example, one of the main lessons I learned was about the current status of the Drupal project and the contrib modules that surround it, plus the beauty of working with object orientated Drupal, and lastly how to work with Twig instead of PHPTemplate.
I get asked a lot what my thoughts are on Drupal 8 and why I am not developing sites on Drupal 8 yet. My answer to this question is that the Drupal 8 project, at the time of writing this, while technically production ready, is not ready for larger projects just yet. For some sites, like my blog site, that have a developer managing it, Drupal 8 is a perfect fit, but for other large scale projects that may have less-technical people running the project, Drupal 7 is still the far better choice because of the level of contrib support and the stability that the Drupal 7 project still carries with it. There will be a time when those scales tip and Drupal 8 will be the far better choice for any and all sites, but that time has not yet come.
Along with the current status of Drupal 8 another valuable lesson I learned was that when you scope out contrib modules for Drupal 8 you are most likely going to be dealing with a much smaller contrib codebase than you did in Drupal 7. Partly because not all of the modules have been ported to Drupal 8 yet, but also because not as many contrib modules are needed to get a decent Drupal 8 site up and running. Many of the widely used modules from Drupal 7 were added to Drupal 8 core like views, ckeditor, entity_reference, entity api, and many more. This puts more strain on the Drupal community to maintain such a large ecosystem in core, but it lightens the load for site developers as they have more flexibility to get a more robust site up and running easier without such a large contrib codebase to always keep tabs on.
Another great lesson I also picked up from my development experience was the fact that Drupal 8 is now a object orientated developing experience! This is a great step forward from Drupal 7 as only parts and pieces were based on object orientated code. The beauty of the new oop structure in Drupal 8 is that instead of copying whole functions and pieces of modules to override them now classes can be extended or sub-classed and things can be changed very easily with a lot less code and a lot less hassle. The whole codebase is dramatically different but I think this is a great step forward for Drupal 8 and future versions of Drupal.
One of the last important lessons I learned from developing Agnostic Dev in Drupal 8 is how to work with Twig instead of PHPTemplate. I have never worked with Twig before and like most new things when you see it for the first time it is very different and confusing. Twig was no different. It was not until I started sending variables down from my theme file to my Twig template files that I really started to like Twig. When you work with Twig there is no PHP and very little logic that can be performed. At first I thought that this was limiting but then I realized that this streamlines Twig for what it is really supposed to be used for and forces the theme file to do all of the PHP computational work I really started coming around to the idea. This was very appealing to me as all Twig is now responsible for is placing the data and outputting it to the end user. I think that Twig is a big step forward from PHPTemplate where too often it was too easy to perform too much computation and pretty soon your templates in Drupal 7 become logic puzzles when they are only supposed to output markup and data to the user.
All in all I am very happy with the way the site turned out. If there was anything that I could say that I regret about my development experience it would have to be that I did not have time to take advantage of some of the multilingual or configuration management features that are new in Drupal 8. Other than that, it was a very easy and speedy development process. I will be looking forward for Drupal 8 to mature a bit more and then I can start using it on larger more complex projects, but until then I will be using Drupal 7 for most of my projects yet. Please let me know your thoughts on Drupal 8 or my new site in the comments below. I would love to hear from you.
Image reference from Google Images