Go Appengine SDK提供了作为发行版的一部分编译的Go编程语言。我想知道是否有一个很好的理由,因为我看起来像是不好的做法。一个不好的原因是安全性,因为如果下载并执行已编译的代码,您就不知道自己在运行什么。
Go是开源的,你应该已经安装了它,所以它对我来说没有多大意义,为什么它以编译形式分发。
答案 0 :(得分:1)
我认为你被误导了。
Go Appengine SDK包含以源代码形式在生产中使用/可用的Go运行时和标准库。
下载最新的SDK,将其解压缩,您将在其中看到一个文件夹go_appengine/goroot/src
。这是Go标准库的源代码,它不会编译成包对象或本机可执行二进制文件。
之所以包含它,是因为您将拥有与生产中使用的完全相同的版本,并且您也不需要寻找使用/要求的确切版本大部分时间不与最新的Go版本相同(目前最新的Go版本为1.4.2,AppEngine使用的版本为1.4.1,于2015年2月18日发布,直到那时它是Go 1.2,你可以看到它已经过时了 - Go 1.3完全被跳过了。
此外,由于AppEngine上的应用程序在沙盒中运行,因此Go的许多功能都不可用,例如:网络连接,访问文件系统等。