Domain specific language (DSL) or business rule is everywhere in the industry, their purpose is to provide the insight of the business logic to the customer without the need of understanding technical details, so that they can adjust the logic by themself. The problem is developer need to depend on third-party library or another language to enable this feature, which is:
Not flexible: Sometime we want to hide the complexity of the business rule, can we do that with third-party?
Different project might have different DSL, customer need to "learn"?
Can we generalize the specification of all business rule into one language that is easy to the customer and flexible for the developer?
In my opinion, all the rule is about data manipulation which means it takes some input, manipulate it and return the output. We can make a language that like the flow chart or pseudo code
Pseudo code is easy for customer?
Developer need to implement a compiler/interpreter for that pseudo code in every project?
Or we can create the compiler with basic functionality, and then let the developer to extend the functionality of that compiler depending on the requirement of the project?
Generalize Domain Specific Language
Domain specific language (DSL) or business rule is everywhere in the industry, their purpose is to provide the insight of the business logic to the customer without the need of understanding technical details, so that they can adjust the logic by themself. The problem is developer need to depend on third-party library or another language to enable this feature, which is:
Can we generalize the specification of all business rule into one language that is easy to the customer and flexible for the developer?
In my opinion, all the rule is about data manipulation which means it takes some input, manipulate it and return the output. We can make a language that like the flow chart or pseudo code
Pseudo code is easy for customer? Developer need to implement a compiler/interpreter for that pseudo code in every project? Or we can create the compiler with basic functionality, and then let the developer to extend the functionality of that compiler depending on the requirement of the project?