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

该系列访谈专门针对ScalaConf ,这是11月26日在俄罗斯举行第一次完全针对Scala的真实会议 。 在这次活动之前,我采访了6位证人和斯卡拉运动起源于俄罗斯的“使徒”。 没有关于免费,无标签最终版,Monix,IO或ZIO以及Future的“回扣”的讨论。 我的目标是在历史背景下讨论Scala。 我写下了所有有胡子的故事,驱车回溯十年前,并收集了与该语言无关但有趣的故事。



该系列由Parfyonov以“前一天”的格式构思-事件,人物,现象。 我要去找曾在俄罗斯组织过会议的人,从他们那里收集所有重要和有趣的信息,整理并按年安排。 每次采访都始于他要求尽可能准确地确定故事的年份。 但是,面试结果并非我所期望的那样,以“另一天”的形式交出的手没有增加。 因此,该系列将以个人调查的形式讲述故事。 在面试之前,情况如何,以什么顺序,我如何与人交流,以及我对他们的了解。 在削减–询问和协议之下,Scala的第一个项目,第一个mitaps和运动的诞生。

从调查中可以期待什么?


许多与Scala相关的个人技术格式的故事。 它们中的大多数与2011-2015年有关,但即使有一点点,仍然可以归还别人的2007年- 2008 。第一个项目和选择语言的原因。 关于失败的项目呢! 图书馆,生态系统,IDE,莫斯科和圣彼得堡的第一批工具。 总的来说-即使没有Kotlin,很多事情也做不到。

为了提出更全面的期望,在下文中,我们列出了我们设法与之沟通的人员: 罗马·格列本尼科夫罗马·蒂莫舍夫亚历山大·波德卡柳赞弗拉基米尔·乌斯 彭斯基罗曼 ·埃里扎罗夫阿列克谢·富金和 尼古拉· 塔塔里诺夫

今天,我将告诉您他们与Roman Grebennikov和Roman Timushev的谈话。

罗曼·格雷本尼科夫(Roman Grebennikov)-2011年。沃罗涅日·博·蒙德(Voronezh Beau monde)和C ++,埃尔朗(Erlang)和斯卡拉(Scala)


因此,我去的第一个犯罪嫌疑人是罗曼 。 我对他了解不多,但是所有证据表明他参加Scala主题已有相当长的一段时间了。 对我来说,参加Java会议并不是很无聊,当时我正在他的演讲中 。 它同时具有Scala和Clojure的特色,但要格外谨慎,以免引起观众的震惊。 我还偶然发现了报告“ Scala对怀疑者的表现 ”中与slopokami相关的幻灯片。 该报告可能仍是俄语中有关此酷味话题的唯一报告。

在大致描述了文章的概念之后,我去了罗曼(Roman)向他介绍了旧的Scala运动。

罗曼·格雷本尼科夫(Roman Grebennikov):老实说,我从未尝试跟随俄罗斯的Scala运动,因为它与外国运动相比规模很小。 2014年,我们在沃罗涅日开设了一个与全体精英聊天室-整个城市中有4个人知道如何使用Scala。 在莫斯科和其他城市发生了什么,我不知道:)

-内容丰富。 根据该流派的经典,在一次采访中,我应该问一下最初的项目和对语言的了解。

罗曼·格雷本尼科夫(Roman Grebennikov):在2011年的某个地方,我看到了一个与朋友一起创业的公司,令人惊讶的是,该公司仍然活跃并且盈利。 这家初创公司根据社交网络的公开数据进行信用评分。 在此之前,我写了一篇有关C ++代码的论文,并同时在一个小型对冲基金中工作-我在裸露的C ++中进行了各种策略和算法交易。 毫不奇怪,第一个原型数据收集系统也是用C ++编写的。

事实证明,对于具有异步性和分布性的任务,C ++不是理想的语言。 在调试20 GB的coredump的某个时刻,在我们的网络蜘蛛的第二年秋天之后,这个主意悄悄出现,我选择了一种更适合我们任务的工具,而不是一头雾水。 我们研究了三个替代候选人:Erlang,Java和Scala。 我们在膝盖上写下了三个原型,以便提前填充最大数量的圆锥体。

Erlang不喜欢周围很小的标准库和生态系统。 对于每个人,您都需要骑自行车去一个新的图书馆,其中包含几乎所有现成的基本内容。 绩效问题也阻碍了生活。 在Java 2011中,溢漏不喜欢为异步应用程序编写大量的样板文件。 但是在Scala中,除了晦涩的monad和外星人scalaz外,一切都很好。 然后发布了Akka 2.0,我们重新编写了所有内容。 出人意料的是,该代码的部分工作至今为止,尽管在2019年我不会为该代码的质量而自夸。

