在对克林贡语言进行了一些愚蠢的思考之后,这来自于 邮政 我开始了一个愚蠢的爱好项目,创建一种编译为 Lua 字节码的克林贡编程语言。在最初的语言设计阶段,我查阅了有关的信息 克林贡程序员, ,并发现了这个克林贡编程规则:

一个真正的克林贡战士不会评论他的代码!

所以我决定我的语言 不支持评论, ,因为任何好的克林贡人都不会使用它们。

现在,许多克林贡语方式对我们人类程序员来说似乎并不合理,但是,在涉足我的爱好语言的设计和实现时,我开始意识到,克林贡语关于注释的规则即使不是很好,也确实非常合理。

删除编程语言的注释功能意味着我 来写 识字代码, , 没有例外。

所以这让我想知道是否有任何语言不支持注释?

有什么真正好的论据可以证明不从语言中删除注释吗?

编辑:需要什么好的评论示例吗?


P.S.> 无论如何,我上面的爱好语言是部分愚蠢的,所以不要过多关注我的实现,就像一般所需的注释概念一样

有帮助吗?

解决方案

我不知道我同意了“有”的声明“中删除从编程语言评论的能力意味着我不得不写有文化的代码,没有例外”,因为它是不作为,如果所有的代码进行了说明。我的猜测是,大多数人会写不可读的代码。

更重要的一点,我个人不相信在现实世界中不言自明的程序或API的现实。

我手动从分析整个的API的文档,我的论文的经验表明,往往你必须携带更多的信息比你能在单独的签名传达。如果你从你的语言消除界面的评论,有什么办法?没有文件是不是一种选择。外部文档是不太可能被读出。

至于内部文档,我能看到希望减少文件说服人们写出更好的点。然而,意见提供许多的合作和协调的目的,是为了提高人们对事物的认知。通过这些驱逐细节extenral位置,你正在减少他们来到未来读者的意识,除非你的工具是很大的机会。

其他提示

不要评论你在做什么,但为什么你这样做。

在什么是干净的,可读的和简单的代码照顾与变量名的适当选择来支持它。注释显示出更高的电平的结构的代码,不能(或者难以)通过代码本身显示。

哎,不能够在测试过程中快速地注释的线(或线)听起来讨厌我,尤其是当脚本。

一般来说,评论是一个疣,表明设计很差,尤其是长篇大论的评论,很明显开发人员不知道他们到底在做什么,并试图通过编写评论来弥补。

评论有用的地方:

  • 在修复程序旁边留下票号,以便未来的程序员可以了解业务需求
  • 解释一个特别棘手的黑客攻击
  • 一段代码的业务逻辑注释
  • API 文档中的简洁描述,以便第三方可以使用您的 API

在任何情况下,程序员都应该努力编写描述性代码,而不是编写描述写得不好的代码的注释。话虽这么说,我认为语言应该而且必须支持注释有很多正当的理由。

您的代码有两个不同的受众:

  • 编译器
  • 像我们这样的人类

如果您选择完全删除注释,那么您所采取的假设是您将只考虑编译器,而不考虑其他任何事情。

当然,作为克林贡人,您可能不需要评论,因为您不是人类。也许您可以通过用 IL 说话来向我们清楚地展示您的能力?

您不要的需要的代码中的一个断言,因为在释放模式,他们都走了。但是,当C ++没有内置的说法,有人写断言宏来取代它。

当然,你不这样做的需要的意见,或者说,或多或少一样的道理。但是,如果你设计语言没有意见,人们会开始做这样的事情:

HelperFunctionDoesNothing("This is a comment! Blah Blah Blah...");

我很好奇。如何从声明静态字符串包含注释,然后无视的FUNC /方法/程序/战斗其余变量阻止某人/不管?

var useless_comment = "Can we destroy our enemies?"
if (phasers on full) return Qapla'

语言需要评论。至少有意见95%都能够被清晰的代码来代替,但仍有假设你需要记录和你绝对需要记录,如果有,你正在周围的一些外部问题。

我从来不写评论,而不首先考虑,如果我可以改变的代码,以消除它的需要,但有时你不能。

虽然所有源代码默认都受版权保护。通常最好:

  1. 提醒阅读源代码的人它受版权保护

  2. 告诉人们该源代码文件的许可条款是什么

  3. 告诉他们是否正在查看受保护的商业秘密

不幸的是,如果没有评论,很难做到这一点。

我是唯一一个谁注释掉几行代码的用于多种目的?

