Applications
The best way to think of Webepigenetics is as a structural glue that holds a complex application together. It effectively encapsulates a complex program into a very modular high level description in XML. This does not mean that the low level code does not exist - it does , but is entirely contained in the tag definition of the XML for example take this XML segment here:
<sub name="logon_page">
<drawpage style="logon">
<write text="Please enter your details to log on to this system" />
<logonbox />
</drawpage>
</sub>
If you were a system developer by looking at this code you can deduce that:
- It is a subroutine
- It is going to draw a page in the style of a login page
- It is sending the user a message asking to enter their details
- It is displaying a login box of some type
The XML tells you what the program will do, you don't know how it draws the box or even what it would look like but as a system level developer you don't need to know those things. They are contained in the tag definition.
Now if you were a low level coder and look at this you would deduce that:
- The sub tag must contain all the code to set up a subroutine possibly create an object or allocate memory.
- The drawpage tag must contain all the code to physically display a page on the users terminal it is in this tag def that you could change the look of the page.
- The write tag prints a message using some low level print command.
- The loginbox tag contains all the code to display a login box, possibly hide the characters typed and save the input somewhere.
So you can see that it creates a two tier structure, one that is easy for a high level system programmer to get to grips with and one where the low level coder can easily find the tags that need to be created or modified to carry out the high level tasks.
If you are a single programmer the system gives you the best of both worlds. Low level coding in creating the tag defs and high level system design using the tags you created.
As you can see this concept can be very broad based indeed because most complex systems are a structured combination of subsystems.
There is nothing stopping you using XML to construct XML that in turn produces C code (for example) thus abstracting the project levels even further!
Simple example
Here is an example of some Domain Specific Language code that when compiled creates the screen shown at the bottom. The DSL in this example is used to create web forms for database applications. You can see the SQL query to the database, some layout control with the float tags and data display. You can also see how the forms work in creating the "select" buttons.
The best way to think of Webepigenetics is as a structural glue that holds a complex application together. It effectively encapsulates a complex program into a very modular high level description in XML. This does not mean that the low level code does not exist - it does , but is entirely contained in the tag definition of the XML for example take this XML segment here:
<sub name="logon_page">
<drawpage style="logon">
<write text="Please enter your details to log on to this system" />
<logonbox />
</drawpage>
</sub>
If you were a system developer by looking at this code you can deduce that:
- It is a subroutine
- It is going to draw a page in the style of a login page
- It is sending the user a message asking to enter their details
- It is displaying a login box of some type
The XML tells you what the program will do, you don't know how it draws the box or even what it would look like but as a system level developer you don't need to know those things. They are contained in the tag definition.
Now if you were a low level coder and look at this you would deduce that:
- The sub tag must contain all the code to set up a subroutine possibly create an object or allocate memory.
- The drawpage tag must contain all the code to physically display a page on the users terminal it is in this tag def that you could change the look of the page.
- The write tag prints a message using some low level print command.
- The loginbox tag contains all the code to display a login box, possibly hide the characters typed and save the input somewhere.
So you can see that it creates a two tier structure, one that is easy for a high level system programmer to get to grips with and one where the low level coder can easily find the tags that need to be created or modified to carry out the high level tasks.
If you are a single programmer the system gives you the best of both worlds. Low level coding in creating the tag defs and high level system design using the tags you created.
As you can see this concept can be very broad based indeed because most complex systems are a structured combination of subsystems.
There is nothing stopping you using XML to construct XML that in turn produces C code (for example) thus abstracting the project levels even further!
Simple example
Here is an example of some Domain Specific Language code that when compiled creates the screen shown at the bottom. The DSL in this example is used to create web forms for database applications. You can see the SQL query to the database, some layout control with the float tags and data display. You can also see how the forms work in creating the "select" buttons.