查看: 2806|回复: 0
打印 上一主题 下一主题

[其他] Go 是互联网时代的C语言

[复制链接]

418

主题

21

听众

7925

积分

管理员

Rank: 9Rank: 9Rank: 9

纳金币
7448
精华
30

活跃会员 优秀版主 荣誉管理 论坛元老 周年庆

跳转到指定楼层
楼主
发表于 2018-8-22 14:59:21 |只看该作者 |倒序浏览

作者:freeman5100

原本2018年春节就应该好好学一下Go语言的,一直拖到今天。有点对不起一位前公司的老朋友Steve涛。

Go = C语言 + OOP。或是Go = C语言 + python。Golang就是在几十年不变的经典C语言基础上,增加了封装性和并发性。

特别是增加了字典和列表类型的处理。

Go 一般比 Python 要快 30 倍??这个要看如何对比。

Go 使用起来异常快速并且简单。其唯一的创新之处是 goroutines 和通道。Goroutines 是 Go 面向线程的轻量级方法,而通道是 goroutines之间通信的优先方式。

Go 引入的新概念是「defer」声明,以及内置的带有 goroutines 和通道的并发性管理。正是由于 Go 的简单性,任何的 Python、Elixir、C++、Scala 或者 Java 开发者皆可在一月内组建成一个高效的 Go 团队。

学习python/django我用了6个月才完全掌握。是不是太慢了?学习Go的话,一个月可以吗?

使用 Go 语言的缺点


缺点 1:缺少框架

Go 语言没有一个主要的框架,如 Ruby 的 Rails 框架、Python 的 Django 框架或 PHP 的 Laravel。这是 Go 语言社区激烈讨论的问题,因为许多人认为我们不应该从使用框架开始。在很多案例情况中确实如此,但如果只是希望构建一个简单的 CRUD API,那么使用 Django/DJRF、Rails Laravel 或 Phoenix 将简单地多。

缺点 2:错误处理


Go 语言通过函数和预期的调用代码简单地返回错误(或返回调用堆栈)而帮助开发者处理编译报错。虽然这种方法是有效的,但很容易丢失错误发生的范围,因此我们也很难向用户提供有意义的错误信息。错误包(errors package)可以允许我们添加返回错误的上下文和堆栈追踪而解决该问题。
另一个问题是我们可能会忘记处理报错。诸如 errcheck 和 megacheck 等静态分析工具可以避免出现这些失误。虽然这些解决方案十分有效,但可能并不是那么正确的方法。

缺点 3:软件包管理

Go 语言的软件包管理绝对不是完美的。默认情况下,它没有办法制定特定版本的依赖库,也无法创建可复写的 builds。相比之下 Python、Node 和 Ruby 都有更好的软件包管理系统。然而通过正确的工具,Go 语言的软件包管理也可以表现得不错。

liteIDE可以在保存时自动格式化代码,看上去代码不象C语言那么乱了,真是棒!



分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-16 16:48 , Processed in 0.095469 second(s), 27 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部