晨报时代网免费收录优秀网站,为了共同发展免费收录需做上本站友情链接,朝阳分类目录网的作者才会审核收录,不做链接提交一律不审核,为了避免浪费时间:收录必看!!!
  • 收录网站:128
  • 快审网站:0
  • 待审网站:84
  • 文章:28936
当前位置:主页 > 新闻快讯 > “许式伟:相比 Python,我们可能更加要 Go+”

“许式伟:相比 Python,我们可能更加要 Go+”

更新时间:2021-05-31 05:00:01 浏览:

由ecug(effectivecloudusergroup,实效云计算账户组)主办的2021 ecug con今天在上海举行,七牛云ceo许式伟以go+和数据科学为主题发表主题共享,并发布了数据

刚才,我们在闲聊ecug越来越高级了,其实我也变得像个讲师了。 今年是ecug社区的第14年,这个活动也是第14届ecug con。 其实这次本来应该在去年做的,但是因为延期了。

其实,我在ecug一直贯彻的理念有两个:

第一,继续写代码。 每次来ecug都很紧张,所以不可能什么都没有哦。 所以这也是一个很好的机会,可以让自己继续留在技术第一线;

另外,我每年分享的主题有一定的延续性,呈现出我自己对未来的思考语境。

从去年开始,我就在谈数据科学。 前三年是在基层的小实践故事。 其理由是,我认为云计算最初的时代应该属于机器计算,也就是虚拟机,第二代是云计算。 我认为这是一场被称为基础设施的革命。 也就是说,第一阶段是资源,第二阶段是基础设施。 第三阶段,我的评价是应用计算,这涉及前端和后端的协同。

“许式伟:相比 Python,我们可能更加要 Go+”

从去年开始,我的分享转向了数据科学。 一个非常重要的因素和趋势是数据时代的到来。 特别是随着年份的推移,数据大量数字化后,各行各业都有了涉及数据科学的广泛应用。

去年也相当巧,我一头脑发热就编了语言。 我以前做过相当多种语言,参加者也有一些。 但是,那是肯定的,我不认为有一天会商业化。 也许偶尔会有企业使用它进行商业化,但基本上并不是从出生的那一刻就开始走向商业化的。

“许式伟:相比 Python,我们可能更加要 Go+”

年我在布道go上花了很多精力。 因为当时在打初创企业,所以很难召集人。 好的招聘逻辑之一是让别人感兴趣,企业的技术氛围很好。 go+是我第一个希望商业化的语言,但现在还不太普及,1.0还没有发布。 我自己一想到go+和数据科学,就想说说为什么go+认为有商业化的机会。

“许式伟:相比 Python,我们可能更加要 Go+”

我今天谈论的话题大致包括四个方面:

语言的迅速发展

数据科学的迅速发展

go+的设计理念

go+实现的迭代

语言的迅速发展

首先,我们谈谈语言的迅速发展。 程序员对这个话题非常感兴趣。 分三个部分谈语言的快速发展史。

第一,静态语言的迅速发展史。 我选的是top20的语言。 这是根据现在最受欢迎的语言排行榜选出的。 排列前20名的语言的话,大致是这样的。 最先发表的是c,至今仍位居排行榜前三位。 第二个是c +、对象c、java、c#、go、swift和go+。 我们可以看到感兴趣的现象。 每6-8年出现一种新的、影响较大的静态语言。 这是生产力反复的特征。

“许式伟:相比 Python,我们可能更加要 Go+”

二是脚本语言的快速发展。 你会发现非常不同。 首先是visual basic,然后是python、php、javascript和ruby。 脚本语言是集中大爆发的,几乎全部来自java出现前后,90年代的前五年。 这是一个非常有趣的事件,非常值得思考,背后一定有一点内在的原因。

“许式伟:相比 Python,我们可能更加要 Go+”

三是数据科学相关语言的快速发展。 但是数据科学选择了top50。 因为top20太少了。 真有趣。 最早的是sql,第二个sas,matlab,python,r,julia。 python一开始没想到会成为数据科学语言,但最终成为了人工智能行业最受欢迎的语言。

这里还有一个明显的特征。 由于它的跨度和静态语言一样大,数据科学的快速发展实际上是古老而漫长的,但并没有迅速发展。 静态语言每6-8年重复一次,但数据科学语言不是这样,中间跨度特别大。 但是,我认为现在进入了数据科学的加速期。

“许式伟:相比 Python,我们可能更加要 Go+”

你可能会想,为什么我要分解语言的快速发展史? 一些结论是关键。

