I just posted the text below at http://www.nextbbs.com/do_topic_title_nextBBS-direction–please-give-your-input_id_1288
I know that a lot of open-source projects have gone through the same dilemma:
- Now that we know what we know,
- Now that “these” components are available,
- Now that development on our old framework is slowing down because…it’s old
Well, what do we do now? Rip apart our existing software and restart with more up-to-date technologies, or keep building on the old workhorse, hoping that nothing will go wrong?
What would you do?
Here goes:
All-
Here is what I’ve been thinking about lately. I need your input badly. So, please humor me and read this fairly long post.
On Framework, PHP5, resources
As some of you know, I have developed most of nBBS myself. In parallel, I have also continued developing other projects, as those of you following me at nexus.zteo.com or on Twitter (twiter.com/chrisfr) already know.
It is becoming difficult for me to constantly re-invent framework pieces for these various projects and lately I’ve spent a lot of time creating my own PHP framework. Not that I do not like the frameworks already out there, but I needed something lightweight that would allow me to create new websites in a matter of hours.
One of my most recent projects, www.twitterified.com, relies on this new framework and every time I add a new piece to this framework, all my projects benefit. Actually it is very likely that this framework will soon be used in a big commercial project (1 million lines of code) with a dozen developers using it on a daily basis.
What are the pros of this new framework?
- Reduces potential for bugs drastically
- Code is organized logically and much easier to understand
- Active Records pattern allows any level developers to implement database-dependent features quickly
- Overall, very easy to develop for
- Ajax “on steroids”: easy Ajax-ification of the web pages
What are the cons?
- PHP5 only! You need to let me know if you are stuck with PHP4!
- Slower than current, insanely optimized, software
- At first, a lot of features will be missing
- Integration with Wiki, etc. needs to be redone
On third-party software and components integration
About this integration issue: that’s one of the things I am not happy with. I have decided to stop wasting resources on little-demand features and integration with Coppermine is an example of this kind of resource wasting. Note that we should not integrate with a nice image management program but I do not think that Coppermine is a good fit. Its philosophy differs too much from what I envision for nBBS (features with simplicity).
Some of the components I decided to use with nextBBS are needlessly complex and that leaves us in a rut. For instance, the rich-text editor, FCKeditor, is a nightmare to synchronize with nBBS and there are now new choices available that would be a better fit for a forum software. I believe that FCKeditor is too complex for editing forum posts. WYSIWYG is good, but trying to emulate Word is crazy.
On usability and overall philosophy
I have spent huge amounts of time making sure that wherever we -discretely- use Javascript, it degrades gracefully so that people browsing without Javascript can still use nBBS.
I now believe that it was an error. With more than 98% of web browsing happening with a Javascript-enabled browser, with the iPhone offering a perfect Javascript implementation, thus opening the era of embedded Javascript thanks to Webkit, I believe that trying to accomodate for 2 or 3% who made the conscious decision to block Javascript, in effect locking themselves out of the Internet, is a fool’s errand and the effort could be better spent designing user-friendly interfaces.If I was to “restart” nBBS, I would make two things my priorities, interface-wise:
- More dynamic, fluid pages: less users clicks, more instant results for their actions
- Simplification: nBBS would retain its power but would only reveal it progressively, offering, first, a simple, accessible user interface
( principle of “progressive complexity” )On the admin control panel
I believe that the control panel offers an unrivaled set of options. However, I also believe that its organization is a mess. And it does nothing for contextual actions. The only example of real contextual management that we currently have in nBBS is validating new users directly from the members list.
What’s the question, again?
My question is simple: do you think we should
- forge ahead with our current design, which works very well and fast, but does not make new developments or bug hunting easy and/but sticks with the canons of web forums circa 2000-2006,
- or should we take a step back and rewrite the software’s backbone to use a framework that will allow more exciting future developments, but at the price of a - marginally noticeable - performance loss and, in the beginning, lacking some of the features currently available?
I know, it’s a long read, but I think that it gives you a pretty good picture of what’s going on in the head of the lead of an open-source project at this point in the project’s life.
Sphere: Related Content