Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果一些命名约定,如大写方法名,是如此的不受欢迎,为什么语言允许它们呢?_Java_Language Agnostic_Naming Conventions - Fatal编程技术网

Java 如果一些命名约定,如大写方法名,是如此的不受欢迎,为什么语言允许它们呢?

Java 如果一些命名约定,如大写方法名,是如此的不受欢迎,为什么语言允许它们呢?,java,language-agnostic,naming-conventions,Java,Language Agnostic,Naming Conventions,在允许最令人震惊的命名惯例禁忌的语言背后,是否有一个实际的或历史的理由?最明显的两个例子是大写函数名和小写类名,我经常在stackoverflow新手问题中看到它们被违反 我不知道在哪里可以做这些事情,所以为什么允许编译它们呢?目前,我的理论是 在语言建立的时候,这并不是一个禁忌 这将使一些重要的边缘案例变得不可能,或者 语言的工作不是强化好的风格 我找不到关于这个话题的任何东西(下面有一些链接) 有些约定,例如变量名开头的下划线,或匈牙利符号(我在评论中提到了后者),虽然没有被大多数人接受

在允许最令人震惊的命名惯例禁忌的语言背后,是否有一个实际的或历史的理由?最明显的两个例子是大写函数名和小写类名,我经常在stackoverflow新手问题中看到它们被违反

我不知道在哪里可以做这些事情,所以为什么允许编译它们呢?目前,我的理论是

  • 在语言建立的时候,这并不是一个禁忌
  • 这将使一些重要的边缘案例变得不可能,或者
  • 语言的工作不是强化好的风格
我找不到关于这个话题的任何东西(下面有一些链接)

有些约定,例如变量名开头的下划线,或匈牙利符号(我在评论中提到了后者),虽然没有被大多数人接受,但分歧较小

我是作为一名Java程序员问这个问题的,但我也对其他语言的答案感兴趣

一些链接:


    • 编码风格就像写作风格一样。如果你的写作风格很难阅读,而且读得不好,那么你的大脑实际上很难理解你在读什么

      然而,如果像在正常阅读文本中一样,它是以一种与你的头脑所期望的很好匹配的形式排列的,那么它是清晰和容易理解的

      另一方面,如果这种语言真的强迫你使用正确的语法来写所有的东西,那么它不仅会使编码变得缓慢和笨拙,而且会限制你的表达能力

      许多年前,我遇到了一种语言,它允许您在变量名中添加奇怪的符号。允许用户执行以下操作:

      var a=b = a = b;
      var c<d = c > d;
      if ( a=b & c<d ) ...
      
      var a=b=a=b;
      var-cd;
      
      如果(a=b&c取决于语言设计者的意图,一些语言在实现和设计者认为应该如何做时比其他语言更固执己见

      我现在能想到的最简单的例子是Go,它内置了单元测试和代码格式。设计师认为事情应该以某种方式完成,他们为您提供了实现这一点的工具

      其他语言与Scala完全不同,Scala的语言设计人员在其实现中非常不专注,并为您提供以10种不同方式完成任何给定任务的工具


      这并不是说一些语言是在专制统治下建立的,而另一些语言的要求非常宽松。这只是语言设计师的选择,我们最终不得不接受。

      我想在这里是3。这听起来更像是基于观点和假设的,而不是事实,但见鬼,我个人倾向于ard短列表中的第2项和第3项。强制执行样式不是语言的工作(在大多数情况下,也就是说……Python中的空格之类的东西是例外),而且“违反”可能有有效的内部原因给定产品/团队/公司/等内部的惯例,语言不应设置障碍。最终,在这一点上,最实际的原因是更改它会打破现有的代码库,这将是非常糟糕的。好吧,如果没有可用的信息,这都是水晶球。到目前为止,答案似乎是:cre每种语言的作者都会决定应该给他们的用户施加多少风格。这就是为什么有些惯例是允许的,尽管大多数人认为它的风格不好。很抱歉,我没有理解你的第一段。这正是我的观点。因为它不符合正常的写作标准,所以阅读起来非常困难。你似乎是建议禁止甚至最公然违反约定的语言是一个潜在的滑坡,这将迫使他们的程序员使用特定的风格。@aliteralmind-我希望建议应用不影响代码功能的限制的语言是不必要的限制。请参阅我的补充。Good指出。我认为这是同一件事的两个方面。作为语言创造者,你根本不会将任何风格强加给你的用户,这必然会导致糟糕的风格。你在阐述@OldCurmudgeon的最后一段,这是这些语言的创造者正在决定的基本概念:将多少风格强加给他们的使用我的意思是:“另一方面,如果这种语言实际上迫使你使用正确的语法编写所有东西,那么它不仅会使编码变得缓慢和笨拙,还会限制你的表达能力。”