虽然这是真的,人类必须能够评论的代码,它不是绝对必要的语言直接支持评论:对于大多数语言,这将是微不足道的编写删除一行注释(例如在脚本中,所有以“#”或其它字符),则运行编译程序。开始的行

而事实上,我感到惊讶和失望地得知,即使是我最喜欢深奥的编程语言支持注释:的 Brainf **亩空白。这些语言是为了难以阅读,因此它好像他们不应该支持评论。 (而不是是我最深奥的语言: LOLCode ,这意味着是自我说明,在大笑猫语音)

我想从这个角度上其他的应答者不同意:我说的,是真的你的克林贡语的编程语言的愿景,并且不支持的意见

针对意见的一点是,它们往往经常落入过时的代码。任何时候你添加冗余,你冒着这种不一致的。

有实际上是当一群使用NLP分析在一些大型系统锁定的意见,然后把它们比作静态分析的结果,并能够修复一些bug这种办法,我已经看到了一些有趣的研究。

不识字的编程尽可能多的评论,因为它是代码?当然,很多东西我见过的编程书籍有尽可能多的解释代码,如果没有更多的评论。

您可能会认为,开发商在你的语言写作会做出额外的努力写清楚代码,但举证责任实际上是在,以设计语言,它的这样的表现它并不需要进行评论。该死的,甚至不是英语就是这样(我们仍然圆括号!)。如果您的语言没有这么设计的,它很可能为可用作Brainfuck享受Brainfuck的普及和尊重。

我应该添加链接或链接是考虑commentlike?

此外,人们就会想方设法通过劫持字符串和滥用变量名(即做多站在征求意见没有其他),如果他们需要添加评论。你读过的哥德尔艾舍尔巴赫的?

完全删除评论功能将是一个坏主意。当然,开发人员必须学会用最少的注释编写代码,即:编写自记录代码,但在很多情况下,人们必须解释为什么要这样做。考虑以下情况:

  • 新的开发人员可能会开始维护代码,而原始开发人员已离开/退出项目
  • 规格或市场需求的变化会导致一些违反直觉的事情
  • 版权声明,特别是在开源的情况下(某些开源库要求您这样做)

根据我的经验,新程序员倾向于更多地进行评论,随着他们发展专业知识,他们的代码往往会变得自我记录和简洁。一般来说,评论应该是关于“为什么”而不是“如何”或“什么”。

NO - 没有一个单一的编程语言,在那里,需要评论

语言是计算机。该意见是人类。你可以写0%意见的程序。它会执行,无论对错。你可以不写,用100%的意见的程序。它会既不能编译 - 没有main()等 - 或者,脚本语言,究竟做什么

,此外,真正的程序员不会评论他们的代码 。就像克林贡。

虽然我的URI回应同意,我也取得了不评论的语言。 ( ichbins 。)的语言是为了尽可能地简单同时仍然能够清晰地表达自己的编译器;因为你可以做,没有意见,他们得到了抛弃。

我的工作和关闭上不支持注释修订,但有一点不同:有文化的编程风格嵌套在文本而不是嵌入在代码中的注释代码。它也可能会得到例子/测试案例后来成为一流的语言功能。

祝克林贡黑客。 : - )

我不能告诉你我是多么的Javadoc感谢 - 这是非常简单的注释中成立。所以,这至少一个感测在该评论是有用的。

没有,当然语言不必有评论。但是,一个(有用的)程序就必须有意见......我不同意你的想法识字代码没有意见一致。一些很好的代码与注释容易理解的,但只有没有困难。

我觉得意见在许多情况下需要。

例如,认为算法的那些的。假设有C编写的函数,它解决了旅行推销员问题时,有广泛的可用于处理这个问题的技术。和代码通常由它的隐性性质

如果没有明确地描述该参数和所使用的,通过使用注释的算法,这几乎是不可能重复使用这一段代码。

我们能生活在没有对代码的注释?当然,但不会使生活更轻松。

  

是一门编程语言必要的注释?

没有。在事物的宏伟计划编译器可能不关心评论,只是想代码来压迫到一个较低的共同点。

  

它是有用的编程语言来提供评论构造?

是。注释是一个程序员不只是假冒非常有用的,像他们知道自己在做什么,但在调试和有效地记录为好。

因为他们安抚人阅读你的代码中的注释是有用的 - 可能是“你的未来。” - 你已经想到了她的幸福。

这将是比你想使地方的意见是不可能的语言困难。

if (false) {
    print("This is a comment. Chew on that, Klingons!")
}

我觉得这个问题可能会变得如何自足会没有意见的语言是什么?如果例如,它编译成是那些获得其他代码中使用的DLL,然后一个人如何知道的是什么需要,修改,并回到方面任何超出函数签名?我不希望有函数名被数十字,试图表达什么可以与能够像Visual Studio中,例如内对象浏览器中被用作文档功能上述评论很容易实现。

当然!!

的主要原因是新手开发者。不是每个人都知道如何编写代码识字。其实现在有成千上万在那里,当他们看到一个没有得到一个NullPointerException异常。

我们都开始在一些点。

但是,如果你的目标,以“专家”的开发而已,为什么在第一个地方的语言打扰。您应该使用蝴蝶!这是真正的开发者使用什么!

评论是必须的,尽量让它更难,如果你想(像使用#// ## /序列创建注释或类似的东西),但不离开它。

:)

我同意你说的很好写的代码并不需要任何评论为“代码仅提供给程序员良好的文档。然而,这是很理想的情况下,不是每个人都写代码的好所有的时间。 因此,为了使写得不好的代码中好,需要未来的评论。

我曾经写过一个VB应用程序(一个愚蠢的棋盘游戏由专卖启发),而不任何注释。但我这样做,只是为了激怒我的老师,谁告诉我们的意见是为“无论我们发现的相关的,所以我们可以过一会。”

完美代码需要零个注释。它应该是简单,并且通过完整新手understandible。

任何代码需要评论,我试图解释每次我在1个或2行写功能的原因和工作情况。

这是唯一的解释本身存在于一个完美的世界中的代码,总有一些奇怪的黑客或理由做某事快速正肮脏而不是propper方式。 要记住,最好的办法是进行评论为什么代码不会做什么的,好的代码解释做了什么的99%的时间。

写简单的东西,像一块代码,可以解决数独题(3 while循环相当简单),并尝试读取3个月后。你会发现immidiatly的东西,是不完全清楚。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top