cwBlog: Initial Thoughts

Earlier this week I announced that I was going to start working on cwBlog, my attempt at creating a full-featured blogging application. Reactions to this announcement were divided, but that was to be expected. Although some comments were supportive, others questionned the fact that I was planning on starting from scratch, rather than helping out on existing applications. You see, the reason why I decided to start this project is to see what I can do with what I currently know. See it as an exploration, of sorts. At this point, I don't even know whether I'll be able to finish the project... However, what I do know is that I'm planning on learning every step of the way!

The main aspect of the experience is creating an application that is as Object-Oriented as possible. You can say that I've been inspired by Ben's series on OOPhoto (first post). I've been trying to apply some of these concepts within some of my projects at work, but without a blank slate it gets... difficult. With cwBlog, however, I can finally start from scratch. Some great suggestions I've had on my previous post recommended I rely on a plug-in system for some of the core functionality. This would allow end-users and developers to modify some aspects of the application without affecting other features.

Taking this idea even further, I was thinking that the best solution would be to start out with a basic skeleton, with reserved holders for basic functionality: login, posting, administration, etc. This way, everything (except the skeleton) would be a plug-in, making the application fully customizable. A developper could decide that the included posting plug-in doesn't meet his requirements, and create a different version. He could then make it available online for other users to download and plug into their local version of cwBlog. Ideally, the actual wiring of plug-ins would be made through the admin menu, but whether or not I'll be able to do that remains to be seen... 

Related Blog Entries

Comments
Ben Nadel's Gravatar
Francois, while I am not sure what a plug-in architecture entails (I hear that get thrown around ALL the time, but never really know how that is implemented), I am 100% behind anyone who wants to start from scratch.

When you start from scratch, it gives you the FREEDOM to think totally out of the box. The second you start working on existing code, you are in a world of FEATURES == CHANGING EXISTING CODE.... and we all know how depressing / deterring the prospect of changing code can be. When you start from scratch, all ideas you have a fresh (even if they mimic ideas you've had/coded previously). By working on a blank canvas, you can paint in new and innovative ways.

I don't mean to pontificate, but basically, I say go for it!
# Posted By Ben Nadel | 9/9/08 8:47 PM
Francois Levesque's Gravatar
Ben, thanks for the support, it means a lot :).

As for a plug-in architecture, what that entails (and I hope I'm getting this right) is complete encapsulation of the different aspects of the application. The core program won't be able to do much on itself, but it will provide a a clear API for "modules" to plug into. Depending on the available plugs, an application can be as simple as a blog or as complicated as a fully-fledged CMS system.
# Posted By Francois Levesque | 9/9/08 9:42 PM
John Whish's Gravatar
Totally agree with you and Ben. In a commercial environment you just don't get the opportunity to experiment with new techniques. Good luck :)
# Posted By John Whish | 9/10/08 4:11 AM
Ben Nadel's Gravatar
@Francois,

It sounds good; I think I just need to see it in code some day (maybe when you're done).
# Posted By Ben Nadel | 9/10/08 8:12 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.9.1.002. Contact Blog Owner