首先,我认为脚本语言是特定历史阶段的产物,长期以来,静态语言更具生命力。

其次,数据科学是计算机的第一诉求,第一台计算机曾用于计算。 历史悠久,但进步缓慢。 因为数据大爆发的时代一直没有到来。

数据科学的迅速发展

谈完语言的快速发展,接下来我们来谈谈数据科学的快速发展。 数据科学可以分为几个阶段。 最初阶段我也叫原始期,数学软件时代。 这个时期基本上可以总结为两个特征。 第一个是在有限的行业中,最典型的是商业智能( bi ); 第二个有限的数据规模,典型的是矩阵数非常有限,其他软件基本上也是如此。

“许式伟:相比 Python,我们可能更加要 Go+”

这个时期的数据科学优势是什么? 首先不是基础设施,实际上是数学应用,但是统计、预测、内在发现、计划、决定等都非常完整强大。

第二个时期我称之为数据科学的基础建设时期,真的把数据科学建成了基础设施。 最典型的代表就是大数据的兴起。 map/reduce是谷歌2004年发表的论文,2006年出现了hadoop,2009年出现了spark。 我认为这是大数据兴起的一个阶段,也是数据科学基础设施化的开始。 这个时期与刚才的数学软件不同,优先考虑大规模的解决能力,并不是优先考虑功能的强弱,其功能相对有限。

“许式伟:相比 Python,我们可能更加要 Go+”

深度学习的兴起和大数据的兴起间隔长于时间,从深度学习那一年开始有tensorflow,从那一年开始有torch。 这是知名度最高的两个深度学习框架,深度学习的本质是从数据中自动导出y=f(x )的f函数。 我们平时程序员实现这个f,深度学习最核心的概念是机器如何自动生成这个f,从而达到最佳曲线拟合。 这实际上是基于测量结果的自动计算。

“许式伟:相比 Python,我们可能更加要 Go+”

假设今天没有牛顿三大定理。 但是,我有很多测量数据。 理论上应该可以发现牛顿的三大定理。 这是深度学习的核心逻辑。 与大数据不是相互替代的关系,而是能力的强化,越来越多,但实际上如何进一步提高大数据的能力,使之更加强悍呢?

“许式伟:相比 Python,我们可能更加要 Go+”

有观点认为,当今经济快速发展背后的科技驱动因素其实只有两个核心,一个是计算,一个是数据。

数据的核心是我们今天谈论的数据科学。 数据科学实际上达到了一种新的范式。 有第四种范式,有一种企业也被称为第四种范式。 我认为数据是更高层次的生产能力,它与计算相比站在更高层次的维度上。

前面是数据科学的两个阶段,第三个阶段是什么? 数据科学的大爆发时期,也就是今天,用马云来说,应该是dt时代。 原始时期是在有限的行业、有限的数据规模内进行的能力。 未来首先是全行业的,首先是行业不限的商业智能( bi )这样的范畴,第二是大数据,第三是随处可见,包括云、高端智能手机、嵌入式设备等,这些都嵌入了我们所谓的数据智能。

“许式伟:相比 Python,我们可能更加要 Go+”

这意味着,当今移动网络的崛起主宰着众多企业,网络的平民化和互联网应用的诞生催生了bat。 但是,现在我们知道,新兴的比较牛的企业,比如字节跳动这样的企业,其实不是互联网的成功,而是数据科学的成功。 即使在今天,数据科学也是平民性质的,其门槛并不高。

“许式伟:相比 Python,我们可能更加要 Go+”

但是,智能应用已经产生,智能应用并不局限于嘀嗒等局部行业的生产力增长,各行业都受到了数据智能,也就是我刚才提到的第四种模式的影响。

数据和数据科学无疑是下一代生产力的支撑。 今天,字节跳动、快手这样的新兴企业诞生了,但他们只是开始,绝不是结局。

在数据科学的原始时期,数据只是副产品。 想象一下。 在bi行业,数据是副产品,只用于后期的运营决策。

但是今天在很多应用中发现数据是素材。 这是非常不同的状态。 所以,我称之为数据科学的大爆发期。 这是我认为今天为什么需要go+的理由,也是其背后的历史背景。

数据科学的未来一定是通用语言和数学软件的融合,完成真正意义上的数据科学基础设施化。 但在今天,数据科学的基础设施化还没有完全完成。 这是我自己的评价。

今天的python就算了,为什么还要go+?

当然很多人怀疑,今天的python已经很好了,在深度学习行业被广泛采用,但是为什么python还不够好,还需要go+? 其实,我觉得python不会成为基础设施。 那是脚本语言,我认为只是特定历史阶段的需要。

