I want to write a book. A medium long book with chapters, paragraphs and sentences. This book, of course will be a story about something although it could be a book on history or a biography. Of course it will be written well enough so the average person will understand all of those sentences, paragraphs and chapters.
We know most folks don’t have too hard of a time understanding and following chapters of books even when those chapters get long. Following that logic, multiple paragraphs are even easier to understand. Heck, I n most cases, we don’t even think about them as they are just part of the whole. Typically a small part of the whole.
I’ll write this book just like I’m writing this post, one sentence after the other. But…
Today there is a better way to write a book. We know that anything longer than a couple of sentences is just too long to understand, even if it takes more sentences just to pull together the total thought. That total thought is just way too hard to understand!
So, let’s make a rule, we can’t write more than 3 sentences at a time. Let’s call that 3 sentence block a method. If a paragraph needs more than three sentences we can just combine multiple methods together.
Since we are writing all those methods, we had better add a header / title to each one so we can identify it later when we assemble all those methods into chapters to make the book.
You know what else? We may be able to use our methods (sentence blocks) in more than one place so we need to come up with a way to do that. I know, we can use the title of the method as a way to link back to the sentences! That’s the ticket!
Ok, now we need to organize all those methods as we are starting to get a lot of them! We can group the similar ones together and call those groups classes! But, you know what? I may want to use those classes for other books so I’ll copy them onto the Internet where I can get to them easily. But how to do that? Well, I could do something like an electronic card catalog so I can look at that to find the class and then from there find the method that contains the sentences I want for that paragraph. It can’t get better than that, right?
But what about the book, what about the story? Do all those little sentence blocks make it easier to write the story or does the story get lost in the complexity of the process?
If you haven’t figured it out yet, what I’ve described above is a very simplified version of how “modern” software is written. I’m not sure it is the best way to write anything.
In the end, applications are like books. They are complete stories, be they a game, a spreadsheet or a word processor. When those stories get split up and spread all over vs. being written in sentences, paragraphs and chapters, what do we lose?
More importantly, do we really gain anything with all the complexity that has become modern software? Let me know your thoughts.
