无法解释单子

不,这不是解释单子的另一种尝试。 我不知道该怎么做,也无法想象,例如,从现在开始,我可以从过去向自己解释这一点。

其他FP概念也是如此。 我了解它们的价值以及如何使用它们。 但是我不知道如何向最初倾向于实用方法的人们传达这一信息。 我认为这根本不可能。 实践很容易解决这个问题,但是人们很少能做到。

我什至不知道该如何回答更简单的问题。 尽管我已经在Scala上写了3年以上的书,但是我无法用手指来解释这种语言对于外部人员的优势。 例如,几个月前,我进行了很好的讨论。

一切都始于以下问题: “您的语言是为谁写的?”
所有这些免疫力,高阶功能,强大的类型系统,副作用和其他monad都在我的脑海中浮现,但我知道这还不是全部。 随后的澄清最终使我感到震惊: “例如,在这里,Java是白领的一种语言 对话以不连贯的胡言乱语结束,这些胡言乱语没有实践就无法解释差异。

我们不知道如何销售FP

这不仅仅是个人经历的重述。 我们所有人(使用函数式语言的用户)的处境大致相同。 我们完全理解与Blub语言相比的巨大差异,但是世界其他地方都不想听到我们的声音。 当然,可能会为有限的保守派人士感到生气,他们会兜售“ G”字,冷静地胡说八道,互相讲述神话和童话故事,坚定而自信地开始讨论他们甚至没有花几个小时的事情。 您也可以用其营销人员团队来指责大型公司。

但是在我看来,首先,问题在于我们自己不知道如何销售FP。 是的,这不是一件容易的事。 虽然,当我记得人们如何做出决定,趋势中包括什么方式和什么时,我开始认为这是可能的。

开发总是存在问题。

  • 进程很慢! 几年后的今天,每天早晨,在全国所有办公室中,站在黑板上的人们都将贴纸从一列拖到另一列。
  • 部署很慢! 凭借着devops的价值,我们每天发布10个版本,而新一代的管理员则用大量的红宝石,python和yaml对其进行泛滥。
  • 应用程序很复杂! 因此,由2-3个开发人员组成的团队正在构建新的微服务架构,详细考虑每个服务的职责,并为一个小的修订版本提出10个池请求。

并不是说我认为所有这些行业热潮都是不好的。 他们也有很多缺陷。 并非所有人都知道如何或如何正确烹饪它们。 缺少或缺少方便的调整。 但是,这些方法已成为行业的“事实”标准。 尽管关于生产中使用docker的讨论似乎是一个悬而未决的问题,但一切都已经发生了。

我相信函数式语言也会发生同样的事情。 是的,这并不完全正确-将编程语言与方法论和方法进行比较。 但是,在他们为自己定位时,我们需要借鉴一些东西。 他们都有解决的严格定义的问题 。 这就是速度:开发,沟通,计划,部署,进行更改...

为什么我们忘记说最重要的事情?

同时,从定位函数式编程语言的角度来看,很难说它们具有明确且可理解的目标。 语言学者“ FP vs OOP ”通常会迅速地渗透到一些特征和概念的度量中,这些特征和概念的价值尚未被OOP阵营很好地理解。 格式为“ 您看这些单子如何组成 ”的文章和报告经常使人们认为,他们不需要这样做,而是激发了他们的尝试。 所有这些交互都很少回答以下问题:“ 这是为什么? ” 美丽而简洁? 好吧,充其量,只会提到更少的错误。

使用功能语言最重要的是相同的开发速度! 并由此产生了所有这些无聊而令人恐惧的术语,概念和特性,从而实现了这一速度。 由于具有更高阶的功能,因此组成更轻巧-加上开发速度。 除了可靠性和更少的错误外,抗扰性还等于给更多的时间来做有用的事情,而不是花在调试,修复和支持上。 等等,我认为逻辑很明确。

是的,听起来太简单了,甚至很明显。

是的,我在这里没说什么新话。 但是措辞和强调的重要性很重要。 不幸的是,这就是我们的思维方式。 为了打破障碍,仅靠解释是不够的。 需要练习! 个人或公司有必要在此上花费时间。 提及“流行性”或相对美将激发很少人花几天时间像个白痴。

值得一提的是,不要像聪明人那样树立自己,立即散布左右词,证明您最喜欢的YP优于Blub 。 与其证明功能X的有用性,不如将它用作对某些更易于理解的属性的解释要容易得多。 如果其他技术人员成功了,也许我们也该承担起责任,坚定地提出明显而简单的事情。

因此,下次,由于很难回答“ 为什么? ”问题,请毫不犹豫地使用王牌,例如: 更高的开发速度更便宜的支持更少的开发人员

嗯,还有更多。 社区活动在定位中也起着重要作用!
因此,我们在5月24日至25日于俄罗斯FPURE-喀山举行的唯一功能性会议上等待所有对FP漠不关心的人。
该计划包括:Haskell,Scala,Elixir,Clojure,理论和实践,当然还有许多志同道合的人可以与他们谈论!

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


All Articles