数据科学本身是一场计算力革命,即使在芯片行业,数据也可以推翻计算。 这是nvidia翻intel的中心理由。 上层软件行业更是如此,一定要出现新的基础设施运营商。

计算力本质上是计算量很大的业务,python背后有c,光靠python还是不行的。 今天,c和python支撑着整个深度学习,但数据科学还需要进一步下沉。 下沉的结果是什么?

这就是我们今天需要go+的原因! 综上所述,我自己为什么认为go+有商业化的机会? 当然,商业化并不一定就是赚钱。 请不要误会。 语言对很多人来说可能是赚不到钱的东西,但这并不意味着它不重要,也不重要。

go+的设计理念

谈完数据科学的快速发展,接下来我们来谈谈go+的设计理念。 go+为什么像今天这样? 计算背后的是程序员,而数据科学背后的是数据科学家或分解师。 这两个作用其实还是不一样的。 虽然两者都是技术工作。 我觉得培养程序员比较容易。 今天,程序员数量非常庞大,但数据科学家数量相对较少。 因此,几年前深度学习兴起以后,所谓的ai工程师的薪资被炒了,比程序员高了很多。 其实是因为数据科学家不好找。

“许式伟:相比 Python,我们可能更加要 Go+”

这个角色承载着技术和商业的联系,要找到有两种能力的人并不容易。 数据科学首先是技术工作,必须了解技术能力和商业。 即使在今天,我们也没有培养非常系统化的数据科学家的能力,没有这样的个人系统方法论。

那么,go+的核心理念是什么?

第一,我们试图用go+统一程序员和数据科学家。 他们之间有共同的语言,允许双方自然对话。 我认为这是go+最核心的思考点。 go+非常重要的核心逻辑之一是用一种语言让两个角色进行对话。

基于此,我们对设计逻辑进行了一些扩展。 首先,go+是静态语言,语法完全兼容go二,形式上比go更像脚本,有更低的学习门槛。 o在静态语言中,学习门槛可能很低,但还不够,不像python那么低。第三,自然地,我们要建立数据科学语言,所以必然要有更简洁、数学计算语言语法的支持。4 它支持静态编译为可执行文件,也支持编译为字节码以解释执行。

“许式伟:相比 Python,我们可能更加要 Go+”

为什么选择语法完全兼容go呢? 首先,我坚决认为静态语言具有更强的生命力,能够跨越历史的循环。 也不难理解,语言必须跨越周期,语言的生命周期一般都非常长。 我们也不局限于此,也不能说现在流行什么,如何决定语言的设计,如何找到实际上能够跨越周期的要素。

“许式伟:相比 Python,我们可能更加要 Go+”

第二,为什么是go? 个人认为,在静态语言中,go的语法设计最简单,学习门槛也最低,即使你没有学过静态语言,也可以很容易地掌握go。 我们企业最初招聘的是go程序员,但是大部分招聘者不会go。 在我们使用go的时候,世界上很少有人认为go是未来的流行语言。 根据我们自己实践的经验,go语言两周的学习基本上足够了,是一门门槛非常低的静态语言。

“许式伟:相比 Python,我们可能更加要 Go+”

但是,从数据科学语言来说,go的门槛还不够低。 go+与go完全兼容,但我希望它比go的门槛更低。 所以,在形式上比go更像脚本。 因为脚本往往更容易理解。 我们希望go+学习的门槛和python处于同一水平。

去年5、6月go+刚诞生,10月左右,我13-14岁,开始让6年级到中1阶段的3个孩子学习go+。 这个实践表明,这个事件是可行的。 他们可以理解go+的设计,可以自由采用go+写代码。 这表明我们在go的基础上所做的一切简化努力都非常划算。

“许式伟:相比 Python,我们可能更加要 Go+”

这里简单列举了go+的语法,当然不是全部。 只是,我想以更简洁的表现为对象。 有理数python中没有。 有理数认为数据科学,特别是无损数值运算中非常常见。 go+内置了有理数的支持。 当然map,slice基本上在python上。

列表理解( list comprehesion )其实也在python里,但是我们对列表理解的支持非常丰富,基本上理解了go+上for循环是怎么写的也就明白列表理解了。 越来越多的是数据科学的一点常规操作的简洁表达。 以上是一个大致的语法示意图,如果朋友没有看过go+,希望大家对go+有个大致的了解。

“许式伟:相比 Python,我们可能更加要 Go+”

