Monday, December 27, 2010

lot of combinations possible

1. sharing properties alone across similar classes (one way , bidirectional):
adobe flex allows One data to be bound to another data in another object(BindingUtils class).
may be something like:
@Shares(B.var2, bidirectional=true)
type var1;
2. sharing function alone across similar classes(one way , bidirectional)
3. pattern programming - http://www.jpatterns.org/ - way to go..
4. 'super class' -can be there:
class A super B{ }
5. Varying data type -Data type of class can be changed at compile time by adding infinite number of data to data types:
eg: {type2 , int a} myNewTypeObject; (This is a new anonymous type - just like anonymous classes having all 'type2' class variables + an 'int a' variable.
6. function pointer of c++ has limitation as class members may not be shared. But passing function into function could be there with proper compile time warning if function to function passing is not possible.
7. DSL incorporation into method start and end execution jointpoint (extended AOP)
8 combinatorial execution of functions (may be already present in many other languages):
public void func3()= (func1()+func2())*3;
9. dependency/function injection of data into specific lines of a code. Why restrict DI concept to variables of a class. Inversion of Control could be applied inline of a function by putting some labels/markers
10. Any class to Any class/ 'Inverse OOP'(foolish?). I could say
SubClass a= new ParentClass();
AnyClass b = new AnyOtherClass();
compiler Uses Artificial Intelligence to find out- which combination of method to call.

11. Still to come..........................(note: there is nothing called software patents. Govt of India does not approve software patents.)