七牛为什么没用erlang而用golang呢?

519 views
Skip to first unread message

Karl Ma

unread,
Sep 18, 2012, 1:57:33 AM9/18/12
to golang...@googlegroups.com, erlang...@googlegroups.com, ECUG~erlang中文用户组
对于这种大型的应用erlang有什么问题吗?golang有什么优势呢?

--
Karl Ma

Zhibin Zheng

unread,
Sep 18, 2012, 3:22:48 AM9/18/12
to erlang...@googlegroups.com, golang...@googlegroups.com, ECUG~erlang中文用户组
这个问题比较难回答啊,说Golang垃圾嘛,就会觉得七牛的策略有点搞怪。说Erlang不如Golang嘛,又非常违心。

只要有人用,语言又没有消亡,肯定有他存在的意义的,例如拿来教学或者做为prototype也是作用的一种。

Witeman

robbinfam

unread,
Sep 18, 2012, 3:57:02 AM9/18/12
to erlang...@googlegroups.com, erlang...@googlegroups.com, golang...@googlegroups.com, ECUG~erlang中文用户组
七牛觉得golang更有前途吧,BTW,我会选择更成熟的技术:)

发自我的 iPhone

anderson howl

unread,
Sep 18, 2012, 5:16:28 AM9/18/12
to ec...@googlegroups.com, golang...@googlegroups.com, erlang...@googlegroups.com
在 2012年9月18日星期二UTC+8下午1时57分35秒,karl写道:

> 对于这种大型的应用erlang有什么问题吗?golang有什么优势呢?
>
>
> --
> Karl Ma

作为linux用户,如果没有linux的客户端,这样的网盘我是不会用的,顺便提句,我现在用的是yun.io,有linux客户端,erlang的后端(可以从招聘中看出来),但是同步太慢,而且感觉同步算法不行,勉强能用

Zhang Bony

unread,
Sep 18, 2012, 8:17:41 AM9/18/12
to erlang...@googlegroups.com
golang学习曲线更平缓一点,以后可能会比erlang更大众一点。而且google在golang上的投入是不少的,golang的发展也是有保证的。但是就目前来看erlang其实是更好的选择,平台更成熟。

Rico

unread,
Sep 18, 2012, 8:24:16 AM9/18/12
to erlang...@googlegroups.com
我一直怀疑是不是 OO 的问题

-- 
Rico
Sent with Sparrow

shiwei xu

unread,
Sep 18, 2012, 5:04:47 PM9/18/12
to golang...@googlegroups.com, ec...@googlegroups.com, erlang...@googlegroups.com
呵呵,七牛早就不做网盘了(去年10月停止更新),否则以我们3个月就做出windows,web,andriod,iphone,ipad端的业绩,mac,linux端早出了。七牛现在的业务是面向开发者的云存储业务,做的是类似amazon的s3,不过我们不只是s3,也包括一些数据处理能力,比如图片缩略图,打水印,视频转码等。
--
官网: http://golang-china.org/
IRC:  irc.freenode.net     #golang-china
@golangchina


--
许式伟

shiwei xu

unread,
Sep 18, 2012, 5:23:43 PM9/18/12
to golang...@googlegroups.com, erlang...@googlegroups.com, ECUG~erlang中文用户组
 我早在07年尝试过用erlang做云存储,不流畅,主要问题有二:

1、动态类型。实际上云存储的品质要求是比较高的,包括性能,测试覆盖面等等。重构是比较频繁,所以我希望用静态类型的语言,对重构友好。编译上第一道单元测试,这话是非常有道理的。

2、变量不可变。原则上我倾向于支持变量不可变,但成为约束就不太好,会多出很多临时的小函数,影响代码阅读。我一直对编程范式非常在意,如果一个语言不能用最直观的发生表达程序员的想法,我就不太喜欢。
--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina


--
许式伟

Wei Cao

unread,
Sep 18, 2012, 10:11:08 PM9/18/12
to erlang...@googlegroups.com, golang...@googlegroups.com, ECUG~erlang中文用户组
在 2012年9月19日 上午5:23,shiwei xu <xushi...@gmail.com>写道:
 我早在07年尝试过用erlang做云存储,不流畅,主要问题有二:

1、动态类型。实际上云存储的品质要求是比较高的,包括性能,测试覆盖面等等。重构是比较频繁,所以我希望用静态类型的语言,对重构友好。编译上第一道单元测试,这话是非常有道理的。

随着静态语言scala啊甚至c++0x使用类型推导(type inference)之后,静态和动态类型语言之间的差异比较小了,erlang中也可以用dialyzer来进行类型推导和检查。
 
2、变量不可变。原则上我倾向于支持变量不可变,但成为约束就不太好,会多出很多临时的小函数,影响代码阅读。我一直对编程范式非常在意,如果一个语言不能用最直观的发生表达程序员的想法,我就不太喜欢。
 
这一点赞同,经常要命名新变量为State1,State2啥的,不太舒服。
 


在 2012年9月18日星期二,Karl Ma 写道:
对于这种大型的应用erlang有什么问题吗?golang有什么优势呢?

--
Karl Ma

--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina


--
许式伟



--

Best,

Wei Cao

Falood Hao

unread,
Sep 18, 2012, 10:26:23 PM9/18/12
to xushi...@gmail.com, golang...@googlegroups.com, ec...@googlegroups.com, erlang...@googlegroups.com
那不是跟又拍云的业务差不多?

