Object’s Concept In OOP

Programming has the two well-known paradigms, Object-Oriented Programming, and Procedural Programming.

 

So, what Object concept being developed to, through OOP, is to be the root of everything that has a value to be stored in the memory, So as long as you are defining an object from (Class, Variable, Enum, …etc), then you are creating an “Object”.

 

Why it goes through that?

 

Root Of Everything

 

In OOP, every data or value to be stored in memory, it has to get an address and to get that address it must be defined as a root to “Object”,  which means it can be casted to Object.

 

Referencing 

 

Well, “Object” in OOP,  has nothing to do but storing an address in the memory, So if you are defining a “String”, then its root came from “Object”, Which means you have a reference for your variable in the memory 🙂   (Expected Concept).

 

How does that work with classes?

 

Classes have objects, variables, and functions inside, where all of these inner objects have addresses, which make things more complicated for the compiler, but it’s already an advantage.

 

The advantage is, when you have many operations are being done to an Object, then that object ( Will Be Stored Again But With Another Address Of The Updated Object After Operations Are Applied To ).

 

So, the object keeps dynamically scaling, getting linked to objects and unlinked to others.

 

Traversing

 

As we are able to link/unlink objects to each other through ( Referencing Concept), this will lead to the ability to traverse between the linked objects, making paths from an object ending to another, e.g. (Object.secondObject.thirdObject … etc).

This will lead to a dynamic lifetime execution, where the objects are being called, unlinked (deleted for certain time), and linked to other objects, separating the execution of different parts of the program, and execute them in certain situations.

 

Finally, the object concept is very strong in making complex systems, with multiple internal structures, and with dynamic execution behaviors.

Application Development Future

It seems that, there is no clear vision of the future of app development, that the most developers can see.

Even if we keep thinking of “WHAT NEXT”, the only thing that comes in mind is, Ok we write codes, using libraries or SDKs, combining those text/script files in order to get something executable to the end-user.

Well, That’s fine, we have been into this for decades, stuck in “OOP” text implementation concept along the way.

Now most of developers will say..

Hay, this is the best we can reach, and it’s satisfying, It’s the only way to build a real structure of a “Software Solution” of whatever problem, big or small, Is by using that concept (OOP) with its only way of implementing it, which is as “TEXT”.

 

Now here is the issue (implementation as text).

 

Writing codes is being a challenge to most of developers in terms of business, Now we can see business is being growing rapidly, and it requires to be a bit smarter(if we can say), and with continous skills improvment, to be able to place your releases in a good compatetive levels in business, which absolutely will lead to better profits earning.

So, will the computer scientists, keep the definite way of app development?.

 

I think business competition in app development, will make some companies and scentists, think of an alternative solution, which will help in the market as well as in solving varies problems.

 

So, What the alternative way will be?

 

Building apps as writing texts, is nothing but a way of “representation” the app structure in order to be understood and able to be manipulated by the compiler.

 

So, we are not destroying the concept of OOP,  we just identify the real issue (the representation).

 

We know that, the alternative way of representation (rather than texts), is by diagrams.

Diagrams, are found in software engineering as theoretical, but what if we can get compilers those can understand diagrams, with making outer packages for the involvement as dependecies.

This will help in making the brainstorming and design of the software more flexable and easily achievable.

 

 

 

About The Blog

Hi, I am Saeed AlMufadhali, i am gonna write here some “general” topics, which i think is good to put here.

I will focus on my major (Computer Science), trying to give some ideas, solutions or theories, in order to give more knowledge or contribution.

Also, may release some of app-solutions, and to make this blog as the reference to.

Finally, I hope that i can provide some helpful stuff out here,

Regards.