编码错误的编程语言标准

时间:2013-12-23 16:33:20

标签: language-agnostic programming-languages

在比较编程语言和IDE时,我认为有一个标准从未被提及,我认为非常重要。

问题:

您知道是否存在此标准的定义(我将要定义)?请提供参考。

该标准,我将其称为“编码错误索引”,表示编程环境在运行时将捕获的编码错误的数量。

这是一个与IDE +语言相关的百分比。

例如,Eclipse + java中的hello world:如果我删除其中一个粗体字母,则会显示错误消息。

  

打包主;
  公共班级主要{
   public static void main(String [] args ){
   System.out.println(“ Hello Horld ”);
  的}
  }

在这个例子中:106个字母中有91个粗体字母,占86%。

1 个答案:

答案 0 :(得分:3)

根据我的个人经验,我不得不说这是一个非常无用的指标。对于所有语言,编译器或解释器在运行时捕获的语法错误数为100%。您演示的是语法错误。

语法错误通常在您学习语言时发生。或者当你用一种你没有接触过的语言进行编程时。通常,熟练的程序员会将语言的语法内化,并在键入时避免使用它们。例如,C程序员很快学会用;结束语句,而Lisp程序员很快学会跟踪大括号(通常通过学习整齐地缩进代码)。

在行业中,即使在语法最少或没有类型系统的语言中,像语法或类型这样的琐碎语言细节也很少是导致错误的原因。您遇到的大多数错误都是:

package main;
public class Main{
   public static void main(String[] args ){
     System.out.println(" Goodbye World ");
   }
}

看看我在那里做了什么?错误是使用“再见”而不是“你好”。错误很少是偶然的 - 错误的代码几乎总是看起来正确和有意,几乎总是编译没有错误(否则它们将被称为编译错误而不是错误)。错误通常是由于对代码应该做什么的误解造成的。

这是一个无用的指标的另一个原因是不同的语言有不同程度的冗长。在以下两个例子中:

示例1:

package main;
public class Main{
   public static void main(String[] args ){
     System.out.prntln(" Hello World ");
   }
}

示例2:

prnt " Hello World \n";

两个示例都是完全相同的程序,在不同的语言中具有完全相同的错误。但是示例1将具有更高的“编码错误索引”,而示例2将具有更低的索引。这只是因为示例2中的代码开头较少,因此语法错误占键入字符的百分比较低。

但是从可读性的角度来看,人们可以很容易地发现示例2中的错误,甚至没有运行编译器或使用IDE,而示例1中的错误很容易被忽略。

这意味着编码错误索引不仅没有用,而且甚至可能通过给予可能更好的语言更低的分数来误导。

基准/指标与其存在的可能性直接相关是多么有用。无用的度量标准不太可能被使用,因此不太可能被发明/存在。即使有人发明了一个完全错误的指标也很可能被所有人忽略。