Plugin to the Future

In our previous post Joost explained why it is impossible to test compatibility of our plugin updates with other plugins. Joost showed us the enormous number of plugins our users have installed on their websites next to one of our plugins. The number of 83,000 plugins intrigued me immensely. In the past years the number of plugins has grown enormously. Is it likely that this number will continue to increase? And what will the consequences of these enormous numbers of plugins be? Is it desirable to have so many different plugins or is consolidation needed? Let’s philosophize a little:

Explaining the increase in plugins

The past increase in plugins is easily explained. The number of people having a (WordPress based) website has grown enormously in the past decade. Also, the number of people wanting to make money with that website has grown. As a result, more and more functionality is needed. At the same time people aren’t willing to pay (big) money for their functionality. Why should they? The openness of the internet allows everybody to develop their own plugins. Plugins are offered for free on various platforms, most notably WordPress.org, and on individual websites. Some will even develop their own custom plugins for their sites.

Side-effects of plugin increase

The vastness of the internet makes it hard for people to find plugins. It makes it even harder – especially if you are not able to code yourself – to judge the quality of plugins. Standards (such as WordPress coding standards) have been set, but are not followed by all or even most developers. The result is that a lot of the plugins are written in poor code and turn out to be poorly compatible with other plugins. For consumers, it remains difficult to assess which combination of plugins is most appropriate for their specific website. This will result in frustration and anger if plugins appear incompatible.

The solution: setting and following standards

Thinking about this plugin-situation made me wonder whether this in fact is such a unique situation. The plugin-business isn’t that old yet. In other branches – like construction – the same problems must have appeared (and been solved already!). Let’s look at construction-history and see what lessons we can learn:

Joseph WhitworthBefore the industrial revolution, every carpenter used his own screws and nails. During the industrial revolution the need to make interchangeable parts became highly important. Joseph Whitworth designed the first standard size for screws. His standard was quickly taken over by the British Railways, which is nowadays known as the British Standard Whitworth. If parts are used by many, it makes sense to make them interchangeable. It saves us a lot of money, anger and frustration. Thus, after a process in which many people used many different screws, came consolidation, making it easier for the consumer to combine parts. Nowadays, we all use the same kind of screws (except IKEA).

So, do we need to set a standard? But… there already is a standard? Why isn’t this standard followed (yet)?

Standardization is inevitable

One would expect that in the near future, more and more developers will follow code standards while writing new code, simply because the market and/or their employers demand it. But: the WordPress-community has al lot of talented – but sometimes pigheaded – programmers, who like to code in their own way. And why wouldn’t they, they offer their stuff for free! The beauty of open source is the enormous potential of geniality. Everybody can join and use the free software. The downside is that it makes it hard to impose any kind of standardization.

However, as the internet matures and people make more money with their websites, they will be more and more annoyed with poorly programmed functionality. At the same time, they will be more willing and able to spend money on well programmed and tested plugins. As a result of that, developers will be expected more and more to abide by standards, which will make it easier to create compatible plugins, but they’ll also be able to charge for this more easily. These processes will lead (in my opinion) to an increase in functionality, but to a smaller number of highly used plugins.

Consolidation

Alongside the process of standardization, a process of consolidation is also inevitable. We’ve really only seen very small steps in that regard in the WordPress community, but I fully expect the “big” players to slowly start acquiring more and more small players. The only players we’ve seen doing that so far are Automattic and WooThemes, but I fully expect others to follow suit, by buying plugins or complete companies.

Of course, none of us can really look in to the future. All we can really do is wait and see what happens in the plugin business. But we know this: Yoast will play an active role, both in setting standards & improving plugin compatibility and in the consolidation process (no that’s not a hint at anything yet). The development in website functionality is continuously amazing and will allow us to keep on developing plugins for years to come!

We’d love to hear your thoughts!

Yoast.com runs on the Genesis Framework

Genesis theme frameworkThe Genesis Framework empowers you to quickly and easily build incredible websites with WordPress. Whether you're a novice or advanced developer, Genesis provides you with the secure and search-engine-optimized foundation that takes WordPress to places you never thought it could go.

Read our Genesis review or get Genesis now!

