为什么是系统语言,有没有垃圾收集器?
为什么Golang是一个系统编程语言。
什么是系统编程?
系统编程是写软件扩展或者加强操作系统的功能。
系统程序的一个好的例子是鼠标和键盘的驱动程序,操作系统带有的文件管理系统。
甚至是整个的windows或者是Mac系统。
电脑和手机上下载的Apps,临时博客页面不被分类为系统编程。
当Google开发Go语言时,有一些希望解决的问题。
编译时间,不牺牲太多的性能。
快速的执行时间相对于解释语言。
静态二进制,不需要担心系统依赖或者是特殊的运行时。
奏效的并发模型,容易些,容易用正确的方式做事。
所有这些属性让Golang一个好的候选者作为系统编程语言。
下面讨论一下对你来说并不是那么合适作为系统语言。
有一个严苛的(severe)速度或者空间限制。
可能你在写一个操作系统的内核,驱动,微控制器。
Go似乎没有足够的灵活性(Flexibility)。
非常有限的内存作为一个安全测度,接着你最好确保分配或者释放之前借来的有限的内存。
你仍然能够在技术上使用Golang,让事情工作。但是c/c++仍然是你最好的赌注。
另一个方面,Go可以是一个有竞争力的选择对于c++,Java,python。
在其他的用例中例如云业务流程协调工具(cloud orchestrator ),kubernetes,Docker。
特别是你在一个初创公司需要快速开发,相比较c++。
但是同时,它仍然完整的使用Go的扩展性和并发功能。
这就是说,来看一个很简单的例子来检查权限。使用内置的os库来获取工作目录,并且存储到一个变量里。