📜  Go 和 Erlang 的区别

📅  最后修改于: 2021-09-11 03:37:15             🧑  作者: Mango

1.
Go 或 Golang 是一种静态类型(即编译前需要定义变量的数据类型)的开源面向过程的编程语言。它由 Robert Griesemer、Rob Pike 和 Ken Thompson 在 Google 设计,并于 2009 年 11 月 10 日发布。该语言是使用 C 语言设计的,因此该语言的语法与 C 语言非常相似。 Go 也比其他 C 类型语言更容易学习。优步、DailyMotion、Medium、Soundcloud、Docker、英特尔、百度、Twitch、谷歌等科技巨头都在使用 Go 语言。它主要用于创建静态网站、网页抓取、服务器开发和设计后端。然而,由于语言较慢且冗长,GO 仍然不是很流行。它在开源社区中非常受欢迎。

好处 :

  • Go 非常简单,而且它是由 C 开发的,因此更容易学习,尤其是对于那些来自 C\C++ 背景的人。
  • GO 被编译成机器码,因此速度非常快,生成的二进制文件也非常小。
  • GO 使用 goroutines 支持并发。这意味着不是按顺序线性处理所有程序,而是并行执行任务并相应地执行程序。
  • GO 具有内存安全性,这意味着 Go 没有悬空指针或数据泄漏的风险。 Go 非常安全。
  • Go 的标准库具有大部分必需的功能,可以使用户免于导入库的麻烦。
  • GO 得到了科技巨头谷歌的支持,谷歌也在使用 GO,这足以假设它不会很快消失。
  • 程序可以直接在网络上编辑和运行。

缺点:

  • GO 没有泛型。这降低了代码的可重用性。
  • 对 GO 的库支持非常弱。这是因为语言非常年轻。
  • GO 没有 GUI 库。
  • GO 中的依赖管理器有很多问题。

2.二郎:
ERLANG 是一种函数式开源编程语言,由 Joe Armstrong、Robert Virding 和 Mike Williams 于 1986 年在爱立信计算机科学实验室开发。它是在 Apache 许可证 2.0 下发布的。 Erlang 用于开发可大规模扩展的实时和高度可靠的系统。 Erlang 已被 Whatsapp、国民健康服务 (NHS)、AdRoll、Vocalink 万事达卡公司、高盛、任天堂、bet365、IBM Cloudant 等成功使用。

好处 :

  • Erlang 是一种非常简单的语言,功能也很容易理解。
  • Erlang 具有并发性。
  • Erlang 有垃圾收集功能。
  • Erlang 有最受欢迎的热重载功能。
  • Erlang 的标准库具有易于使用的功能,易于实现的同时也很优雅。
  • Erlang 是一种动态语言,所以我们不必在编译前定义数据类型。
  • Erlang 的社区基础非常强大,规模小,而且以简单为导向。

缺点:

  • 设置 Erlang 可能很难理解。
  • 引入容器后,不再使用 Erlang 的热重载功能。
  • Erlang 的动态排版使其容易出错。

Go 和 Erlang 的区别:

S.NO.

GO

ERLANG

01. Go is a statically typed procedural-oriented programming language developed at Google. Erlang is a dynamically typed functional programming language developed at Ericsson labs.
02. GO is preferred by programmers for the simplicity of the language. Erlang is preferred by the programmers as it is real-time and supports memory-distribution.
03. Concurrency in GO is better comparatively. Concurrency in GO is better comparatively. Concurrency in Erlang is inferior to GO.
04. GO isn’t preferred for fault tolerance. Erlang is preferred for its fault tolerance
05. GO is a relatively young language hence the community is very small. Erlang is backed by a nice community for more than 20 years.
06. GO is easy to learn. Erlang has bigger lines of code. Erlang has bigger lines of code.
07. GO is preferred for its speed and syntax. Erlang is slower than GO.
08. GO is used for server development. GO is used for server development. Erlang is used for developing scalable systems.
09. GO is portable and the binaries generated are small. Erlang is not portable and the size is large.