在俄罗斯斯卡拉运动的脚步。 第二部分

在调查的最后部分罗曼·蒂姆杜舍夫Roman Timushev)建议我联系弗拉德(Vlad)。 弗拉德(Vlad)澄清了我的兴趣所在,描绘并同意写几段。 第二天早上,我在Facebook上看到一条通知。 弗拉德找到了一个新的证人- 亚历山大 。 从2008年到2017年,他担任IDEA中Scala插件的团队负责人,亲眼目睹了Scala运动的整个发展过程,但主要不是俄罗斯部分。

我的脑海“被点击”-计划正在改变,这是调查中的新话题。 他们记下了时间,并记录了一个小时的亚历山大访谈。 信息太多,除了单独的零件外,别无选择。 因此,我警告您-前面有很多文字。



在这一部分中,我们正在与Alexander PodkhaluzinMikhail Mutsyanko进行交谈 。 在节目之外-Ilya Sergey的评论。 Scala插件是俄罗斯的第一个Scala活动,以Kotlin,两种语言的母语,日落的Eclipse以及更多的形式保留下来。

亚历山大如何到达斯卡拉(Scala),去科特林(Kotlin)并进行教学


从2008年到2017年, Alexander Podkhalyuzin作为团队负责人在IDEA中开发了JetBrains Scala插件。 后来,他先离开Kotlin Tooling,去了Kotlin / Native,然后去了整个Kotlin。

亚历山大(Alexander) :任务很艰巨,岁月的限制使一切变得混乱。 顺便说一句,该运动不是在2010年开始,而是在三年前开始。 2007年,我刚来JetBrains工作,我很幸运拥有MPS。。。你知道MPS是什么吗?

瓦迪姆 :我听说这是一种陈述性和视觉语言。

亚历山大 :MPS提前了。 这是Meta编程系统 -随IDE一起生成的编程。 我在MPS的公司找到了工作,但是他们已经在那找到了一个人。 所以我很幸运-我被派去编写Scala插件。

JetBrains开始编写插件,但由于是Groovy而将其删除。 他很受欢迎,需要支持。 与Scala插件有关的每个人都开始使用Groovy插件。 没有人参与Scala,我继承了这样的继承。

我于2008年初加入公司。 我什么都不知道,我开始挖掘一个解析器,修复了第二个,第三个错误-这种错误一直持续下去。 结果,他坐下来重写了它。 所以慢慢去发展。

Ilya Sergey在我之前从事插件工作。 我找到了他,并与他一起开发了插件。 我是数学家,Ilya是程序员,这很有趣。 但是他想成为一名数学家,而我想成为一名程序员。 我喜欢编程,已经准备好去做,却不明白为什么Ilya不喜欢它。 而且他不了解我。 结果,生活把一切都摆在了原地。

Ilya离开JetBrains,并在西班牙从事计算机科学工作,几乎是一名教授。 他最近到达时,被告知如何寻找自动竞赛-这是一门科学。 还在比赛中,他坐下来在Scala上写了1万行。 他说一切都超级好,一切正常。 他仍然骑着第一次Scala Days,似乎是在2009年。

看完伊利亚(Ilya)的传记后,我觉得从原始资料中弄清细节很重要。

Alexander提到的报告是关于在Java应用程序中查找竞争条件的静态分析。 2018年,我们与Facebook开展了合作。 上面写了一份报告和另外两篇文章。 没错,OCaml上有所有代码。 比赛是我今年举办的ICFP编程比赛 我还使用Scala.js在Scala中编写了比赛的几乎所有代码

我仅以用户身份使用Scala。 在IntelliJ IDEA和Scala插件的帮助下,为我的研究项目编写了许多原型:使用TyGus / suslik指针进行程序合成,几何算法测试 在大学里,我教授多线程课程,其中Scala是主要语言。

Ilya Sergey新加坡国立大学教授。

亚历山大 :我从2011年开始骑Scala Days。 实际上,三年来我们一直在编写第二个Scala前端编译器。 这需要几年,这很正常。 一切对我们来说都是缓慢而糟糕的,但同时至少有一些东西。 从编辑的角度来看,没有什么比这更好。 我不记得当时Eclipse是否开始支持。 是的,似乎他们同时支持他。

