usage of undocumented low-level functions
Posted: Mon Jun 08, 2015 2:34 pm
This voting is about a fundamental software engineering question.
The background of this voting is a discussion about the usage of Utf8 conversion functions in the module DevBrowser.
Here is a summary of the discussion:
- In BB1.6 there were no such conversions at all.
- For issue-#19 we added conversions to DevBrowser based on the CPC 1.7 proposal using Kernel.
- For issue-#57 Ivan added additional conversions in DevBrowser using Strings.
- Eventually, issue-#57 will be integrated with issue-#19 because it is a follow up change due to an oversight in issue-#19.
- I proposed to change all Utf8 conversions in DevBrowser such that they use Strings.
- Ivan proposed to change all Utf8 conversions in all modules such that they use Kernel.
I am convinced that this is the wrong way because there is no strong reason for using Kernel
for this purpose in DevBrowser. Kernel is an undocumented low-level module
that should only be used in exceptional cases and if there are good reasons for doing so.
Ivan argues that Strings is more for export, i.e. for users of BB outside the BB development itself
and that the Strings.*Utf8* functions are to be changed by the user such that they do a different form
of conversion and such changes should not interfere with Utf8 conversions within BB itself.
I hope that I have summed up the discussion correctly.
Since the question may arise in a different context as well, it is formulated such that the Utf8 conversion is taken
as an example but the voting is not restricted to this special case.
Feel free to add a comment to your vote.
- Josef
The background of this voting is a discussion about the usage of Utf8 conversion functions in the module DevBrowser.
Here is a summary of the discussion:
- In BB1.6 there were no such conversions at all.
- For issue-#19 we added conversions to DevBrowser based on the CPC 1.7 proposal using Kernel.
- For issue-#57 Ivan added additional conversions in DevBrowser using Strings.
- Eventually, issue-#57 will be integrated with issue-#19 because it is a follow up change due to an oversight in issue-#19.
- I proposed to change all Utf8 conversions in DevBrowser such that they use Strings.
- Ivan proposed to change all Utf8 conversions in all modules such that they use Kernel.
I am convinced that this is the wrong way because there is no strong reason for using Kernel
for this purpose in DevBrowser. Kernel is an undocumented low-level module
that should only be used in exceptional cases and if there are good reasons for doing so.
Ivan argues that Strings is more for export, i.e. for users of BB outside the BB development itself
and that the Strings.*Utf8* functions are to be changed by the user such that they do a different form
of conversion and such changes should not interfere with Utf8 conversions within BB itself.
I hope that I have summed up the discussion correctly.
Since the question may arise in a different context as well, it is formulated such that the Utf8 conversion is taken
as an example but the voting is not restricted to this special case.
Feel free to add a comment to your vote.
- Josef