前言
无聊逛github发现goplus,据说是go应用在数据科学上,所以这应该算是一篇标记博客,最近没时间去更多的了解这个内容,所以写着等今后有时间来了解一下。
简介
我们做数据分析也好还是数据科学,大多数用的都是python、Julia或者是R语言,但是今天看到go也能做数据科学了,这令我很感兴趣,所以就大致看了一下。 首先放上github链接:https://github.com/goplus/gop
看一下readme,发现goplus就是使go的代码更加适合数据科学的书写阅读,并且能兼容go,甚至简化了代码量,对于习惯写python的人来说上手应该很快,可以省去go语言本身变量声明时对类型的声明(不过依然是静态语言)。 当然,也有对应的教程,不过不知道是不是时间来不及还是目前开发的不够完全,看到教程内容只感觉过于简单,基本就是举些例子就带过了,更多需要自己对着给出的代码例子自己理解。比如下面列表中突然的3:3.4就会让人一开始很晕。
当然,和大多数语言一样,我们没有本地环境的情况下,依然可以在线运行代码,这里也给出在线平台的网址:https://qiniu.github.io/goplus-play/
除了goplus,go还有类似numpy的库---numgo https://github.com/Kunde21/numgo
使用go实现了ndarray,对于喜欢使用numpy简直不要太友好。
结尾
虽然只是大致看了一下,但是还是有很多感想的。首先,我们学计算机的,知识更新迭代太快了,也许今天python很火,说不定下个五年就有一个更简单,更有吸引力的语言出现引领风潮。想学的东西很多,需要学的东西更多,还是要做好时间管理。再回到今天这个主题,无论是goplus还是numgo,我相信贡献者都是出于对go语言的喜爱以及对它的性能、速度以及编码难度等综合考虑才决定开发这样的一种以go语言为基础的数据科学语言。
确实,go的性能比python强太多,编码难度稍稍大一些,用go来做数据科学也许是一个好的选择,但是依然可以看到存在很多的不足。教程的不完备,整个生态的不完整。人们喜欢python是因为有太多太多的库帮助我们省去了大量的编码时间,对于机器学习、深度学习我们也许原理都不用太了解,只要会调用相关框架的api就好,反观go在数据科学领域的生态完全比不上python(这里提一下go的goro这个库,很类似于keras,有兴趣的可以去了解一下,也是封装成了高级的api),所以了解的人依旧不多,选择使用的就更加少了。
希望go能完善生态吧,个人来说的话还是很喜欢go的,等有时间了也想为自己感兴趣的一些东西做点贡献。