瓦迪姆(Vadim) :我与罗曼·蒂莫西舍夫(Roman Timushev)进行了交谈,他告诉了我大约13岁的年龄,他是如何开始在莫斯科写作和举行会议的。 根据他的版本,然后每个人都使用Eclipse。 这是可以忍受的,得到了​​官方的支持。

亚历山大 :是的。 在2011年,Eclipse非常糟糕,在2013年达到了与2011年相同的速度。与Eclipse不同,我们编写了自己的前端,因此突出显示的错误与编译器不同。 这很不方便,这是一个关键问题。 在编译器中,某些错误未突出显示,反之亦然。 Eclipse使用编译器代码。

使用编译器代码不是一个好主意,因为一切都会缓慢进行。 在Kotlin中,使用编译器代码时类似。 情况并不像Scala那样糟糕-他们对IDE有所考虑,但是从IDE的角度来看要提供良好的性能并不容易。

2011年, Scalathon照片 )在费城举行。 这是我们被邀请参加的第一次会议,但是我们去那里很奇怪。 如果我们想参加活动,他们联系了JetBrains。 在此之前,他们没有与Scala通话,当我们开始做某事时,他们注意到了。 像Scala程序员一样,用户的鼻子也有些呆滞-整个会议期间大约有100人。 在Scalathon,我遇到了Bill Venners

瓦迪姆 :这个名字很熟悉,但是我不记得是谁了。

亚历山大 :两件事的作者:Scalatest和主要书籍《 Scala中的编程》 。 这是马丁·奥德斯基(Martin Odersky)写的书-我们的圣经!

瓦迪姆 :我没看过。

亚历山大 :没关系。 这本书是比尔·范纳斯(Bill Venners)和马丁·奥德斯基(Martin Odersky)亲笔签名的书。 他们在12或13年的Scala日之一将它送给我。 在所有参与者的晚宴上,对社区做出了贡献的人们得到了奖励。 突然他们打电话给我,我收到了我的书。

自2011年以来,Scala Days也开始被访问。 最初,它们每年在欧洲或美国举行一次,然后两次。 去年我参加了一个会议,但没有参加第二次会议。 去年,我提交了一份关于比较Kotlin / Native和Scala Native的报告。 Kotlin团队中没有人相信该报告会被接受,但是报告被采纳。 也许出于尊重或其他原因。 很少有听众参加该报告。 Scala程序员对包含“ Kotlin”一词的所有内容都不感兴趣。 原来如此,现在仍然如此。

瓦迪姆 :我认为“本地”一词起了作用。

亚历山大 :不,在Scala Days上,所有有关Scala Native的报道总是聚集满屋子,例如Denis Shabalin的表演。 但是同时,该技术还远远没有投入生产。 她注定至少要再十年才能到达那里。

瓦迪姆 :你为什么这么认为? 我很惊讶,但是有理查德·怀林Richard Whaling写了一本关于Scala Native 的书 -已经有很多资料了。 他去播客 ,谈论他如何在生产中使用它。 他有一个领域,那里有很多数据。 在这种情况下,他对Native感到非常满意。

亚历山大 :请参阅我关于Scala Native和Kotlin / Native比较的报告,在其中我解释了我的观点。 在表演时,一个人在Scala Native上工作。 因此,不能谈论任何产品。 如果我们谈论一个在某处应用技术的人-也许。 它不是主流,用户很少。

Kotlin / Native具有特定的应用程序-iOS和Android之间的代码共享。 只是这会产生一定的兴趣。 Scala Native没有此功能,没有任何东西可依。 当您必须将Scala代码和Tensorflow之类的快速计算结合起来时,可以将Scala Native用于计算。 但是Scala Native并不意味着在Scala和Native之间,您可以安全地相互调用或混淆通用代码。

