+1
Rishi Solanki Manager, Enterprise Software Development HotWax Systems Pvt. Ltd. Direct: +91-9893287847 http://www.hotwaxsystems.com On Tue, Feb 28, 2017 at 2:53 PM, Julien NICOLAS <julien.nico...@nereide.fr> wrote: > +1 > > > > On 27/02/2017 13:44, Nicolas Malin wrote: > >> +1 >> >> I also agree to replace the minilang by groovy dsl for service. >> >> For screen a prefer wait a good equivalent solution for simple case. >> >> Nicolas >> >> >> Le 18/02/2017 à 10:17, Michael Brohl a écrit : >> >>> Hi everyone, >>> >>> we are currently working hard to make OFBiz a modern, quality, robust >>> and easy to use framework. >>> There are several ongoing initiatives like refactoring the core, UX, >>> changing the build and plugin system and cleaning up the javadocs, only to >>> mention a few. >>> >>> In mini lang I see another part of our project which needs a >>> refactoring/change. Here are some reasons: >>> >>> - Programming in XML is hard to deal with when it comes to refactoring. >>> >>> - The "code" cannot be debugged and is hard to review and maintain. >>> >>> - It is slower because of the overhead of parsing and processing XML >>> documents >>> >>> - It is highly verbose, even so more than Java! >>> >>> - It is difficult to reason about because everything appears as a string >>> (variables, maps, objects, etc ...) which makes it very difficult to know >>> where something was declared or modified >>> >>> - It is highly error prone and brittle (again due to string declarations) >>> >>> - It is not a full programming language (unlike groovy, or any other >>> language that supports a DSL). Thus it has many limitations that forces the >>> developer to write many more lines of code to achieve the same result. >>> >>> - The code is not reusable (limitation of the DSL) >>> >>> - The code is not composable (limitation of the DSL) >>> >>> - Minilang depends on a lot of Java constructs (implementations, not >>> interfaces) that require refactoring, making any improvements to the core >>> API more challenging >>> >>> - Minilang is used inconsistently (different DSL in widgets, services >>> and entities). Hence, we need to keep only a minimal DSL to declare things >>> only. >>> >>> >>> We already have Java based implementations for services and events and >>> there are ideas to implement a Groovy DSL which can be used as easy (or >>> easier) as mini lang and does not have the above mentioned flaws. >>> >>> I therefore like to propose to deprecate the mini lang implementation >>> which means: >>> >>> 1. there will be no new implementations based on mini lang accepted to >>> go into the code base. >>> >>> 2. mini lang and mini lang code will be maintained with bug and security >>> fixes for backwards compatibility and to support existing adopters relying >>> on mini lang. >>> There will be no new features though. >>> >>> 3. we will continously replace the mini lang implementations with Java >>> and/or Groovy code. This will be another good opportunity for contributors >>> to engage in the project. >>> >>> >>> This will certainly be a longer process and we will not stop support for >>> mini lang but I think we should avoid to add more mini lang implementations >>> to the project. >>> >>> What do you think? >>> >>> Regards, >>> >>> Michael >>> >>> >>> >>> >> >> >