The year 2015 marks a significant milestone for the popular PHP language as it progresses to version 7. Another project, long time in the making is Drupal 8. Drupal 8 will get support for PHP 7 soon enough, but the schedule for support for it in Drupal 7 is still unknown.
For a few years now there has been a viable option for the PHP runtime. This is the HHVM virtual machine from Facebook. It is a credible method for running PHP code, in addition to the separate language known as Hack. PHP 7 improves performance and is in many cases even faster than HHVM. But for Drupal 7 HHVM remains as the best option for performance until the support gets backported from Drupal 8.
PHP 7 improves performance, but also introduces new language features. Some of these are not available in HHVM through PHP, but the Hack language. Hack can be transpiled to PHP, but for projects such as Drupal this is not a viable option. The alternative way is to go forward with PHP compatibility polyfills that enable some features of PHP 7 in HHVM.
WordPress values backwards compatibility and user experience. For years WordPress users have enjoyed a constant stream of new features in the core product as well as plugins. This all adds up a technical design and implementation that is not architectonically as sound as it could be.
But does this matter? WordPress has continued provide functionality and constant stream of releases where many other PHP CMSes like Drupal 8, Typo3 and eZ Publish have started major restructuring efforts with various level of success – mostly still left to be seen.
The WordPress REST API is equivalent to the one REST API in Drupal 8, for example. Does it really matter multilingual content and application data is stored “wrong” in a relational database (MySQL) that was originally built for blog posts and a a few info pages? What advantage does a blogger really get from switching to a platform powered with Node.js and MongoDB?
There is little immediate business or editor value in major change undertaking done in Drupal 8, other than being “better”. Front end technologies such as Relay, Flux and React look like a better investment for Automattic than a complete rewrite of an old backend platform to do the same old thing.
The fact seems to be that WordPress is good enough for the majority of content management needs. Barring any catastrophic security issues and as long as they can keep the user experience ahead of other options I can’t see this changing – WordPress is good enough as is.
In the meanwhile the WordPress-based eCommerce platform WooCommerce is kicking ass and taking names in in the online commerce market. Decoupling WooCommerce from WordPress is very hard, so any kind of rewrite of WordPress seems like a monumental undertaking.
Time will show whether the technical debt WordPress has accumulated is similar to that of the United States – it needs not be paid.
HTTP/2 is going to be very common in the near future. As a PHP developer you don’t need to change anything in your development flow. All the basics such as cookies, headers and other mechanisms will stay the same.
Get started with PHP and HTTP/2 today: How to serve PHP over HTTP/2 protocol and a practical example of HTTP/2 Server Push for projects using the Symfony HttpKernel Component.
To gain significant traction an Open Source project needs active developers. The Symfony Community is well aware of this and is investing heavily in Developer Experience improvements via the Documentation, the Best Practises Book and the Demo Application.
Here is one developers suggestion on how to learn Symfony:
- Get to know the ropes with Silex
- Get insight with the Demo Application
- Reflect with the Best Practises Book
- Be productive and create quality code from the get go
How to learn Symfony easily with Silex, the Demo App and the Best Practises Book
Bolt is in spirit very close to WordPress – the administration interface and installation is very easy and straightforward. You’ll be up and running a decent looking site in minutes. Configuration, however, is developer focused as you edit YAML files directly via an online editor. This applies to menus, which pale in comparison to the superb menu editing capabilities in WordPress.
Read more about WordPress Alternative built with Symfony Components, Silex
Software bugs are familiar to both the developers and users of software. Matthew A. Telles offers the following definition for a bug: “Bugs are behaviours of the system that the development team (developers, testers and project managers) and customers have agreed are undesirable.” Due to human errors and bad specifications, bugs will continue to be a part of software development projects.
Tracking bugs is important for several reasons. Business wise bugs are considered expensive since they damage the company’s reputation and delay projects: “In 1994, Capers Jones conducted a survey of approximately 4,000 software projects. The survey asked the participants for reasons for schedule overruns. One of the most common reasons reported was poor quality.”
In addition, the survey also showed that many projects are simply cancelled due to an overwhelming amount of problems. From the human point of view, the people involved in projects with numerous problems get frustrated, demoralized and lose interest.
While web application development is a relatively new branch of software engineering, many of the traditional software engineering practices apply to it: “Following proper software engineering techniques (or modifying them for web development) can have a substantial impact on overall system usability primarily because it enables developers to achieve higher quality.”
One way to improve quality is introducing common, battle tested software components like Symfony in Drupal
eZ Publish Summer Camp and PHP Summer Camp are a joint event held in Croatia at the end of August (26. – 29.8.2015). There will be excellent professionals (and me) holding hands-on workshops about all things PHP, eCommerce, Content Management and whatnot.
Read and learn more about the Symfony CMS workshop