go+非常有趣,是唯一选择了同时支持静态编译和分析执行的双引擎的语言。

为什么要制造双引擎? 我觉得程序员和数据科学家的需求不一样,所以数据科学家喜欢单步执行。 试着在心中回忆一下看过的数学软件,包括sas、matlab在内。 数学软件交互是一步执行的方法。

这并不是因为数据科学家懒惰。 程序员理解程序逻辑是可以放在脑海里的,在我们脑海里知道程序逻辑是否正确。 但是,数据科学家进行计算时,并不知道计算结果是否正确。 人类的计算能力比计算机弱很多,所以为了知道自己接下来应该怎么做,必须一步一步地查看计算结果。 这是数据科学家和程序员的业务模式完全不同的一点。

“许式伟:相比 Python,我们可能更加要 Go+”

因为他是在计算而不是程序逻辑,所以不单步执行不容易。

但是,当数据科学家构建模型并最终决定采用时,他最终提供的是最大化执行效率,他肯定不希望代码的执行变慢。 因此,此时,他需要静态编译并执行。 因此,go+希望设计双引擎。 因为在调试阶段和正式录用阶段,业务模式完全不同。

“许式伟:相比 Python,我们可能更加要 Go+”

go+实现上的迭代

谈完go+的设计理念后,进入最后一个session、go+的实现上的迭代。 现在go+做了什么? go+还没有出1.0版,但语法现在支持6、70%。 语法完成度很好。

go+的源代码通过扫描仪转换为go+的token,通过parser变为go+的抽象语法数。 常见的语言就是这样做的。 go+的抽象语法树转换后有两个分支。 一个生成go代码以进行静态编译,另一个生成字节代码并分析运行。 分支的多态性是通过引入一种叫做执行规范( exec.spec )的东西,实际上是抽象的接口。

“许式伟:相比 Python,我们可能更加要 Go+”

现在,我个人在反复的过程中发现了一个问题。 对于初步加入go+团队的人来说,熟悉整个业务需要时间。 go+执行规范的部分实际上是抽象的sax接口,以事物为基础。 我送收件人一件事,收件人根据自己的需要解决这件事。 这在复制解决中很常见。

“许式伟:相比 Python,我们可能更加要 Go+”

我们以前设计的接口基本上是以事物为主导的模式连接不同的组件。 编译器解析抽象语法数出一点事,这些事被两个代码生成的模块接受,按照自己的诉求工作。 这个模式代码还有点难懂。 特别是在编译器中制作了更多复杂的事件,使代码变得难以理解。 如果大家知道go背后的安装逻辑,模型导出在go中很多很复杂,但实际上我们编译器的很多很多很复杂都是由模型导出引起的。

“许式伟:相比 Python,我们可能更加要 Go+”

现在,我正在尝试重建这个逻辑。 我们希望运行规范部分是标准实现的dom,而不是抽象的接口。 因为这个dom本身包含类型推导的能力,所以编译器可以比较容易地应对。 我今天有机会讲一些不能讲的特别细节,稍后再展开。

我想谈谈go+下一步的中心是什么。

首先,最核心的逻辑还是希望今年发布1.0版本。 然后,1.0版本最重要的事件是客户招聘模式最大化的确认。 希望1.0以后和go一样,以后的语法变更比较少。 目前最重要的工作是确定go+需要最核心的语法,并在1.0版中尽可能提供支持。 但是,除非有像go示范型那样特别多的复杂的语法特征,否则会保留到后续版本中进行支持。 go+也很相似。 我们可能会放弃一些特别复杂的语法特征,但基本上我们在1.0版中明确了我们需要的大部分语法特征。

“许式伟:相比 Python,我们可能更加要 Go+”

在go+ 1.0中,首先进行单引擎迭代,生成静态编译的引擎,1.0发布后再重复脚本的引擎。 这也是基于前面提到的客户招聘模式优先的理念做出的决定。

最后,我们希望通过商业途径运营go+。 另外,欢迎招募go+的团队成员加入go+团队

我认为go+的核心首先是统一程序员和数据科学家的语言,使双方能够自然对话。 另外,我坚信go+将是数据科学的下一次变革。 我自己对能发生这样的事件非常兴奋。 另外,也非常欢迎同意这件事的人参加。

本文:《“许式伟:相比 Python,我们可能更加要 Go+”

免责声明:晨报时代网免费收录各个行业的优秀中文网站,提供网站分类目录检索与关键字搜索等服务,本篇文章是在网络上转载的,本站不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2031@163.com,本站的小编将予以删除。