Taking clues from teaching programming for kids (Scratch, App Inventor, Alice, Blockly) and domain specific languages (DSLs), I started thinking about what is a Self Programmable Application/System. In commercial world or in an enterprise, a Self Programmable Application is not a general purpose application but something designed for a specific business domain and is meant for power users who want to program it themselves without developer's involvement.
In my view, following are some of the characteristics:
It should be noted that it takes more time and money to build Self Programmable Applications and they will be cost effective only when we have common set of blocks/components that need to configured in innumerable combinations with minimal customization.
In finance, I can think of some areas where Self Programmable Applications will be very useful:
In my view, following are some of the characteristics:
- You program to be programmed by user
- Very domain specific to provide common blocks with well defined connectors
- Visual composition of program by user
- Being able to configure blocks using visual tools
- We are talking about high level composition of function blocks not low level programming
- Using DSLs (common high level programming language like Python) or rules for customization
- Visual Programming Language
- Programming With Blocks
- Domain Specific Language
- Generative Programming
- Meta Programming
- Function Program Blocks in PLCs (Programmable Logic Controller)
- Workflow/Business Process Model
It should be noted that it takes more time and money to build Self Programmable Applications and they will be cost effective only when we have common set of blocks/components that need to configured in innumerable combinations with minimal customization.
In finance, I can think of some areas where Self Programmable Applications will be very useful:
- Data Transformation or ETL (Market/Reference Data from different vendors, systems)
- Pricing
This comment has been removed by the author.
ReplyDelete