17 Responses

  1. Kenth HagströmBy Kenth Hagström on 2 October, 2013

    As a developer I feel that standards always should be followed, no exceptions.

  2. GayaBy Gaya on 2 October, 2013

    The problem with most plugins out there is that they are made by people who can’t code properly in the first place.
    Because you don’t have to have a lot of knowlegde about proper programming to create a working plugin a lot of inexperienced developers release plugins.

    Standardized code and tested code are supposed to be in any developer’s skill sets by default.

    WordPress makes it easy to create plugins which opens the doors to scriptkids around the world to jump in.

    Let’s hope WordPress will enforce more rules to increase the quality of plugins.

    • mhilgtxBy mhilgtx on 14 October, 2013

      Right, it would be like trying to write a plugin. That being a guy that has spent 2 days dithering over the proper way to manually update my Genesis site to HTML 5. In other words I am not even sure why these folks wrote the plug in in the first place since they slow down or crash the site.

      Thanks from a WordPress knownothing
      Cheers
      And go Sebastian Vettel!

  3. Hans de BruinBy Hans de Bruin on 2 October, 2013

    Good post. I think the biggest problem is the existence of security issues in poorly written plugins. The more plugins you use, the bigger the risk of security holes.

  4. Andreas SteffanBy Andreas Steffan on 2 October, 2013

    Contrary to construction, IT and demand for solutions evolve super fast. Standards tend to evolve slowly. Anybody can get started building software solutions quickly.

    With great power comes great responsibility. The more powerful the tools given to the developer, the more likely trouble is to be introduced.

    At the end of the day, people have to understand that quality may come with some extra cost.

  5. Shane JenningsBy Shane Jennings on 3 October, 2013

    Wouldn’t it be possible to introduce some kind of integration testing on plugins added to the wordpress repositories? Surely integration tests could be written by the core team to make sure a plugin adheres to certain standards.
    I’m not really a wordpress developer, but I do spend my days working on client side web application architecture and there are things you can do to get the delta of a system before and after installation. The tests would show up just like anything else in open source and would accumulate over time to at least catch the basics. The Yoast team and other groups like it could submit tests when they find a plugin collision based on bad code and the system would get better over time. Just a thought.

    • Joost de ValkBy Joost de Valk on 3 October, 2013

      Might be partly possible, the issue is that might prevent *that* particular issue from occurring again, but because so many plugins do so many things and there are so many hooks and filters in WordPress (which in and of itself is a good thing), that wouldn’t exactly solve the larger problem.

      • Shane JenningsBy Shane Jennings on 3 October, 2013

        Understood. It’s more about the aggregation, similar to organic integration tests. I call it “PDD” for “Panic Driven Development”. The real architecture would probably involve creating some kind of inspection utility on a virgin install that would run plugin installations and test for conflicts on some reserved server / headless browser combination every time a plugin gets submitted to wordpress. It’s not about catching everything, it’s about a system that gets better over time. Big project, but probably worthwhile?

  6. Marieke van de RaktBy Marieke van de Rakt on 3 October, 2013

    Thanks for all the feedback, guys! Some great arguments to think about a bit more!

  7. Andreas SteffanBy Andreas Steffan on 3 October, 2013

    Most power in the wordpress ecosystem stems from the fact that plugins execute in “in process”. It is virtually impossible to ensure a plugin behaves and does not run into endless loops or other nasty things. That is reason why most SaaS based ecosystems “only” offer restful service based extension points.

    • Shane JenningsBy Shane Jennings on 3 October, 2013

      There’s always room for creativity in your tests though! We have a lot of problems with race conditions in our init sequences. We get around those with log file inspection queued by timers and asynchronous load reporting, etc. If you keep init logs, you can inspect them and catch things like that. It’s all a recursive process to reach a good test method.

  8. BrianBy Brian on 5 October, 2013

    Interesting thoughts here; thanks for a stimulating article.

    Re consolidation – I think we’re already seeing a move to more trusted plugins given the poor quality out there. At the moment, people are restricted to assessing a plugin via a combination of star rating and download count. I’d expect WordPress to head towards some sort of certification in future, as something needs to make it easier for users to assess the quality of a plugin.

    Re standards – I think it’s going to become less and less acceptable in the community to produce poor code that makes your users jump through hoops. For instance, lazy theme developers embedding site_url() in their settings etc. The key part of the standards here is poor understanding of how to work within the WordPress ecosystem and how to write PHP code. Another plugin author, wanting to run a job, was using WP cron to schedule a check every minute to see if the time had passed! Common stuff. Not common sense though!

  9. LakhyajyotiBy Lakhyajyoti on 9 October, 2013

    Though there are millions of plugins available only few of them work well. The main reason behind this is that most of the plugins are developed by inexperienced developers.

  10. Maya ZilbersteinBy Maya Zilberstein on 21 October, 2013

    tnx for all your work, I love your SEO plugin.

  11. AurelioBy Aurelio on 23 October, 2013

    Why you don’t provide support for Video SEO?? I bought it a few months ago (version 1.5.4.4) and I need to update it to the latest version (1.5.4.6), but download link listed in purchase e-mail confirmation doesn’t work anymore. Where do I download it? (we can’t update plugins due to security reasons)

    I sent many e-mails and I didn’t get any answer!

  12. Đặng Văn LelBy Đặng Văn Lel on 31 October, 2013

    “At the same time people aren’t willing to pay (big) money for their functionality. Why should they? The openness of the internet allows everybody to develop their own plugins”.
    Resource on internet must be free. That is what people want in current moment. Sorry about my bad English.

  13. tai camera360By tai camera360 on 31 October, 2013

    Thanks yoast, i used your plugin and my site is optimization :) hope every things work ok :)