Follow by Email

Monday, July 2, 2007

Database applications, a message ...

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.

10 comments:

Omar Al-Hassanin said...

I can not agree more, I think you made me change my GP right now.
Thanks mate!

MeshMesh said...

Really gr8 post Mohammed ...Its one of your best :D

Yeah its creativity not just the hard work and its one of Allah's Holy names البديع

May Allah (sob7anahu wata3ala) help us all use our talents in the best way possible and become more creative with time

Mohammad Nabil said...

When I wrote this article I was expecting it will make conflicts with many people. But I insisted on it as it is my opinion. Thanks guys, I was really afraid that it will make people fight with me.

Ramy Mahrous said...

Don’t understand you at all
You wanaa
1-Each re-invites the wheel?
or
2-Try to replace existing technologies by ours, invent new RDMBSs as example because we’re computer scientists?
or
3-Invite new technology are not already exists?

Mohammad Nabil said...

3...

Mohamed Meshref said...

Life is not always about inveting new stuff, sometimes it's about modifying the existing stuff to be more user friendly, or more productive, etc.

Also, there's a difference between pure research and business, although reseach could be a part of any business, but not every research could make a business (i.e. as a user I am not interested whether my PC is working with water or sun light, what I just care about is something to do what I want with the least required money).

This could just be because until now most of your experience is in the theoritical world, or the scientific one, you didn't get the enough real world problems or business problems to have a good idea about the other face of the coin.

Mohammad Nabil said...

Let's first clarify the context of my post.
It is sure known that a Graduation project should be where you challenge your limits and try something new to you. In best cases it is something innovative. In worst -acceptable cases- it is an implementation of something that is unusual, something big.
But being a a mere interface for a database, that is unacceptable.
And if you would use the facebook example, I'd say if that was a team here which did it as it's graduation project, it is still be unacceptable.
I see graduation projects as a way to contribute, to yourself or to academia. By making a mere DB GUI, there is no contribution done, and thus -in my humble point of view- is not regarded as a graduation project.

Also, my context was more into academia, so business rules should not apply. Obviously because they have different rules. Anyway, I'd like to clarify that I am not against more usability or more productiveness but I am trying to make people see that if they want to do something they have more choices than they see, I mean these choices they create.

At last, theoretical research doesn't meant ignoring the end-user market, it just means that the market is not end-users, but scientists (not even developers). Innovating will sooner or later reflect on the end-user, but theoretical research will have much more influence than practical one, because it will be used in many practical ones.

I am not against practical research, for the record.

Mohamed Meshref said...

I was not talking about the graduation project, in graduation projects you're supposed to do something new because this is an academic project and it's not a market/business solution, what I was talking about is the Egyptian market, it's not wrong to work in database application or web services as long as you know how to market your products and how to manage your products life cycle correctly.

The idea here that we must differentiate between college/academic projects and market products :)

Mohammad Nabil said...

Yes I totally agree with you, and I think you get me.

It only bugs me that the 99% of the products in Egypt is DB and websites, that people who have other interests can't find it. That was my point in talking about business, nothing else. To let business people know that these aren't the only stuff out there.

Mohamed Meshref said...

The reason behind why 99% of products are DB and web servides (and actually they are not only this, but they are also custom software products for specific customers) is because we don't know how to market our products or how to manage anything.

Want a simple example?
Let's take Sakhr corporation as example, they started nearly on the same time Microsoft started, and look where are we now, everyday Microsoft grows up and Sakhr goes down, and although they are working in scientific based projects (OCRs, Content management, NLP, Machine translation, text to speech, etc), but all their products are targeting specific customers, they don't know how to market their product for off-shelf customers!

One of the most important things we're missing in Egypt that product marketing can easily exceed the whole product's life cycle costs (i.e. free CDs with free shipping, conferences with some free stuff, etc), and this is the reason why our marketing sucks!