
在下一个争论中,一个朋友表达了一个想法,这让我非常震惊。 “在大多数流行的YaP中,执行相同操作的方法有很多。 这导致问题。 但是在Go中,一切并非如此。 这种语言的哲学是在Go上,不同的开发人员以相同的方式解决相同的问题。 因此,它们的代码易于阅读,可预测且可靠。 因此,大企业选择了Go。” 这是一个相当有力的论据,在驳斥之前需要仔细考虑。
因此,我坚持不使用仿制药,进行了双重推广,并实现了一个聪明的主意,与她一起生活了几天,并在某个时候形成了我的阴郁的愿景。
我的工作是从无数种组合中选择最合适的解决方案。 这就是我得到的报酬,这就是我热爱自己的工作,也热爱我的生活。 但是他们告诉我-不需要超级解决方案。 您需要平常。 因为成品比其实现更重要。
如果他们把我扔到大街上去代替我,那他可以轻松地使用我的代码。 因此,公司将更加舒适。 企业不想依靠机会。 领先开发人员的不良情绪会从业务中获利的想法并不吸引高级管理人员。 他们之所以成为高级管理人员,是因为他们知道如何避免神圣的业务亏损的情况发生。 现在,我们生活的时代是“做得好”和“赚钱”是两回事。
我了解我们是如何做到这一点的。 我现在解释一下,注意一下:

我和大多数工程师一样,相信我做的很棒。 我发明,自动化并用自己的劳动和大脑做的事,全人类的生活都更好了,而所有晦涩的人只是在磨舌。 但是后来我把我的鼻子从代码编辑器中拔了出来,我为自己的残酷行为感到震惊。
我到底在做什么?
因此,我考虑了一个高负载系统的体系结构,但是在95%的情况下,他们将使用该系统对手机上带有自己喜欢的狗的图案和照片的自拍照进行快速排序。 因此,我正在开发一个VPN客户端,它们将如何处理? 观看各种色情和愚蠢的海盗电影?
每分钟的小愿望清单为我的大脑服务,以便人们为我带来金钱,使我也满足我的愿望清单。
IT做得很好,但是它们所占的比例可以忽略不计。 最能满足以前根本就不存在的古怪需求,因为IT不存在。 也就是说,工程师们并没有做大事,工程师只是维护了在人与人之间转移面团的基础设施。
在这种情况下,不再需要编写良好的代码。 这仅是为了使我有更多的工作乐趣而已,而且我不会再累得筋疲力尽。 但是,迟早,高级经理会来对他说:“就这样,钉上钉子。 现在是削减战利品的时候了。”
IT不再沉迷于抽象的“普遍利益”,而是沉迷于低级的愿望清单,仅由于这一点,它已发展成为一个庞大的行业,成千上万人在其中工作。 编程曾经是一个精英问题,现在任何傻瓜都会坐一年左右,然后去编写代码。
而且,当他进入这个行业时,将没有时间去深入研究-今晚需要该产品,否则我们将蒙亏。 挖掘深度和学习技术变成了一种嗜好,只有这样才能避免因意识到自己的一文不值而发疯。
在一个需要每周一次将新功能投放市场的系统中,您需要简单的方法和原始工具。 当一些很酷的开发人员想出一种新技术时,他会尝试使其成为大多数人的需求,因为大多数人的需求是现代世界的主要价值。 这就是为什么这里有这样的哲学和原因。
我认为-我不需要所有这些操。 所有这些都会导致拒绝。
如果仔细观察,我的VSCode充满危险的症状。 我的tslint不允许我添加额外的空间。 如果我用错误的字母命名变量,则不会构建我的代码。 我的编译器无法正常工作,因为我尚未向公共方法添加注释。 这里的一切都很简单-编写,伙计们,使用相同的代码。 不露面的代码。 这对您而言不是一本小说,作者的风格到底是什么?
我通常同意这样的约定是件好事,但前提是它们与代码的外观有关。 当您被带走的那一刻,有机会选择这段代码的工作方式是我最糟糕的噩梦。 想象一个案例:您编写了一个复杂的性能敏感模块,他们对您说:“听着,它太复杂了。 让我们简化一点,它将变得更糟并不重要。” 听起来荒谬吗? 事实如此。 说真的 是的,已经是。 他们没有将泛型添加到Go中,因为泛型很复杂。
Go是一种业务效果,而不是工程解决方案。 他自相矛盾。 在这里,他希望获得可靠性,而这会带来复杂性。 但是,行业的复杂性是出于可靠性的考虑。 泛型的存在只是为了可靠性,以便预期潜在的开发时错误。 是的,它们非常复杂。
在编程中,我想发挥创造力。 在设计系统时,我希望有很多选择。 我们在机器世界中模拟现实,但我可以肯定地知道:现实不是一件简单的事情,其中没有对与错的答案。 而且我感觉像Go这样的技术正在寻找简单的答案。 就像,让我们为每个任务做出正确的决定。 但这是个骗局! 它可能有效,但是总有更好的解决方案。 在我们没有高质量解决方案预算的事实的压力下,我们自己杀死了软件,然后令我们失望的是,一切工作都不好。

匿名代码的原理是要使我成为一台复制粘贴样板的机器。 考虑到这一点,我遇到了一个更加可怕的矛盾。
我一直相信开发的基本信息是:“所有可以自动化的东西都必须自动化。” 但具有讽刺意味的是,我的信息也是致命的。
我还不准备做我可以制造的机器可以做的事情。 这是非理性的,我被教导要理性。 但是由于我必须使一切自动化,所以事实证明我必须自动化和自动化-即开发。 事实证明,我们应该对逐渐将我们带入这一领域的语言感到满意。 也就是说,与大多数其他人一样,我的职业不应存在于理想世界中。
进展无法停止。 但是他可以采取不同的方式,我确信这是肯定的。 如果现在将编程变成Go轨道和不为人知的实践,那么我们将走上弯路,而不是您可以想象的最佳自动化。
我对这个问题的解决方法是乌托邦式的,不会受到批评。 我知道提供它为时已晚,但是仍然可以。
我将业务和IT分开,这样只有非营利组织才能进行编程。 并且他们的优先事项应该是技术的深度改进,摆脱日常工作。 从道德上说,要求“我们释放现存的东西,否则利润将消失”。 我将竭尽所能,使进入编程的门槛尽可能高,以免当经验丰富的工程师和昨天的课程毕业生被迫编写相同的代码时,这些工具不适合普通开发人员。
是的,这将使进展速度减慢几个世纪,并剥夺我们每天赖以生存的所有美味面包的生命。 但是,至少这将使进步的观念回到我们所相信的那种最强烈的理想主义冲动的时刻。