Vitaly Bragilevsky (
@_bravit )仍在
SFedU教授Haskell课程和算法理论。 他还在其他城市提供现场课程,是有关Haskell和函数式编程的许多书籍的编辑和翻译,是Haskell 2020委员会和GHC编译器的成员,并且在会议上积极发言。 例如,他将在喀山的
FPURE功能会议上针对Haskell进行简短的编译器
构建课程。
由于活动如此之多,最终的录音已经进行了将近一个小时(
链接到音频 )! 在她的文字记录下方阅读,维塔利(Vitaly)谈论教师职业的优势,许多关于Haskell的书,不仅是Haskell本人,当然还有关于Haskell本人的书,以及您是否需要成为天才才能用这种语言写书。
-如何成为一名老师? 在活动中,在会议上的演讲次数,您看起来不像是普通的老师。
在我过去,老师是不同的。-老师在变。 我必须说,当然,这种活动并不是很典型。 但是我一直想当老师。 可能是在我还在上学的时候,我以为自己是一名老师,并且思考过如何比那些教我的人做得更好。 并以某种方式进行了。
当我在大学三年级时,我开始在我毕业的中学学习。 当他大学毕业后,他开始在大学任教。 这是很自然的方式,然后我没有想到自己就是其他任何人。 因此,对我来说,这条路很简单,直接,而且我别无选择:我一直想要这样做,并开始教书。
-它是如何到达研究所的? 您专门从事编程吗?-我毕业于罗斯托夫州立大学,获得应用数学和计算机科学学位。
我们学习了很多应用数学,但是已经有很多编程方面的培训。 是的,我可以说我以程序员的身份学习。
我的许多与程序员一起工作的同学现在都是某种程序员的老板。
“那你呆在那里去读研究生吗?”-是的,我住在同一所大学。 我没有去读研究生。 而且我没有从事科学活动。 有一些尝试,但我不能说我从事有目的的科学。 我一直在做对我来说比做科学更有趣的事情。 在这里仍然被叠加起来,在我们国家,没有我感兴趣的科学领域。 我们可以说到目前为止还没有。 靠我自己在没有指导的情况下远程进行科学实践,我几乎不能。
-从实践上讲,如果我们采取这种做法,那么我们仅在新西伯利亚与编译器有关?-编译器毕竟有点不同。 我国的编译器学校很强大,但是我对更理论的东西感兴趣。 例如,与类型有关。
如果我们选择《
龙书》 ,那么一小章专门讨论类型理论,实际上一无所获。 专门用于分析的巨大部分,诸如此类,但我所感兴趣的并不存在...
当我毕业时,它吸引了我,但仅此而已。 我对学习理论知识更感兴趣。 碰巧我研究了它们。 但这纯粹是自我教育。 没有具体的结果,没有科学工作的形式。
-那么关于该主题的哪些书可以阅读? 码头?-如果我没记错的话,英语的Pierce(
TAPL类型和编程语言 )已于2005年
发行 。 然后,他被翻译成俄语,出版商随后将包裹寄给我们部门,其中有5-6本书翻译成俄语。 我们举办了一些研讨会,在这些研讨会上我们慢慢研究了所有这些内容,进行了介绍并解决了问题。
但在此之前,英语书籍也出现了。 有一个很好的学习方法-告诉别人。 我上了一门关于使用λ微积分建模各种编程语言构造的课程。 有一本英语书,
史宾格书。 也就是说,您阅读并同时告诉希望听您讲话的人。
-您教不同的学科,并且通常从Java开始。 他们开始教Haskell是怎么发生的?-当一位年轻的老师来大学工作时,他们给他的课程(通常不是他选择的),而是阅读的内容。 我读了第一门特别课程,称为“ Web XML技术”。 我第一次读是在2003年。 7月初,他们带我去了系,他们说这是您的重担,9月,您开始阅读本课程。 那时我既不是一个专家,也不是另一个专家。 分配-这意味着您学习并开始阅读。 在本课程中,我学习了XML,然后开始学习Web服务,以某种方式编程,然后从那里转到Java。 Java课程出现了,并教授了几年。
就是说,课程是按照他们的指导显示的,只有这样,您才开始提供自己感兴趣的内容和想要阅读的内容。 如果有地方将其保留在课程表中,则该部门表示同意。 因此,我认为FP课程在2008/09年度出现了。
那时我非常了解Haskell。 我们可以假设他不知道。 但这通常不会停止阅读特殊课程。 当然,学生们什么也听不懂,多年后我和他们讨论了。 但是老师在教授个别课程时,阅读情况越来越好。 在我看来,我已经解决了这一点,并开始更好地教学。
-收到材料的学生的评论是什么?-我只相信学生评论非常滥用。 如果学生反应良好,就不会相信这一点,因为目前尚不清楚他们有什么动机。 因此,我没有听到强烈的虐待。 实际上,当您教书时,您认为每次您都会在明年变得更好。 而且您始终对现在的情况不满意。 也就是说,这是一个持续不断的改进过程。
显然,学生将学习Haskell视为一种义务:他们需要学习,所以他们要学习。 一般来说,它们是正确的。
-这对毕业生有何影响? 有那些进入功能主义的人吗?-我知道参加过本课程的人有Haskell使用的单位。 该课程不称为Haskell,而是FP。 对我而言,让学生设法理解FP的想法始终很重要,而Haskell而非Haskell是第十件事。 我希望我的所有学生都不会害怕在其他一些工业编程语言中使用高阶函数和Lambda函数。
我认为这是绝对正常的。 每个人都将在Haskell编程的世界并不是一个非常好的世界。 如果他们不害怕FP的想法,那就很好。
-为什么会是一个坏世界?-因为Haskell需要非常高的抽象水平的工作。 在我看来,人性化的水平不允许让如此多的程序员来解决Haskell上的所有问题。 所需的程序员级别越少,则越好,我们可以解决的任务越多。 因此,简单的语言胜于复杂的语言。
我们不能从全人类的角度要求所有人都是天才,并且每个人都了解范畴论。 我们不能要求每个人都了解Haskell。 但是我们可以创建几乎任何人都可以使用的编程语言。 只是这种编程语言应该是常见的。 使程序员犯更少的错误,使程序中断的频率降低,已经是开发人员的任务。 但这是不同的。 开发人员要求不高。 我认为,这在任何活动领域都在发生。
坐车。 驾驶员的专家水平应该一直下降。 也就是说,驾驶汽车应该越来越容易。 编程也是如此。 当然,Haskell提出了很高的要求,但这并不是很有希望。 不然我们会采取:不了解单子,开枪!
-这是驱动程序的示例,这是可以理解的。 我正在尝试与医生。 我不希望他们的水平随着时间下降。-我多次听到可以使用软件来提高医生的水平。 目前,与诊断有关的事情可以通过软件很好地解决。 有分析,有多种机器学习方法可帮助做出诊断。 医生的任务是使用所有这些。 该软件必须确保医生水平足以使用该软件。
我当然不明白,但我相信这就是未来。 我们不需要一百万名专家医生。 也就是说,它不应该是医生,而是可以诊断,开出治疗方法等等的软件操作员。 另一件事是,需要额外的专家来开发这种软件。
这听起来可能太可恨了,但是人类发展的实践表明,不仅并非所有人都聪明,而且并非所有人都应该聪明。 这是绝对正常的。 如果我们有1%的聪明人,那么这很好,没有必要再增加。 也许我想,但是还是不可能的。 因此,我们需要不同的层次,不同的工作。
-听说您参与了书籍的翻译。 你能谈谈这个吗?-我在图书出版方面的第一项业务始于以下内容。 我听说出版社DMK-Press应该出版《
探索Haskell永远
好 》一书。 我对这种翻译很感兴趣,因为我需要向学生推荐一些建议,用俄语阅读有关Haskell的建议。
而且,正如我现在所记得的那样,我在12月底给出版商写了一封信,提出了一个问题,例如,我教Haskell,听说正在进行翻译工作。 这项工作在什么条件下进行? 出版社的主编德米特里·莫夫尚(Dmitry Movchan)回答说,我们实际上已经完成了,您想看看原始的版式吗,那里发生了什么?
他给了我原始的布局,我看着他,对他所处的状态感到震惊。 有可怕的事情。 例如,一半的代码示例被错误地缩进。 因为Haskell的发行商并不精通,所以某处的所有内容都向左对齐,而其他地方则对齐。 而且翻译的质量在许多方面也令人毛骨悚然。 当我看到此消息时,我写道您不能以这种方式发布,您需要对此做点什么,然后让我对它做点什么。 我将给您写一些有关如何处理此文本的评论。
他们同意了,并且在一个半月内,我给了他们关于文本的各种评论。 那里的某些内容必须再次翻译,某些部分未翻译,必须进行翻译。 所以我结识了出版社,不久后这本书问世了。 在那里,我被列为科学编辑。 罗曼·杜什金(Roman Dushkin),我是第二个。 就这样开始了。
之后,我开始为出版社提供一些书籍进行翻译。 我与我的大学同事Artyom Pelenitsyn一起翻译了伯德的著作《
函数式编程的明珠》。 我们翻译了一本薄书“
编程语言理论导论 ”。 我还翻译了Marlow的著作《
并行和竞争性Haskell编程》 。 老实说,这是全部还是其他,我不记得了。 这是我的学生翻译的最后一本书,威尔·库尔特(Will Kurt)的“
Haskell程序 ”。
我做这些事情是为了为俄语社区制作书籍,以我的观点,这对他阅读很有用。 我不是为了赚钱而从事翻译工作,而是让书籍以俄语出现。 因为我们仍然有英语-这是一个问题。
-您是否参加过函数式编程实践 ? 我根本没有找到这本杂志。-是的,我在第三期为他写了一篇文章。 我写了关于卷积以及卷积如何允许您对列表上的许多计算进行编程的文章。
-杂志怎么了? 是谁启动的,为什么一切停滞不前?-他出去了好几年。 我有完整的印刷品收藏。 我不知道它是如何产生的所有细节。 但是,该杂志的主要组织者之一是LiveJournal的小
狮子 Lev Valkin。 我认为他是前几期的编辑,然后由现在在Google工作的
Zhenya Kirpichev完成。 我认为,
德米特里·阿斯塔波夫(Dmitry Astapov)仍然
是一开始的人之一。 这些都是当时活跃于俄罗斯LJ领域的人。 他们的帖子非常受欢迎,并进行了巨大的讨论。 因此在某个时候,他们决定就此主题撰写杂志。 在我看来,该杂志非常好,文章写得很好。
他们的工作方式是这样的:作者撰写了文章,并且这些文章都受到了同行的好评。 有一个认真的更正过程-我被迫从这篇文章中丢出一堆笑话。 瓦尔金告诉我:“
您正在阅读,对您来说很有趣,然后您会感到羞愧 。” 丢掉一堆笑话,等等。 总的来说,对文本进行了认真的工作,结果非常好。
在那之后,我在秋天遇到了Valkin,我们聊了一下,他说有某种让他变得更认真的愿望。 但更严重的是-这意味着将其翻译成英文以扩大受众。 参与目前的形式似乎不太有希望。 但是,这样的决定会导致这样一个事实,即他不会在说英语的听众中脱颖而出,因为这样的产品质量很好,而且俄语也很不错,因为说俄语的开发人员很难用英语阅读。
有些人不想继续用俄语,他们想用英语,另一些人不想用英语。 总的来说,疲劳已经来临。 也就是说,没有人愿意成为该杂志的原动力。 因为很明显,这需要很多时间,而且没人能负担得起。 但是没有动力,就不可能存在。
例如,现代俄罗斯杂志的做法要么完全通用,要么不需要专业杂志,没有人知道它们,也没有人阅读。 即使存在,它们也得到某些组织的支持,向人们收取薪水,而在fprog的情况下,他们筹集了一些资金,但这并没有赚钱,而是留住了媒体等等。
“他们是否直接发送了印刷版?”-是的,有一些服务,您可以远程订阅并接收常规号码。 也就是说,它们是印刷的,而不仅仅是电子形式的。 当然,最好将它们握在手中。 同样的瓦尔金花了很多时间:他为一本杂志买了字体,以使其坚固。 而且看起来很漂亮。 这些都是在TeX中完成的,这总是很困难的。 这是很多工作,而且很难做到。
“想立即跳转到您当前正在写的《 深度的Haskell 》这本书吗?” 与“ 善于探索Haskell ”有什么不同?-该书被Haskell定位为第二本书。 为了阅读它,您需要了解Haskell。 这是与“了解您的Haskell”和其他所有人的第一个区别,因为他们都是从一开始就进入的,在这里我什至不让我自己解释单子。 因为已经研究了所有这些。
对我而言,第二点重要的是,这本书应该强调Haskell解决实际问题的能力。 如此务实的Haskell可以在工业中使用。 因此,我尝试使用库。 实际上,几乎没有Haskell书籍使用图书馆。 用务实的方法,只有一本书,“
真实世界Haskell ”,出版于2008年,即很久以前。 然后,尽管那时它们已经在库中了,但他们很少关注库,但是在这里并没有太多使用。 相反,从一开始我就认为有必要使用尽可能多的库来解决问题。 使用库时,您可以走得更远。 这是第二本书-重点介绍工业编程中的使用。
第三种可能是试图描述分散在许多博客文章中的事物。 具体来说,现在我正在撰写有关性能,性能和基准测试以及如何进行代码优化的一章。 我看“真实世界Haskell”,它说的很好,但还不够。 十年来,Haskell在这件事上取得了长足的进步,并提供了许多零散的信息,现在我正设法将其收集在一个章节中。
Haskell , , . , , , Haskell in depth, in depth — , . , - .
: , , , .
— , . ( graninas ) “ Functional Design and Architecture ”.— - . , . , , , . , - .
— , . ?— , . “
Beginning Haskell: A Project-Based Approach, 2014 ”. . , . . - . , - . .
, 2017 ,
, . . “
Joy of Haskell ” ,
Haskell Book . “
Intermediate HaskelL ”, -,
. , . , . .
, , , . , . , . - . , — . . , . , .
— ? - ?— . , - , , . , . , .
— - - ?— , . , . , . - , , .
— . - , . , ?— , (
). . . , , . , IT , . , . 15 , , . .
— Haskell 2020 . ? , ? . - Rust?— 2 .
Haskell 2020 — , . . — . , . .
— .
ghc . — ghc. , . , .
— . , . , .
, . , , , . , linear-types linear-arrows. , . , .
, — , . .
— - , , ?— . 2018 . . “
”. , . , . , , . , , , - .
— , ?— . ghc, -, 2005 . . - , , .
: , . int integer . . , int integer , integer. , double int , double. , . A B, .
— ?— , , . , . , , , . , 15 , .
— . , . , , 1% ?— - 1% — . - — , . , . . 1% , . , .
FPURE是今年俄罗斯唯一的函数式编程会议。该活动将于5月24日至25日在喀山举行。FP社区的200多个俄罗斯和外国代表:Scala,Haskell,Clojure,F#,Elixir等。您可以在这里购买机票并了解更多信息。