Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Go language should become an ANSI and ISO standard. #28117

Closed
beoran opened this issue Oct 10, 2018 · 6 comments
Closed

Go language should become an ANSI and ISO standard. #28117

beoran opened this issue Oct 10, 2018 · 6 comments

Comments

@beoran
Copy link

beoran commented Oct 10, 2018

In certain environments, such as for government contracting in certain countries, or for certain large corporations, or for developing safety critical applications using certain international standards, only programming languages that are officially standardized may be used. While Go would be an excellent language for such government or safety critical applications, it's acceptance is hampered due to the lack of an official standard.

While this is in essence a formality, which would entail submitting the current Go language specification with the ANSI, and then have it propagate to the ISO, I do appreciate that will take quite some time and effort. But to further the acceptance of Go language, I would propose that Google invests the necessary resources to make this happen, with support from the community to edit the standard document if needed.

The standard should probably be based on Go 1, since Go 2 is still largely undecided and probably 5 years in the future.

@agnivade
Copy link
Contributor

Issues like these are not usually tracked in the issue tracker. It is just for bugs and proposals to the language.

But I am not sure where should they be tracked. @bradfitz ?

@beoran
Copy link
Author

beoran commented Oct 10, 2018

Yes, you are right, but I didn't quite see where too raise this suggestion. Maybe on the mailing list in stead?

@bcmills
Copy link
Contributor

bcmills commented Oct 10, 2018

or for developing safety critical applications using certain international standards

Note that according to the Go license:

go/LICENSE

Lines 17 to 27 in f776d51

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

I would not advise its use in safety-critical applications.

@beoran
Copy link
Author

beoran commented Oct 10, 2018

It is rare that the compiler builder gives any warranty, although there are some safety certified C compilers. But for similar certified Go compilers to be developed, we need an official standard first.

Even if the compiler is not certified, you can still use it if you validate it yourself. This implementation of go has extensive unit tests which simplifies such validation a lot.

I know of some safety critical software that is implemented in C and compiled with GCC. As a language, Go is far safer than that, and that is why we need a standard, to be able to get away from C for safety applications.

@ianlancetaylor
Copy link
Contributor

This should be discussed on golang-nuts, not the issue tracker. Thanks.

@beoran
Copy link
Author

beoran commented Oct 10, 2018

Ok, I will. Sorry for the noise.

@golang golang locked and limited conversation to collaborators Oct 10, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants