I’ve just read an explanation why there is no Django’s blog application. The article is interesting, but – as many monolithic vs component-based comparisons – misses one very important point.
Who is choosing a blog software? Someone, who is starting to blog. Who is picking CMS? Someone, who is starting a website. Who is selecting a shop software? Someone, who wants to create a shop. And so on.
It has two important consequences.
When I decided to create a blog, I was thinking about my first entry (and second, and third). I had an idea of something interesting to write about, and I wanted to write it down, and publish. Everything what forced me to switch to doing something else, was irritating. Here is a huge value of providing sensible basic, working core. Yes, a few weeks later I heavily customized my blog, picked a couple of plugins, rewrote the template, and so on. But it was a few weeks later, when my blog was already running. And the platform for it – picked.
Even more importantly, I had only rough idea of blogging. I did not know what trackback or ping are, I never heard about Moveable Type API, I had only rough understanding of Atom and RSS, I did not know how is one fighting a comment spam, I had no clue about categories and tags, etc. And – especially – I did not know the habits, I did not know which kind of functionality is blog to provide. So I wanted my software to lead me!
And it (in my case, Serendipity) did the job, because all the parts were there, so I could explore, and learn.
Now, when I know more-or-less everything, my blog is already in place, and works. And even if I am somewhat unhappy with the technology, or architecture limitations, I won’t go back to the platform selection.
It does not matter, whether blog software (or, as I said, CMS, shop, whatever) is written as an monolithic, or component based application. It matters, that I know what should I get to have normal blog with all standard functions. If there was an instruction that to have a working djangoblog you must download … (15, or even 45 components here) and configure them … (explanation how), it would be OK. The problem (at least in my case) is not in spending 10 minutes more on installation. The problem is that I need to know what should I install to have everyting important.
Yes, later on I will likely throw away half of those components, add a few new (maybe written by myself), etc. Here the component model rocks. But I need a starting point!
I prefer buying a car to buying a great car building set. Even if I am skilled enough to modify it afterwards (and interested in doing it).