2012/9/19 shiwei xu <xushi...@gmail.com>

Bob

unread,
Sep 18, 2012, 10:28:58 PM9/18/12
to erlang...@googlegroups.com, golang...@googlegroups.com, ECUG~erlang中文用户组
Hi,

如果可以的话,可以分享一下golang相关实践,以及golang和erlang比较等等。

多谢。

-- 
Bob
Sent with Sparrow

张浩翔

unread,
Sep 18, 2012, 11:39:53 PM9/18/12
to erlang...@googlegroups.com, golang...@googlegroups.com, ECUG~erlang中文用户组
和七牛的聊过, 他们非常推崇golang,我想为什么用golang, 肯定在他们的书里面有写 《Go语言编程》

shiwei xu

unread,
Sep 19, 2012, 12:32:29 AM9/19/12
to Falood Hao, golang...@googlegroups.com, ec...@googlegroups.com, erlang...@googlegroups.com
确实有些类似。不过我们专注做云存储这块的业务,不像又拍是既做2B(又拍云),又做2C的业务(又拍网、花瓣)。
--
许式伟

张沈鹏

unread,
Sep 25, 2012, 5:07:08 AM9/25/12
to erlang...@googlegroups.com, golang...@googlegroups.com, ECUG~erlang中文用户组



有人研究过这个语言吗?

忽然看到的


rust 是最近 mozilla 发布的一个新的系统编程语言,它支持多种编程范式,使用 actor model 并行执行。rust 是静态类型的编译型语言,使用 rust 编写的编译器前端(所谓的自举),后端则是久仰大名的 LLVM。rust 有指针,能够直接操作内存,加上前述的特性,我们有理由相信它“将会像 C++ 一样快”。rust 是 mozilla servo project 的副产品,计划中 rust 将替代 C++ 实现 firefox 的一部分核心;虽然 rust 似乎没有在服务器端的定位,但我觉得它日后必定不可能只蜗居在客户端,它的许多优秀的特质让我相信它可以在很多领域大展拳脚。除了上文提及的,rust 的还有几个比较重要的特性如下:类型推导(仅局部变量)、泛型(简单的,非图灵完备的)、隔离的 task 并发,使用消息传递进行通信、支持 move 语义的唯一性指针、更安全的内存机制,不会缓冲区溢出,使用前初始化、可选的部分的 GC、utf-8 字符串,国际化支持、类似 python/ruby 的简洁语法等。rust 在未来的对手应该有 google go 和 scala 等,我更看好 rust,下面是简单的 rust 代码。

shiwei xu

unread,
Sep 25, 2012, 5:15:35 AM9/25/12
to erlang...@googlegroups.com, golang...@googlegroups.com, ECUG~erlang中文用户组
我在赖永浩推荐rust的时候看过。不太喜欢。还是喜欢 go 的简洁。
--
许式伟

Logan Zhou

unread,
Sep 25, 2012, 11:02:48 AM9/25/12
to erlang...@googlegroups.com, erlang...@googlegroups.com, golang...@googlegroups.com, ECUG~erlang中文用户组
go和rust的应用场景还是有区别的,比如go没有完整的oo。

这里不讨论oo好不好的问题。

发自我的 iPad

Max Fung

unread,
Oct 11, 2012, 9:37:30 PM10/11/12
to erlang...@googlegroups.com
至少本人这几年所做的应用(股票数据分析,网页游戏。。。),都没有体现出erlang的优势,什么分布啦,并发啦,实际应用环境中不需要,也不允许。

喜欢erlang,喜欢它的错误处理哲学。

未来倾向于使用node.js 去代替 erlang 完成相应的任务。

sharp

unread,
Oct 11, 2012, 10:19:32 PM10/11/12
to erlang...@googlegroups.com
实际环境为什么允许node不允许Erlang ?

是不是你的应用没有达到一定的规模? 诸如4399和淘宝的规模

Fan Yu

unread,
Oct 11, 2012, 10:45:36 PM10/11/12
to erlang...@googlegroups.com
---实际应用环境中不需要,也不允许。 
同问为何不允许?

同时,我不认为node.js和erlang是同类的东西

Max Fung

unread,
Oct 12, 2012, 5:36:52 AM10/12/12
to erlang...@googlegroups.com
当然,进行的只是一些微型项目。

更正一下,并发还是有用到的,至少再socket链接那里会大量用到。

股票分析,有些业务逻辑不可以切分或切分困难,而且速度要快。每秒钟的数据量很大,如果并发出单个股票的分析,在的综合分析的时候就需每个股票分析完毕。有时候单个股票的数据量太大会导致其它股票等待。分布的话,更不用说了,实时性无法达到。当然这些跟具体算法有关。

页游跟端游不同,跟运营关系很密切,根据一般的运营策略,在服务器(考虑到成本,云服务器或vps比较划算)达到一定的ARPU值就会开新服,分布模式基本用不到。

node.js 是接下来想要用的。

peng wang

unread,
Oct 19, 2012, 6:14:55 AM10/19/12
to erlang...@googlegroups.com
确实,对于游戏服务,分布式的思想用的是比较少的,服与服之间基本上不发生关系,当然也有,但也比较简单,比如跨服的pk.确实没有必要用erlang来做游戏服务的开发.
Reply all
Reply to author
Forward
0 new messages