在那些年的时间里,我并不是唯一在沃罗涅日的斯卡拉写文章的人。 为迷起见,我们有时会举行小型会议,并互相讲述各种奇怪的事情。 米塔帕斯(Mitapas)是开放的,通常会有一群骑兵来到他们身边,他们看到解析器组合器之类的地狱时吟着。 然后在Skype上有一个小型聊天室,讨论紧迫的问题和投掷风扇。 现在他已经死了,因为Telegram有@scala_ru。

Roman Timushev-2012年。第一个Akka,sbt更新和莫斯科mitaps的诞生。


我从未去过莫斯科Scala会议,但我在聊天室和播客中听说过它们。 只有一个人活跃在他们周围- 阿列克谢•福姆金Alexey Fomkin) 。 因此,我什至不认为其他人可以实现它们。 当我寻找有关第一个mitap的信息并翻阅meetup.com上的页面时,我只是偶然地发现仍有人。 sbt-updates的作者Roman Timushev就是其中之一。

罗曼·季莫舍夫(Roman Timushev):快点来。 我来自下诺夫哥罗德,我住在莫斯科,现在移居慕尼黑。 我于2012年进入scala,当时2.9版仍然存在,只有第一个Akka。 他在Grid Dynamics工作,我们在分布式系统,缓存(主要在JVM)上工作。

有一个创建新产品的想法。 这是该公司内部的一个初创企业,用于管理分布式系统,部署,更新-现在称为DevOps的所有内容。 人们聚集在一起的背景完全不同:JVM,.NET,Python。

因此,我们坐在一起,思考如何编写新产品。 我们尝试了Python,Scala和某些第三语言。 我们开发了原型,Scala更喜欢它,尤其是在Java(静态输入)之后。 因此,我们决定写在上面,于是我进入了Scala。

2012年,Scala的图书馆变得异常复杂。 现在大多数生态系统都不存在。 有一个Twitter堆栈,但它是孤立的,具有自己的特征。

-看来他仍然如此。

Roman Timushev :那时一切都完全存在,现在,他们以某种方式试图将更多部分与生态系统的其余部分统一起来。 然后有各种各样的HTTP库:未过滤,喷雾,scalaz。 根本没有猫。 社区里一切都很好。

-没有人被诅咒吗?

罗曼·季莫舍夫(Roman Timushev):也许他们发誓,但并没有爬到水面。
然后只有第一个Akka and Play。 我们看上去并认为Akka非常适合我们的未来系统。 看起来很酷,没有锁,一切都会变得快速,可靠,让我们在Akka上编写并选择Play。

一段时间以来,我们遭受了第一次Akka的折磨-它很疼。 我仍然记得第一个Akka中的Future,当时他们紧密缝制了超时。 默认情况下,超时持续5秒。 您调用的任何组合器都会在此超时情况下创建新的未来。 如果您想花5秒钟以上的时间做某事,那么一切都是喜剧。 这很痛苦,我们战斗了很长时间,但随后又推出了第二个Akka,未来出现在Scala中,生活变得更加轻松。

-您有分销商吗? 那akka集群不是吗?

Roman Timushev:在我看来,当我们开始时,还没有集群。 但是当他出现时,我们将他拖到了一起,并提出了各种裂脑问题。 他们编写了裂脑解析器,该解析器通过我们的数据库以某种方式解析。

那时,许多人仍然使用Eclipse。 似乎默认情况下,Eclipse是官方的Scala IDE。 我们开发了项目,并发现了初学者,他们初次接触Scala Akka时可能犯的所有错误,仅此而已。 尽管如此,该产品还是成功的。 在Scala中,只有积极的印象。

-是否有在Eclipse上编写的一般规则?

Roman Timushev:是的,是的,这很正常。

-是否有您自己的插件?

Roman Timushev:是的,有一个运行良好的官方插件。 我不记得当时IDEA插件是如何工作的,但是我不确定它是否更好。 Eclipse一直很奇怪:要么活着,要么不活着。

在切换到Scala之前,我主要是用Java编写的。 曾与Maven,Gradle合作。 到处都有插件来更新依赖关系或至少要监视。 对于Scala,这不是,所以我不得不编写自己的并使用它。 他还活着,人们一直在使用它-每个人都很高兴。

