What is a Butterfly Software Plugin? The difference between a “patch” and a “plugin”

 

Apr
18

1


There’s been a lot of talk lately about Plugins for the Butterfly Software code, and that needs some clarification.

What most people are calling a “plugin” really is a patch, as the core butterfly software as released simply doesn’t support plugins.

A plugin (I like to call them extensions) is where you add functionality to the system by adding a few files to a special directly, and maybe setting some configuration options.

In this scenario, the code of the original application is not modified in any way.

A patch is where a developer goes in and changes the code of the system.

The problem with patches is that as soon as you’ve applied a change to the software, next time you update the code or try to apply a different patch, you’ll either overwrite your changes or, if your unlucky, break your site.

Let’s discuss this in detail.

With 100’s of people all making different patches to the same code, unless there is a centralized place where all the patches going in can be tested, you’ll quickly end up with a mess.

Patches are valuable. They fix bugs and add functionality to software that can’t normally be added. But unless you are (or hire) a developer to maintain your site, you’re going to want to get official, tested releases – like with the Marketing Website Generator – with non-conflicting patches already applied and tested.

For example, you wouldn’t go in and upload a new file over the index.php of your WordPress installation because some developer says they fixed a bug (would you!?) Instead, you report the bug, the WordPress team fixes it, and sends out a new release of the software with a new version number. You go into wordpress, press the upgrade button, and boom, your done.

That’s exactly the way Marketing Website Generator development works:
1.Someone reports a bug or feature request. We work on these in order of Security, Severity, Paid Members, everything else.
2.Any developer can propose a patch (in the tracker), and we work on them as well, applying the ones that make sense
3.We apply the appropriate patches to the “core code”
4.People who want the latest branch download and test the code from google fr0m the repository. (Everyone has access to the latest code)
5.After final testing, we then announce a new release of the code, with the changes
6.You go into your website, press the “upgrade now” button, and everything continues to work

Repeat.

This is part of software lifecycle management, and is petty much the way all professional software is developed and released.

One point: one big difference between programmers who know what they are doing (the professionals) and those who dabble (and are responsible for the majority of bugs and security holes) are whether they follow a release cycle similar to the one above, especially the testing part.

So we’ve talked about the difference between “hey, this bug was fixed” then installing a patch, vs. professional software development.

Now let’s talk about plugins. That’s something that you already know what they are, right? If you’ve used wordpress, you’ve gone in and either uploaded a new theme, or installed a plugin. Or if you’ve used Joomla!, you know how incredibly powerful the whole extension system is.

These extensions work (I use extensions because a plugin is really a specific type of extension, mentally use whichever word works for you) by having a way that developers can create add-on functionality by uploading files into certain places, telling the software they are there (though in many cases the software will find them automagically), and then the new functionality is available.

No core code is ever touched, and extensions can usually be added without affecting the stability of the system.

As released, Butterfly Software did not have ability to use extensions.

That is what we’ve spent the first few days since release to add to MWG, and will continue to improve it in the coming months. That way, you can get many extensions for your websites, and developers can earn a little money without everyone stepping on each others toes.

Developers, if you are creating patches or extensions for any Butterfly Software variation, I encourage you also to provide them to the MWG. Also, join our discussion on how best to implement the core API and plugin system in such a way that it is compatible with every version of the Butterfly Code that becomes available.

Please note: the MWG software is designed to be a true, open source project with “plug and play” software and extensions without the need for custom work – though custom work is certainly possible, and MWG makes a great base to start from.

However, if you are looking for someone to build your site for you, I suggest that you look into the Butterfly Software Developers Network, where many website designers are paying for the privilege of soliciting your business.

What we’re offering is a little different – and complimentary – in terms of support and development than what you’ll find with the official developers network.

First, the Marketing Website Generator, while based on the Butterfly Software, is a different product, and as I hope you’ll agree, much improved.

Second, our forum and bug tracker is open to the public – meaning everyone gets to participate, though we do offer paid support plans via a private forum and help desk for those who don’t want to wade through forums to get their problems resolved.

Third, our system is focused on end-users, not developers. During the first 48 hours of code development after launch, we’ve already made it easier to install and use than the original.

If you are looking to have a turn-key system you can install and extend just you can with wordpress, then Marketing Website Generator may be right for you, and you can get it for free, right here: http://www.marketingwebsitegenerator.com While the core code is free, please do consider supporting the project by purchasing support.

One Response to “What is a Butterfly Software Plugin? The difference between a “patch” and a “plugin””