捍卫代码的简洁性

捍卫代码的简洁性

原文:https://medium.com/hackernoon/in-defense-of-code-conciseness-33ba0904a35e

我同意你的观点,人们必须避免学习一门新的语言,仅仅因为其他人都在学。如果 Java 对你有用,并且你发现自己在其中很有效率,你应该继续用它写作。正如我个人所做的

但我认为,与此同时,这篇文章破坏了代码简洁的价值。当然,当你在这样一个原子级别上分解一门语言的组件时,没什么大不了的。

键入一个分号只需要额外的 200 毫秒左右。就像键入几个额外的大括号一样。或者在这里或那里添加几个关键词。没什么大不了的。除了大多数人关心代码简洁的原因与节省击键没有什么关系。如果是这样,这本身就是一个可怕的理由。

对于已经编程几年的人来说,这可能不是问题。但是试着向刚刚起步的人解释这段代码。

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println('Hello World'); 
  }
}

什么是类?什么是公立班?void 是什么意思?这个职业需要命名为 HelloWorld 吗?main 是什么意思?什么是系统?最重要的是,为什么我需要知道所有这些才能简单地在屏幕上打印一些东西呢?所有这些术语都没有告诉我程序的行为,它只是我必须做的事情。

当然,这个 Python 脚本会显得更有吸引力!(也是有效的 Ruby 语法)

print 'Hello World' 

再说一遍,我知道这些看起来是很琐碎的问题。但是像这样的结构使得代码更难理解,同时对简单的问题没有什么好处。这种冗长增加了一个人开始学习一门语言和使用这门语言的时间。

像 Java 和 C++这样的语言给了你大量的工具和无数的概念,你可以把它们组合起来解决各种复杂的问题。但是当应用于简单的问题时,它们会导致过于复杂的解决方案,带来大量不必要的语法干扰。

这正是现代语言从手动内存管理转向垃圾收集的原因。以便程序员花更少的时间调试内存泄漏,花更多的时间构建东西。

这与人们在提问时倾向于选择简单、易懂的答案,而不是冗长、复杂、充斥着各种不相关的技术术语的解释是一个道理。

说了这么多,我还认为很多时候赘言也是一件好事。正如一个更好的词汇表可以让你更好地表达你的想法一样,一门拥有大量设计良好的结构的编程语言也是如此。此外,如果不做出一些牺牲,就无法获得 Java/C++的性能优势。

我个人并没有攻击你的作品或你自己的意思。我想说的唯一一点是,重要的是不要破坏写得好的、易读的——正如你所说的——“优雅的”代码的价值。干杯:-)

黑客中午是黑客如何开始他们的下午。我们是 @AMI 家庭的一员。我们现在接受投稿并乐意讨论广告&赞助机会。

要了解更多信息,请阅读我们的“关于”页面在脸书上点赞/给我们发消息,或者简单地说, tweet/DM @HackerNoon。

如果你喜欢这个故事,我们推荐你阅读我们的最新科技故事趋势科技故事。直到下一次,不要把世界的现实想当然!


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除