在Kotlin,我们正在腾飞编写和编译相同的代码。 从设计的角度来看,这不是一件好事,因为您没有使用POSIX,而是使用了某种中间层库,即使没有JVM也可以很好地工作。 如果您没有这样的图书馆,那就好了。 此处的代码将有所不同,如果不同,则如何维护它? 如何部署需要在其中编译,部署不同端点以及还存在构建系统,依赖项的库? 如果您挖,那么问题-深渊。 开发Scala Native的一个人无法回答所有问题。 应用程序是一个单独的故事,有关此内容,您可以查看我的报告。

瓦迪姆 :恩,让我们回去。 2011年,您参加了Scala Days,而在2016年之前,您仍然使用Scala插件吗?

亚历山大 :直到2017年。

瓦迪姆 :然后您进入科特林。 发生什么事了

亚历山大 :从某些角度来看,我没有尽力而为。 您可以继续开发Scala插件-很多芯片,还有很多事情要做。 但是,从业务角度来看,它作为一个项目是成功的。 80%的Scala程序员使用IntelliJ IDEA。 您对占领80%市场的产品了解多少? 他们很少。

接下来要做什么? 我想要新的目标,新的视野,并且在Scala插件中这是不可能的。 JetBrains正在开发自己的编程语言,并对Scala表示怀疑。 在公司中找不到Scala的职位是不可能的,所以我要么离开这里,要么在这里工作。 在企业中,任何其他。 我不得不做出一个艰难的决定。

在某种程度上,我已经做好了准备。 首先-我意识到,如果我离开团队,那么Kolya Tropin将在我的位置上。 他现在领导团队。 我正在准备,并且以一种特殊的方式准备,我知道他可以代替我。 第二个-缓慢分配所有子系统,拒绝它们。 我不再需要对它们进行编程。

所有这些的顶峰是手受伤,手术和2个月的病假。 退出后,我去了总经理马克西姆·沙菲罗夫(Maxim Shafirov)。 他过来说:“给我别的东西。” 有这样一个触发因素,有些人正在不知不觉中准备为此做准备,因此可以决定这两个月。 麦克斯建议。 我说“除了科特林什么都没有。” 我知道,我来自Scala世界,而Scala世界讨厌Kotlin。

瓦迪姆 :不是我讨厌它,只是出现这种产品令人不快。 这是Scala存根。 同时,营销活动很活跃,市场也正在被占领-那些可能会选择Scala的一面的人。

另一方面,那好吗? 如果您想象为了有效地用Scala或Haskell编写而需要掌握的知识差距,那么对于Java开发人员来说,这是巨大的。 在这里,科特林是一个转运点,您可以安全地到达,静坐并继续前进。

亚历山大 :这并非完全正确。 当没有Kotlin时,人们来到Scala,他们对Java不满意-缺少了一些东西,很多样板。 Scala取代了所谓的Better Java。 Kotlin专门针对这个利基市场。

有了Kotlin,Android和所有发生的事情,以及现在的多平台,仅此而已。 Kotlin并没有专注于一个Android,一个利基市场,而是走得更远。

瓦迪姆 :我认为这很好-甲骨文已经激动了。 现在,至少有一些普通的JEP使Java得以发展。

亚历山大 :我认为原因不是科特林-这是正常现象。 在Google宣布Kotlin的2年之前,它可以忽略不计。 当我决定搬家时,马克斯·沙菲罗夫(Max Shafirov)给了我一份供选择的清单。 尽管我说“不是Kotlin”,但IDEA中的Kotlin /本机支持选项仍在此列表中。 结果,从整个清单中,我决定尝试迁移到Kotlin。 在我接管Kotlin / Native的第二天, 安德烈·布雷斯拉夫Andrei Breslav)表示,下一个Google I / O将宣布Kotlin是受官方支持的Android语言。

这里是一个想法:“高飞”。 我以为我在为有条件的边缘语言做些什么。 显然,“更好的Java”市场很难被征服。 随着带有lambda的Java 8的发布,这变得更加困难。 Scala可以很好地做到这一点,它对lambda并不强大,并且对Java的优势也不强。 这是随机的-随机的人来到Scala时了解到他们需要更好的Java。

