Golang重新从零开始之旅

闲扯淡

第一次接触golang还是在4年前?当时的版本大概是0.9?

当时刚用python完成了一个ETL的项目。为了压榨机器的性能,python多进程是必不可少的。于是再一次被多进程搞得痛不欲生,内存的浪费(每个进程都要加载相同的数据),多进程之间的协同(硬是塞了多个队列到各个进程里),还有时不时出现的僵尸进程。虽然我仍然十分喜欢python,但是这些始终解决不了的问题,让我生出了寻找一个替代品的想法。

最初是打算使用erlang的。其实当时接触erlang有一阵子了,对于erlang的语法什么的也算比较熟。但是最后还是放弃了,原因就是对于语言的偏好吧:对于一个习惯了python中简单方便的使用list、map进行各种组合的人来说,erlang的数据结构用起来太麻烦了;另外就是感觉erlang的社区有一种很封闭的感觉?提到erlang,多说一句,这确实是个很好的语言,有很多非常好的特性,但是始终非常小众,原因我不认为是什么函数式语法的问题,更多的问题我觉得是社区吧。

在使用erlang重新实现了一部分python的功能模块之后,我终于放弃了蛋疼的一个个把python的map改成erlang的proplists,放弃了一个个把python中的for循环改成erlang中的尾递归。这个时候我遇到了golang。

最初如何发现golang的已经记不清了。随着了解的加深,对这门语法简单、性能不错,并发容易实现的语言,产生了很强的好感。随着golang社区的重磅项目陆续诞生,甚至认为可以在分布式计算领域诞生一个可以替代hadoop的项目。不过目前来看社区的主要发展方向好像还是基础设施的建设上,重磅的项目还是主要集中在容器、集群管理、监控这个方向。虽然对这个语言很有好感,但是可惜的是还是没有用起来。只是还持续的关注着golang和golang的社区。

最近开始看rust,想着把golang也重新拿来把玩一番,于是有了这堆牢骚。多余的不说,只是希望能把golang重新熟悉一下。顺便熟悉熟悉用hugo搭blog,熟悉熟悉markdown,熟悉熟悉whatever。

 
comments powered by Disqus