The 4GL implementation as represented by OpenEdge is filled with quirks, bugs, edge cases, inconsistencies and hidden non-intuitive behavior. These bad or confusing behaviors we often refer to as "quirks". When implementing replacement features in Java, the natural tendency for a developer would be to implement a cleaner and simpler approach that does not implement these quirks.
The problem is:
If someone CAN rely upon a 4GL quirk, then someone WILL rely upon it.
This has been proven over and over. It doesn't matter if a quirk is something that is not a recommended or common thing to use. Someone somewhere will decide to use it OR they may accidentally use it without knowing.
For this reason, ALWAYS ASSUME that FWD must have full compatibility with all quirks.
It is only in the case where we cannot see how someone could rely upon the quirk that we may deliberately choose to be incompatible. Any such cases of incompatibility must get explicit approval in advance. In this case we will leave behind tasks in Redmine that document the quirks and explain why we are deliberately being incompatible.
© 2004-2019 Golden Code Development Corporation. ALL RIGHTS RESERVED.