在Java 8之后,这些人的流量减慢了。 他们不会去Scala和Kotlin-他们有lambdas。 首先就足够了,最好的不再感兴趣。 我坐下来,思考并意识到规模现在不一样了。

在我的脑海里,我转到了一个规模不超过Scala插件的团队。 当时有10万用户,而Kotlin有4万。 完全不同的规模。 我意识到这很有趣,他们没有事先告诉我。 我决定去Kotlin是因为尝试很有趣,而不是为了实现雄心勃勃的目标。

通常,Scala更好地进行编程。 在Scala进行了9年编程之后,当您开始编写Kotlin时,您最终会无所适从。 这让人有些悲伤。

如果我是CTO,该怎么办? 对于一些简单的Kotlin任务,对我来说组成一个团队会更容易。 这样会更便宜或更有效。 我本可以便宜一些地招募Scala程序员,但我会变得更糟,因为他们会在此Scala中做些可怕的事情。 即使在劳动力市场上困难重重,我也将开始招聘Java程序员-Kotlin将更容易培训他们。 如果没有严重的技术问题,这是从启动新项目的角度出发的。

例如,对于银行业,有使用Scala的理由。 Kotlin无法解决它们。 Scala中相同的元编程要方便得多。

如果您认真考虑这个主题,则可以在Scala上创建很棒的基础架构,但是在Kotlin中是不可能的。 有相同的注释处理器。 有朝一日,这是有可能的,但仅以几年的角度来看。

瓦迪姆 :为什么您认为Scala对银行有利?

亚历山大 :有很多与编程语言无关的样板。 这是一个存在用户类型对象的系统。 从数据库开始到一切都结束,这需要大量重复。 为了有效地进行更改,您需要良好的元编程支持。 到处都需要它,但必须谨慎使用,否则可能会卡住。

11年级,我被叫到学术大学。 我懒得教整个课程,所以我同意了现在成为Kotlin开发律师的Sveta Isakova 。 我们同意将课程进行一半,但这是关于Scala的。 她可能想更多地了解Scala。

瓦迪姆 :当时大学是顶尖的吗?

亚历山大 :是的,裁判官有5-6个疗程。 比赛的头几年很小。 但是,当JetBrains,Yandex和Transas获得赞助,实习邀请以及为自己增加员工的目标而来时,对该地方的竞争加剧了。

事实证明很酷:在州和Alferov的掩护下,私人资金和私人倡议。 他全力以赴-随心所欲! 事实证明很棒,因为这些课程是相关的。 他们招募了最前沿的人,了解当前行业的发展,而不是十年前还不清楚在哪里。 如果我们谈论的是普通大学,例如“ mathmech / mehmat”,那么Pascal不会通过那里-它与现实生活无关。

这是一所实力雄厚的学术大学。 人们知道,到达那里后,他们会很快飞到这个行业。 在Yandex和JetBrains中愉快地大学毕业。 这是职业生涯的重要一步,比赛有10名学生参加。 我在那里教了5年。 第二年,Sveta没跟我谈论Scala,我拜访了各种助手,特别是Sveta for Kotlin。 结果,我们重命名为JVM语言。

在某个时候,我得到了Clojure的支持,并且我对此语言有所了解。 根据学生的说法,他们不了解Clojure在做什么,这是什么废话。 他们谈论的是普通语言-Scala和Kotlin,突然间,Clojure含糊不清。 我只是不是专家。 那就是故事。

关于第一个ScalaSPB / ScalaDev


亚历山大 :然后像Scala Days这样的事件出现在圣彼得堡。 第一个ScalaDev通过了 ,对于第二个事件,原始Scala Days 组织者联系了圣彼得堡,并要求将其重命名。

瓦迪姆 :今年是哪一年?

亚历山大 :是的,一切都在那里-11-13。 该活动是由来自圣彼得堡外包商e-legion的人员发起的。 看来他们写了Raiffeisenbank应用程序。 他们甚至在Scala中编写了一个移动应用程序,但现在没有人以这种方式编写-人们都疯了。

