什么使语言可读或不可读?

4 syntax whitespace readability language-design

我听说有人说他们可以在一年后理解他们的python代码而不是他们的XYZ代码.为什么?我不知道python语法有什么好处或者对另一个有什么不好.我喜欢C#,但我觉得VB.NET代码更容易阅读.我正在进行语言设计,所以你发现什么使代码/语法/语言可读或不可读?

mos*_*ald 12

经验.


Jam*_*ers 6

IMO,其中一件大事就是重要的白色空间.Block indention有很长的路要走,像Python和F#这样的语言可以提供一定程度的空白空间,这有助于提高可读性.

像Java和C#这样的代码往往是结构化的,可读性成为它开始编码而不是语言本身的焦点.

  • @Edan Mayor - 试着看一下用PHP发送电子邮件的白痴版本...打赌你不能猜到我现在在做什么...... (2认同)

Dar*_*rio 5

当代码以明确的"陈述你想做什么"的方式编写时,代码是可读的.这仅取决于sofar中的语言

  • 它可以让你表达你想要的东西(功能编程!)
  • 它并不强调密码陈述

其余的取决于你用来编写代码的样式(即使Perl也可以理解!),但某些语言使hacky语句更容易.

明确:

expr = if not (ConditionA and ConditionB) then  ...  else  ... 
Run Code Online (Sandbox Code Playgroud)

目前还不清楚:

expr = (!(conditionA && conditionB)) ? ... : ...
Run Code Online (Sandbox Code Playgroud)

明确:

foreach line in lines:
    if (line =~ /regex/):
        // code
Run Code Online (Sandbox Code Playgroud)

目前还不清楚:

... if /regex/ foreach(@lines);
Run Code Online (Sandbox Code Playgroud)

明确:

x = length [ x | x <- [1..10], even x ]
Run Code Online (Sandbox Code Playgroud)

目前还不清楚:

int x = 0;
for (int i = 1; i <= 10; ++i)
    if ((i&&1)==0) ++x;
Run Code Online (Sandbox Code Playgroud)


小智 1

当一个字符就足够时,需要一个词 - Pascal 和 VB 花园中的一块石头。

比较:

Block ()
Begin
  // Content
End
Run Code Online (Sandbox Code Playgroud)

Block
{
  // Content
}
Run Code Online (Sandbox Code Playgroud)

它需要额外的大脑处理来阅读一个单词并在心理上将其与一个概念联系起来,而单个符号可以立即通过其图像识别。

这与自然语言、普通文本语言与象形文字符号语言(亚洲语族)的区别是一样的。第一组的处理速度较慢,因为基本上文本被解析为一组概念,而象形文字代表概念本身。将其与您已知的内容进行比较 - XML 的序列化/反序列化会比二进制格式的自定义搜索更快吗?

  • 我不确定您认为哪个示例更具可读性。 (4认同)
  • 所有这些多余的 { 和 } ,缩进还不足以识别一个块吗? (2认同)