erlang golang学习哪个?
个人建议学习Golang,主要原因如下:
Erlang的硬伤在于代码的可读性、表现力。为什么说是硬伤? 因为对一门语言来说,语法是不大可能会大幅度变更的, 而且不会出现大的变化;
Erlang的软肋在于高质量的库少。尽管有不少杀手级应用, 同样Go在这方面也是软肋, 这一点对于一个不到五年的语言有情可原, 但对于一个20多年的语言是不是有点说不过去;
Erlang不合群。 这主要体现在跟其他语言的交互性上, 当然这也有深层次的原因, Erlang本身有自己的哲学, 如出错恢复机制, 你融入一个其他语言的东西进去, 这帐就不好算,就好比你硬要让一个喝咖啡的跟一个吃大蒜的坐在一起, 总之你写一个Erlang的port远远比Go复杂, 甚至比Python/Java还要复杂, 这就造成了Erlang在底层编程上效果不是很好, 没法利用linux已有的很多优秀成果,我一直认为Erlang的什么的mysql/pg/oracle驱动都没有必要存在, Erlang一定是一个self-container应用, 你只要用到了其他东西, 根据木桶理论, 你就不敢号称9个9,以系统的眼光看问题, 我觉得一个系统的鲁棒性不能依赖于某一组件, 这也是为什么爱立信本身的Erlang应用并不广泛;
Erlang的的报错信息太让人纠结了。在Erlang中一切都是并行的, 所以它根本不care是物理哪一行出错, 只跟Actor绑定, 然后告诉你Actor的ID和出错代号。这一点Golang就做了很好的折中, 不需要并行的时候你老老实实的写串行代码, 需要并行的时候也有较复杂的机制来应对, 合乎情理。
go语言适合做什么
Go语言主要用作服务器端开发。
其定位是用来开发“大型软件”的,适合于需要很多程序员一起开发,并且开发周期较长的大型软件和支持云计算的网络服务。
Go语言融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性,不仅提高了项目的开发速度,而且后期维护起来也非常轻松。
编译器
当前有两个Go编译器分支,分别为官方编译器gc和gccgo。官方编译器在初期使用C写成,后用Go重写从而实现自举。Gccgo是一个使用标准GCC作为后端的Go编译器。
官方编译器支持跨平台编译(但不支持CGO),允许将源代码编译为可在目标系统、架构上执行的二进制文件。
go语言之所以能成为我国最火的语言,是因为编写服务端高并发程序的优势。我大中华区但凡pv,日活高点的网站,应用,谁没点这个需求。
这个领域中最优的几个:golang,erlang,rust。日常生活中人类社交是当今社会上的必然性,人们也伴随着科技时代的发展,智能电子产品的使用中也必然少不了语言输入,文字的编辑,语言转换的便利都均可来源于go语音输入法。
erlang转golang好转吗
好转。
因为 云巴系统对高并发、低延迟的需求,我们对各个语言、平台做了很多的调研比较工作。这自然就包括致力于开发高并发应用的 Go 和 Erlang。Go 对高并发的支持通过 goroutine 实现。goroutine 可以理解为轻量级的 线程(thread)。
同一个 Go 应用创建的 goroutine 共享地址空间。Erlang 的高并发通过轻量级 进程(process)实现,每一个进程都有独立的状态记录。另外,使用 goroutine 要注意,goroutine 运行完毕后,占用的内存放回内存池备用,不会释放。对于每一个任务都需要有独立状态的场景,Erlang 的 process 更有优势。
弱弱的问下golang跟erlang区别大吗
区别很大。
- 语法区别很大。 golang是类C语言
- 运行机制不同。 golang直接生成二进制可运行文件, Erlang是运行在erlang虚拟机上。
...
如何看待许式伟谈Go Erlang并发编程差异
许大牛别天天光cerl这个那个模型了,都7年时间了,不开源代码,不讲数据,还把它拉到erlang和go层面比较。从我对erlang和go语言实现层面的理解,cerl实在不在一个层上,甚至难听点就是一坨狗屎。输了我余字倒着写。理由是erlang单进程调度实现至少有二万行c代码,从第一版发布到现在超过9年,还在大规模完善调整,时不时还爆出bug。我自己早年也做了很多这样的狗屎,深有体会做类似基础框架的难度。
大家做技术的,show me the code 才是最真的,一堆云里雾里东西确实没看懂,从文章对Erlang消息和调度工作原理的表述离谱到到想纠正都不知道从何入手,照理说许大牛不应该犯这种错误的。
再,语言和系统存在的目的是为了解决问题,都可以找到最适合自己的场景。erlang存在20多年继续往前持续改进,有自己鲜明的特点,会走他自己的路。我们能做的是在路上一起完善系统,而不是费时在这口水。事实上我们很多工具类的系统也是用go实现的。