I am really enjoying all the 'click and enable' functionality of Drupal, or any other CMS that I have researched. They all come with a very flexiable framework, that makes it easy for any developer to create his/her own modules/plugins/add-ins (call it what you want). A few days after installing Drupal, and having written a handful of blog posts, I enabled the module for a RSS feed, and just like that, my pages/blog were indexed, (only 5 at that point) and there was a working feed. I added the link into my Google Desktop and there were my posts. Amazing!!
The developers of all of these systems have made it so easy, that
sometimes I'm a bit scared of what actually is going on in the
background, maybe becuase I don't know. I really like the easy of use
and all the functional modules that I can just drop it and begin using,
but being a software engineer there isn't that sense of satifaction
that I get from having written all my pages from scratch.
But on the flip side, with these new CMSs, I have more time to write/blog/program/design, than have to worry about the framework that is going to house all my mini 'projects'.
Things really hit home, when I installed TinyMCE, a great little WYSIWYG editor for Drupal. It is making my life so much easier when it comes to authoring blogs posts. I don't have to code in HTML; if I want to underline something I just highlight the text, click on underline, and it's underlined. But with that comes a worry, the problem that - 'what if...'
What if something goes wrong? What if my blog posts come out scrambled? What if things get errased? What if I have to move my database, will I be able to retrieve the data that has stored?
I really like what TinyMCE and all the other modules do for me, but I am a little weary. I come from a world where I have controlled every aspect of my design and implementation. From the smallest CSS tag, to the entire layout of the website. I came up with the idea, I created it, tested it, tweaked it, and tested it some more and when I was happy with it, I published it. But now suddenly I feel like I've lost that.
That feels very alien - I don't know what is being written to the DB, what the CSS looks like, or, what other changes it has made to some script in some php file. In no way am I doubting the ability of guys at MoxieCode Systems (developers of Tiny MCE) to do things correctly, but there is just something about the loss of full control that is is a bit strange.
Some one might come along and say - 'why don't you just study each module that you drop into Drupal?'. Well, with the 20+ files that come with most modules, and thousands of lines of code, it would be very hard for me to study everything. I wish the writers of the module would give a small explaination of the inner workings. That would put my mind at ease.
I'm sure that with a community as big as Drupal.org, I would likely find the solution to any problems that I may run into.
Sitting back and thinking about it, this issue is no different than the issue that may come up with compilers and languages in general. They all provide a framework on which you can publish, add, modify and distribue things. When you compile the Java, C# or whatever other language, you don't really know what is going on. Sure, you could open it up with a hex-reader, or look at the assembly code, but that is again a moot point. You will gain nothing from that.
All this to say, that making things easier, (i.e. using a framework), is great, it gives you freedom to do the bigger things, and not worry about the fine details, but if something goes wrong, it's a lot harder to troubleshoot than if you had built the framework yourself.