Vadim播客的一位来宾-Matvey Malkov在两年前谈到了Scala和Android。 他说对他们来说一切都很好,他们会使用它。 他们的主要收益是Scala后端和应用程序。

最近,我写信给他,要求在会议上发言,因为您找不到与手机有关的人。 事实证明,他离开了公司,而他所做的最后一件事是在CI上完成了Scala上该项目的Kotlin模块的组装,以便伙计们逐步过渡到它。

亚历山大 :两年前,关于科特林的事情还不清楚。 从理论上讲,Google可以采用Scala,但不会。

我们在第一个Scala日演出,甚至聚集了很多人。 更准确地说,不是在第一架飞机上,而是在第二架飞机上,该飞机在JetBrains举行。 随后,Sveta Isakova在科特林进行了介绍。

这很有趣-所有Scala开发人员都将Kotlin视为第一大敌人。 霍尔反应非常消极,提出了疑问:“为什么不这样做,为什么不这样做,为什么不这样做呢?” 令人毛骨悚然,有些骇人听闻。

在Sveta之后,我是第二个人在Scala会议上谈论Kotlin的事情-关于Kotlin / Native。 我的经验表明,这毫无意义。 我不是为了这份报告,我很想看到Scala Native。 它是如何安排在内部的,启动程序,使某些事情高兴。 即使在那个时候,我也很高兴Scala Native的二进制大小小于Kotlin的二进制大小。 我认为Kotlin / Native现在的数量减少了,因为有10个人正在为此工作。

瓦迪姆 :哦,好吧,你肯定是在扼杀丹尼斯·沙巴林

亚历山大 :这是不可能的,这是一项非常复杂的技术。 我们有10个人,这还不够。 和10个很酷的人,非常酷,请尝试这些更多的收集。 丹尼斯本人很酷,但是他一个人可以做什么?

关于社区的故事以及Scala的整个故事都非常有趣。 很多人都想创建某种框架来做广告并退出,这很可能没人需要。 许多奇特的恒星形成了,有些还帮助了EPFL。 要求之一是研究生的研究生工作。 例如,Scalameta是Zhenya Burmako的作品。 在工作过程中,研究生提高了程序员的价格,毕业后他们发现了很棒的工作。 有薪工作的第一份工作要比已经工作10年的人多。 因为他们很有名,所以他们在许多会议上进行了报道并进行了旋转。

这是另一回事。 您在Kotlin中看:在这里,我们要在这里做,在Scala中,它完全一样。 在Kotlin后端IR中,这很美味。 但是,由于在Scala中一切都驱动社区,所以一切都陷入了混乱。 没有集中式设计。 会发生什么事。 原来,那人想烧东西。 马丁喜欢它,得到了群众的认可。 在Kotlin,越来越清晰和专业,这就是行业的意义。

关于Eclipse和Jason Zaugg


亚历山大 :13年我们去参加了会议。 编译器中的每个人都在Eclipse中编程。 我们站着,使用IDEA的人走近了我们。 他们感到高兴,感谢。 我们拥有10%的市场,其余市场都在Eclipse上。 所有编译器都坐在上面。 他们回避了很长时间,突然我们说服他们使用它。 但是在某个时候发生了转变。

在11或12年级,我们有一个贡献者Jason Zaugg 。 在开源世界中,这并不奇怪,但是很少有人花很多时间和精力来编写代码。 杰森来了,他赚了很多钱,他本人在银行工作。 我们甚至授予他承诺的权利。 他甚至不必出示要发表的评论。 他们只是坐在一起,编码,一起讨论了一些事情。 根据我们的前端,他了解了Scala的工作原理。 一切都以Jason担任Scala编译器而告终。 令人遗憾的是我们没有自己安排。 我认为这是错误的策略。 如果一个人免费为您工作-他需要自己安排,否则他将去Scala编译器。 没有更多了。

