Finally, a short period of rest before continuing working in the graduation project. So many blog posts I wanted to send and I didn't because I was tired.
Note that this is not in anyway disregarding the importance of database or website development. They are very important fields in our life.
Most of you know that my interest is theoretical scientific research. So I am not so much in favor of 'pure' applications that doesn't add new technologies or ideas; just uses them to tailor a predefined template of programs. This post is going to 'attack' and try to refine that sort of applications, and it's most common example: 'Mere' database applications (well, both desktop and web).
My idea is that having such repetition in the implementation of one -mostly the same every time- idea, and the variation is only in using or fine graining, makes the concept needs rethinking. So that instead of making a separate application that just uses a database, for each use of databases, you can broaden the concept so that there is only one database application that suits every possible use.
First, let's include some examples, digg.com, flickr.com, and every forum that exists. If we exclude creative search techniques (Google for example.), and appealing GUI (flicker; web 2.0 in general), and the concept of user-oriented content (forums. Digg - like the radio show, 'what the listeners ask for'), what do we have left ? Database, adding data, retrieving data and information, calculating statistics, and everything you find in a database book.
The core of many projects and websites is data processing, converting data from one form to another, and saving and retrieving data. I don't think I've found a data mining website before (can anyone mention an example of one, please ?). The rest of the program is just eye candy and mostly --except in rare cases-- non-reusable non-extendable --in a scientific way I mean, not in a sales way-- ideas (the general purpose of the website).
It's like talking about pen and paper. Every new website, or database application, just uses pen and paper and it just tells you this paper is for writing questions, and this paper is for writing posts. Paper is paper, and excluding fundamentally new ways of writing, and fundamentally new paper, the task is user-performable. So why not give the user the power to use the paper the way he wants to, and let us concentrate on the rest: fundamentally new stuff; inventing.
The idea in a very similar problem is: separate the paper mills engineers and the newspapers writers. They are totally separate jobs. Thus in our field, separate the 'computer scientists' (or computer professionals in general, including CS and IS) from the website authors.
Not only database applications or websites I am talking about. I am also talking about GIS. Geographical information systems, used to be an information system thing (IS) and is considered an advanced field. My thinking is that once that field gets ripe and the only variations left is to change uses and purposes, just leave it to other peoples (GIS geologists, or traffic authority or whatever they will call themselves) and concentrate (I mean IS people) on making the next technology, for example: Voice Information System, Space Information System, or ... there are many stuff left to be done, don't stick to the easy and clear one just because the other new fields seems fuzzy or not very well-defined, that's where history-remembered scientists starts this way by exploring what no one did before.
And by the way, I want to call the term 'computer professional' to be obsolete a meaning-less. I don't know if I am the only one to say that, but anyway. We computer scientists, information system guys, information technology guys, and whoever mission is to create new technologies in their field, should let a technology go after it is ripe to people who are only dedicated to it. Websites, should no longer be called as 'our' field. There is website-professionals who need not know binary or internal working of a computer, they might also need not know programming at all. Thus computer-professional should be replaced with a 'field'-professional. Because they will be very diverse and have absolutely nothing in common, except that they use computer hardware, RAM and hard disks.
Not all database applications and not all websites are like that, after all, the content judges. For example, a website to do calculations on a set of people stored in a database to classify them on a certain complex criteria that you need to make your own algorithm (not just be sorting and branching) that can't be made using a simple SQL query, that no so-called website-professional can do. That can be acceptable for us to do. But otherwise, either repetitive memorized website-development, or content writing, is not acceptable for us to do as it is not our field, nor our profession, nor what we were prepared to do, we were prepared for something much higher, much complex, and much greater.
If you (CS, IS, or IT guy) are still convinced that the new idea for your website justifies making a website, then you didn't get the idea of this article. Save such ideas to website-professionals. Your job is much creative than that.
A little example, if you are making a program that uses a database, and uses communication between computers, you can do it using SQL/DLinQ and Sockets/WCF, but you can also devise your own way like making a new spontaneous way of accessing your data, and a new spontaneous way for calling your program on the other machines. The new ways, need not be so general, they only need to serve your specific needs in that program (i.e. single protocol, single language communication; single language data access; the language you use). Only try to make them as reusable as possible. Do whatever you need so you can concentrate on the creative parts of your application not the 'exhaustive' parts.
Reusability concept is more than I imagined, it isn't just making 'code' reusable so you don't need to write the same functionality twice, but also the whole process, so you don't need to drag and drop the same components twice!
I hope the idea have reached you. Thanks for reading so far.