Sbt-updates可以用作单独的插件。 它显示了依赖性更新。 弗兰克·托马斯(Frank Thomas)现在正在积极促进scala管家 。 在幕后,他有一个我曾经写过的插件。 当然,除了此插件外,关于如何更新文件库中的依赖项还有很多魔术。

一方面,我不了解人们如果没有它怎么生活。 另一方面,当我来到公司时,已经在GitHub上了,对我项目的依赖以某种方式很有趣。

-好吗?

Roman Timushev:是的,顺便说一句,不需要将其添加到项目中。 Sbt-updates必须像依赖图一样在本地配置。

-然后运动发生了什么?

罗曼·蒂姆杜舍夫(Roman Timushev):起初,几乎没有动静,至少在俄罗斯。 在我工作的公司中,去美国的商务旅行很普遍。 在山谷中,那里有很多活动:活动,会议,大会和其他所有活动。 每周几次必须执行一些Scala-mitap。 到达那里,那里不断发生一些事情,返回是空的。 我考虑了如何解决它,并为Scala Moscow开了一个metup.com页面。

大约在同一时间或更早,弗拉德·乌斯本斯基(Vlad Uspensky)在莫斯科的斯卡拉(Scala)建立了一个Facebook小组。 第一次会议是弗拉德组织的。 他们以某种方式通过了整个社区,并在事实发生后参加了聚会。 从照片来看,那里有25个人。

然后在Tinkoff办公室又有了一个真正的混蛋,该办公室也是由Vlad组织的。 注册了50个人,有一些有趣的报告。

后来,由于Misha,第二个平台出现了-研究所“ Voskhod”。 我不记得为什么Voskhod科学研究所在Scala上做了些什么,但是他们对发展社区和组织会议感兴趣。

-所有的沟通都在哪里进行的? 在Facebook上还是有某种聊天室?

Roman Timushev:是的,Facebook上有一个小组。 但不是很活跃。 定期发布有关mitaps的信息,进行一些小型讨论。 在Skype上也有一个小组-那里总是有一些轻歌剧。 电报尚未。

会议不是很定期-每个人都有工作,商务旅行和商务活动。 然后弗拉德去了美国,我去了德国,一切都几乎弯曲了。 因此,我很高兴出现新的运动,您正在组织一个Scala会议。

-您在德国的情况如何?

Roman Timushev:我在慕尼黑,那里有很多Scala。 我们还在Scala上编写项目。 我在Haskell上有一个宠物项目,但主要在Scala工作。

-您已经在Scala上写作了将近10年。 您要使用haskalator结束吗?

罗曼·提姆图舍夫(Roman Timushev):一个不会干扰另一个。 在相当长的一段时间里,我绕过了Haskell,但现在我喜欢它作为一种语言。 我在Scala中开始想念其中的一些东西。 但是Scala在Haskell中还有一些更难做的事情。 有选择的时候很好,每个人都找到最适合自己业务的东西。

-那么,您仍然对这种语言感到满意吗? 您如何看待Scala 3,您害怕吗?

罗曼·蒂莫西舍夫(Roman Timushev):我百感交集。 当我来到Scala时,我对非常少的概念如何成功制作出许多不同的炫酷功能印象深刻。 在我看来,Scala是一个很好的例子,说明了通过三个基本概念可以实现几乎所有种类:类型类,扩展方法。 在我看来,这很酷,可惜在第三个Scala中留下了。

在实践方面,对人们进行教育会更容易,输入语言也会更加容易。 也许Scala中会有更多统一的写作,这也是一个加分。 等一下 我敢肯定,Scala的开发人员考虑了一下,并给出了一个理由。

-我也想问。 那时Tinkoff中是否有a面杖?

Roman Timushev: Scala那时已经在Tinkov。 我不能说整个Tinkoff,但是有很多开发人员都在Scala上写东西。 与弗拉德谈谈-自从他在那里工作以来,他将能够提供更多信息。

这是对俄罗斯斯卡拉运动的“调查”的第一部分。 侦探故事并没有就此结束。 在下一个系列中:与Vlad以及一个新的意外犯罪嫌疑人的相识,将在下一篇文章中进行采访。 请继续关注,不要错过任何东西。

如果您想为Scala运动的历史添加新的方面或分享使用经验,请提交报告 。 提要截止日期为29天。 在下一个提价截止日期之前的6天- 预订机票

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


All Articles