Hi goindex,
Thanks a lot for your encouragement and support. I really do appreciate it.
I noticed you also posted this at the MyBB Community. As I somewhat would expect, it hasn't received any replies (if it were a tantrum thread posted by someone like labrocca, it would have had over 40 responses by now).
That's okay for me. labrocca is a businessman, so obviously, he needs to get a high liking amongst the community so he can get good business connections and opportunities. (considering how much he earns, who wouldn't?).
I work for free, and don't bother trying to get a high liking amongst the community. I do this out of interest, and the fact that I like to help others (ie MyBB Group) who spend a lot of time and give their works away for free. I could be very compassionate and appear very hard working etc, but I don't want to - I'm a coder, not a businessman.
Having said that, when I developed MyPlaza, I totally misinterpreted my "target audience". I expected there to be some lurking developers, and some others who would understand code quality a bit better than a typical end user. Alas, none of this was true.
Well okay, I'll try and tackle this big project alone - I was certain I could do it (and I have done it so far). So I release alpha versions. People seem to ignore the fact that alpha versions are typically full of bugs, and install it on their production boards. WTF? Does anyone have any intelligence here? I mean, I hadn't even installed it on my own boards - perhaps that signifies something?
I dunno. Nonetheless, I provide support for those who've had these odd issues.
I installed MyPlaza on my main board after v0.4 - as I was starting to focus on finding and fixing bugs. And thus, we arrive at the stable v0.5x beta releases, which are probably stable enough to run on production boards.
MyBB uses a much better model however - they keep betas private - this stops idiots in the community (hate to say anything bad about the community, but, really, there are some idiots in most communities) from totally screwing up their boards.
So why don't I do this? Firstly, the way I release alpha versions, is to allow others to find the bugs for me, so that I could focus on development. This is what allowed me to release such a large plugin, to this stage, in only about 3 months. But, primarily because not many would do private testing for me, especially for another money system, where MYPS is "perfect", correct?
As for MYPS, MyPlaza was never intended to be a competitor, however, it seems that most people thought of it that way. Originally, my intentions were:
- Show that large plugins do exist for MyBB - if you take a look, the majority of plugins are around 100-500 lines long. There's a few 2,000-3,000 line plugins. I think the Game Section would be the largest, at around 6,000 lines (last time I checked). In contrast, MyPlaza is over 16,000 lines of code long. And my coding style is fairly compact (ie, many things written in MyBB in ~10 lines, I do in about 3). So if I used a similar coding style to MyBB, as well as not be so lax on my commenting, I'm sure MyPlaza would be over 20,000 lines long, which is around 3 times larger than any other MyBB plugin.
Okay, that may not sound that great to you - a 20,000 line plugin only takes 20 times the amount of time to write a 1,000 line plugin, right? WRONG! I could write a 1,000 line plugin in a day. However, I can certainly tell you that MyPlaza was not written in 20 days. As codebase grows larger, the complexity to maintain and continue it grows exponentially. MyPlaza is probably about 1/5th of the size of MyBB, in fact. MyBB has been developed over 3-4 years, and by a team of developers. MyPlaza is done by a single developer, over 3 months.
For those who say that more != better, I agree with you. However, MyPlaza has a very high standard of coding. If you read me saying so before, you'll see how much effort has gone into optimization and the likes.
- To give MyBB a quality shop system, not available on any other forum software. I have yet to see a shop system which is based off AJAX for example. Also, I haven't seen any other system which has such an extensible framework as MyPlaza.
- Provide a "benchmark" for MyBB plugins. MyPlaza uses many techniques which no other MyBB plugin uses, such as dynamic code loading, passive hooking and optimized multi-row updating.
- I also wanted my own shop system.
- Of course, a personal challenge.
So why didn't I base MyPlaza off MYPS? I've been asked this before, however, I really don't want to talk foul about another person's hard work (especially after labrocca's little tantrum he threw). But since not many people are going to read this, meh.
MYPS is vulnerable to a number of attacks, including XSS, request forging, SQL injection and so on. The other main issue is that MYPS causes excessive querying on showthread, which can cause larger boards to cause excessive usage towards the MySQL server (see
my speed comparisons for some details). To fix these, much of the code would have to be rewritten, so I may as well write up a completely new system, with all these flaws fixed. And I didn't particularly like the code design of MYPS anyway.
Of course, this is also where I got my target audience wrong. Firstly, speed isn't really a matter, as there's basically no large MyBB boards. So excessive querying doesn't really matter - most MyBB boards are so small, there's going to be a very minor effect, overall, to a site's performance. And not many people at MyBB Community are coders, and. know much about security. Heck, I doubt many people would know how to exploit the HIGH RISK execution vulnerability fixed by MyBB 1.2.11. (it's really quite simple, but I won't be going around showing people how to exploit MyBB).
That is why many people install MYPS, it looks like it works well, so they consider it "perfect". I should've noticed that, but I stubbornly didn't.
The other point is that labrocca "oversells" his plugin, like most businessmen do (ie, saying that there's no bugs in his plugin, when, I could point out quite a few), whereas I tend to "undersell" mine.
Anyways, there's also been a few other annoying issues when developing such a large plugin. One of them is issues with other plugins. Perhaps one of the most notorious is the Forum Warning System. The FWS, does a few language hacks, when loading itself in the AdminCP. The problem is, it doesn't clean up it's mess after it's finished loading, meaning that other plugins will be unable to load their language vars, since FWS has destroyed MyBB's language system. This has caused the fairly spread "AdminCP links don't show up" problem. (I actually only learnt this recently; before, I simply couldn't figure out why this issue was occuring).
This isn't an issue with MyPlaza, however, in the v0.5x series, I written specific code which will detect a broken language system, and attempt reconstruction, to fix this flaw in the FWS.
There have been a number of other issues with plugins, such as the Classic Rep System causing the missing Usertitles in posts. And of course,
PHP bugs are great too, right?
Perhaps the biggest thorn in my back is the general reception of MyPlaza. Sure, I've received many compliments, and I really do take those in (without those, I probably would've stopped development ages ago). However, I've also gotten many outrageous requests, including people asking me to rewrite MyPlaza to be compatible with MYPS and so on (yeah, like I'm going to rewrite over 10,000 lines of code for you, and make my plugin run like crap). People also complain about this and that. To those - how about
you try writing up a 16,000+ line plugin, and not have any issues?
I knew the MyBB Community was small, and that the small number of plugins released (relative to other board systems) meant that there weren't too many third party devs around. However, the reception I received was probably lower than my expectations.
Although I don't consider ratings much, if you take a look at MyBB Mods, MyPlaza has an average rating of 60%, by 15 voters. To me, that suggests that there's some major flaw in the plugin.
So if the general community thinks my plugin sucks, or could use a lot of improvement, well then, so be it. The majority of the community seems to fail to understand the amount of forethought that went into this, plus the amount of time it takes to write a 16,000+ line plugin.
I know that I could do things like force people to say "thanks" to download MyPlaza, but really, I'm only fooling myself. Which is why I don't force people to register to download attachments here, and so on.
I also had a number of large-ish plugins planned for MyBB 1.4 (ie a fully featured download section, plus a multiforum script), but I've now decided to keep them private. I'm not going to repeat what I've done with MyPlaza. Plus, this will allow me to save some time, coding for different platforms, compatibility with other plugins, plus not having to provide support as well as spending time to make a nice AdminCP interface.
I also plan to depart from the MyBB Community later. Whilst the staff there are certainly very kind, I'm not particularly pleased with my experiences with the community. I'll probably keep this site up, and respond to support and requests here.
If I were to leave with a suggestion for MyBB Community, it would be to encourage more 3rd party plugins. I see a lot of incentives for themes, for example, theming contests, however, I never see the same for plugins. In a sense, now, I'm not so surprised that there aren't many 3rd party plugins for MyBB. A bit of a shame, considering that MyBB has a reasonably good plugin system. I see that there's many nice comments on submitted themes, however, I've posted a number of plugins which haven't received any comments (look at the Syntax Highlighting plugin at the MyBB Community), let alone the hated "Thanks" comment. Although I personally don't mind too much, other devs may.
Lastly, people seem to like those who make many small plugins, rather than large ones. As stated above, it's MUCH easier for me to write over 100 small plugins, than it is to write MyPlaza. Thus I'm not going to bother with large plugins anymore (at least, publically).
Lastly, PHP has been interesting. It's going to be a useful tool to me in writing auto-download scripts for myself, as PHP is much better at parsing strings than VB6 (what I've previously been using).
I've also developed some programming techniques, which I wouldn't have, had I not fiddled with this scripting language.
So I haven't left this empty handed. But I need to move on, and learn other stuff. Recently, I've been fiddling around with the DirectX API - it's something I've been wanting to learn for a while (I've only fiddled around with GDI before).
Sorry to sound so negative, I really do appreciate your concerns and encouragements, but hopefully, I've explained my intentions and explained why I have decided to slow any development on this project.