杰森(Jason)是一个伟大的人物,也是一个杰出的贡献者。 他是IDEA的粉丝。 事实是Scala插件挂在编译器代码上。 该代码很复杂-依赖注入(DI),从本质上讲,它是蛋糕模式。 打开任何文件时,都需要分析整个编译器。 由于使用了DI,上下文中包含了所有内容,并且所有内容都带有类型推断,因此您需要在所有位置显示类型-一切都交织在一起。 一个文件的分析花费了5分钟。 即使将编译器配置为项目,引导程序仍然存在。 他必须依靠自己,这称为引导程序。 这样的项目很难建立。

杰森和我花了很多时间进行适应。 为了使引导项目成为可能,请在编译器中编程,以便至少可以在这些复杂文件中键入代码。 起初,所有内容都是红色的,我花了很多时间将所有内容变成绿色。 我们甚至进行了一项测试,以检查编译器上的前端是否为绿色或没有错误。 因此,编译器团队完全转向了IDEA。

瓦迪姆·切利索夫(Vadim Chelysov) :那时候Eclipse的流出开始了吗?

亚历山大 :资金外流有几个原因。 首先,IDEA发布了社区版本。 这意味着您可以将Scala插件放在用户的免费版本上。 我们从一开始就是开源的,当我们开始时,它是专有的,带有开源。 但是它安装在付费的IDE上。 为此,他们写了Eclipse支持,因为他们需要一个可以免费使用的标准工具。 因此,我们也变得自由了。

第二个-Eclipse作为平台开始于14年代消亡。 简而言之,他没有死,但是融资突然中断了。 Eclipse Foundation开始募集的资金减少了,目前尚不清楚如何在这种情况下开发该平台。

第三个原因是他们无法制作快速的IDE。 演示文稿编译器的工作速度很慢,而且如果我们谈论某种功能-通常是tryndets,则很难进行重构。 在编译器中,从优化的角度来看,树是单向构建的,不能采用父级。 要找到父节点,您需要从上方获取一个文件,转到它们并查找-大惊小怪。

第四个原因是它们可以与编译器中的显示一起使用。 这是在解耦后获得的树。 编辑器是用front语句编写的,而在表示形式的编译器中,通常不清楚哪种代码。 尚不清楚如何使用它并组织重构。 如何提取这一前言,而不是提取所有这些疯狂的废话? 因此,特征出现缓慢。

同时,我们的前端很惨,无法正常运行。 但是为了使他至少像那样,他必须做些可怕的事情。 曾几何时, {i <- 0 to 10} println(i)要求支持80%的语言。 因为它是解耦的,并且您有一个Range - 1 to 10的隐式转换,沿着路径有一个map的隐式转换,所以隐式参数是CanBuildFrom 。 此外,仍然存在疯狂的集合和lambda层次结构,以及一些其他具有未知参数的匿名lambda-完整的tin。 一旦该示例生效,您需要了解它在前端的80%中起作用。 因此,即使前端性能不佳,也意味着我们支持了数量惊人的Scala功能。

现在,IDEA已编写了许多语言转换器。 它们很奇怪,但是又不同,当一切开始时,没人记得。 在2009年,我参加了一个会议,这让我感到震惊-为什么不进行从Java到Scala的转换? 我们讨论过,您将厌倦了用分号删除和扩展类型-您必须采取某种方式。 我在晚上坐下来写了1000行-一种将一种语言转换成另一种语言的简单方法。

但是我走得更远,想出了如何轻松找到该功能。 当我复制到Java代码时,我希望现在插入和删除分号。 当您创建非常适合发现的功能时,这是我最喜欢的情况。 虽然不需要她,但您不了解她。 只要有需要,就可以立即获得。 就像苹果风格-简单明了。 因此,从那时起,JetBrains编写了许多转换器,其广告功能是在插件上提供它们。 但是,是的,我想出了,这是我的骄傲。

关于编译器


JetBrains的Scala插件的当前开发人员之一Mikhail Mutsianko已连接到该录音。 本期播客中, Mikhail和他的同事Andrei Kozlov更详细地讨论了该插件。

亚历山大 :我在这里诱骗斯卡拉的故事。 Misha,告诉我你的样子吗?

迈克尔 :我最初出现在科特林。 安德烈·布雷斯拉夫(Andrei Breslav)做过第一批实习生-一个学生。 我进入了生成Android UI库的Kotlinovsky DSL字节码的项目。 她现在叫anko 。 然后,我寻找文凭的任何主题,他把我送到了萨沙。 作为文凭,我为Scalameta做了树翻译。

亚历山大 :确切地说,这是Misha以文凭形式获得的主题-支持元编程。 Misha做了很长时间。 我们到底做了什么?

迈克尔 :是的,它有效。 没错,然后对斯卡拉梅塔进行了谴责。 Scala 3将具有类似的功能,但是具有更加标准化的API。

亚历山大 :我对Dotty一无所知。

瓦迪姆 :我今天刚刚看到,迈尔斯·萨宾(Miles Sabin)弄乱了他的代码,其中的代码无形地通过新的宏迁移到了多蒂(Dotty),看来事实证明了。 可打字迁移。

Mikhail :是的,特别是,他是在Scala中提供有关如何进行类型检查的说明的人之一,以便Shapeless可以开箱即用。 基本上对编译器不弯曲。

亚历山大 :哦,快点! 你在开玩笑吗 告诉我,Scalaz会弯曲吗?

迈克尔 :好吧,现在还不清楚Scalaz到底在写谁。 迈尔斯没有站在他身后。

瓦迪姆 :现在整个社区都在照顾Dotty。 迈尔斯看上去无影无踪。 这些影响已经在无数次改变,并且讨论了Luka Jacobowitz的Type 类如何做

亚历山大 :关于社区。 在第17年年初,Scala中心决定召集社区影响者加入工作组 。 始终从远方仔细观察JetBrains。 上帝禁止我们使IntelliJ IDEA中的编程变得危险。 当很难否认您仍然需要在IDEA编程时,我们被接受了。 他们邀请我参加讨论,但后来我受伤了,没有来。 然后他离开了Scala,再也没有出现在工作组中。

人们总是对我说:“为什么我们需要记录编译器的详细信息,仍然没有第二个编译器?”使我感到很开心。 这很有趣,因为Scala插件一直是第二个替代编译器。 当然,仍然有Typelevel,但这是一个分支。

Scala的发展极大地影响了我们。 当Jason Zaugg出现在编译器中时,这很酷。 他开始告诉我们:“我们做到了,请支持我们。” 有沟通。 当编译器低头而不使用时,他们什么也不会告诉我们。 那是在杰森之前。

迈克尔 :现在,我定期踢见到美味的Guillaume Martres见到刘宏云的刘凤云

总结一下


瓦迪姆 :亚历山大,非常感谢,让我们总结一下。 我昨天和一个男人说话。 他说,在Scala中,他喜欢隐式的单一概念,其中隐含了各种功能。 现在,在Dotty中,它们已经使用了相同的显式扩展方法,显然所有用例的含义都已用确切的词声明。 大概是在Kotlin和Swift上。 您对此有何感想? 一般而言,Scala 3是?

亚历山大(Alexander) :2018年是我访问的最后一个Scala日。 关于这一点,马丁·奥德斯基(Martin Odersky) 谈到了Scala具有如此多的语言概念,Kotlin具有三倍的语言,C#具有更多的语言这一事实​​。 但是同时,Scala的功能更加广泛。

我们认为这很酷,但事实并非如此。 我印象深刻,我意识到马丁知道我们需要搬家。 唯一令人担忧的是Scala应该成为一种利基语言。 语言的无限可能性创造了这种利基市场。 她知道这是DSL的方法,而且非常酷。 追逐Kotlin以获取最好的Java越来越困难。 最主要的是不要失去自己的利基。 如果他们添加了所有这些功能并且不失去其优势,那就太酷了。 但是,如果Miles全部运行,那么它可能会起作用。 是的,Misha?

在有关Scala运动起源的调查的以下部分中,我们正在等待对Vladimir Uspensky,Roman Elizarov和Nikolai Tatarinov的采访。 如果您想为Scala运动的历史添加新的方面或分享使用经验,请提交报告 。 征文截止日期为10天。

Source: https://habr.com/ru/post/zh-CN467165/


All Articles