【问题标题】:Does programming terminology have an inbuilt tendency away from clarity?编程术语是否具有远离清晰的内在趋势?
【发布时间】:2010-10-21 00:41:42
【问题描述】:

不久前,我决定学习 C#,这是一次相当有益的体验,因为这门语言似乎很容易上手。

也就是说,术语除外。并不是说有大量的行话(学习任何新的语言/技术都会带来)——而是使用的术语看起来要么笨拙、不清楚或不必要地复杂。与(例如)IEnumerable 集合相比,“数组”似乎很容易向某人解释,因为它本身就是一个名称。

但这超出了特定的语言/平台。采取以下措施:

  • 函数/子例程与方法
  • 错误与异常
  • 临时表与公用表表达式
  • 用户拥有的表与架构(在 SQL Server 中)

我很欣赏这些不是完全等同的术语,但“原始”术语似乎更合适,因此可以说更容易解释或理解。

那么……所有事物的“好”名称都已经使用了吗?

或者这些概念只是变得更加复杂,因此与日常语言更加相距甚远。这种趋势有反例吗? (显然有很多任务要简单得多,但这通常是外部库/操作系统/等执行程序员以前必须做的事情的结果,而不是更好地描述相同的工作)。

或者我完全错了,我的想法只是因为小时候学习 BASIC 而扭曲(根据 Dijkstra)?

【问题讨论】:

  • 我有时认为某些词也被过度使用了,这对不习惯行话的人来说并不总是很有帮助。有时有些词会说同样的话,但更清楚。

标签: terminology


【解决方案1】:

每个知识领域都倾向于发展行话,以便可以讨论特定领域的概念,而无需费力地使用用于表达这些概念的语言。

当我学习数据建模时,有人强调开发一个好的模型的关键是理解——如果有帮助,请记录——领域词汇。我当然发现这是对的,它的附带好处是帮助我与系统用户建立联系,了解他们的困难,并看到可能的解决方案,如果没有通过语言进行更深入的理解,我就不会看到这些解决方案。

如果您在某个领域呆了足够长的时间,这些词就会变得和您的其他词汇一样熟悉,那么挑战就是保持正常的对话而不听起来像个怪胎。 ;-)

【讨论】:

  • 确实如此。有点离题但相关的是每个行业的 TLA。无论你在哪里工作,他们总是会摇头。作为初级开发人员,通常更难将所有这些都整理好然后做你的实际工作;)
  • “特定领域”本身就是非常特定于领域的 :)
【解决方案2】:

这些词的大部分含义并不完全相同。如果以函数与方法为例:

据我了解,函数是使用命令式语言(如 C)或与对象无关的 JavaScript 函数独立存在的东西。

如果您使用术语 方法 代替,您已经暗示您使用的语言是面向对象的并且您正在对一个对象进行操作。

【讨论】:

    【解决方案3】:

    很多时候这些术语看起来令人困惑,因为它们旨在尽可能明确地描述语言功能。

    例如,Error 在语义上与 Exception 不同,因此我们需要用不同的术语来描述它们。如果我们将所有异常都称为错误,你会用什么词来区分错误和 IllegalArgumentException 之类的东西?

    【讨论】:

      【解决方案4】:

      或者我完全错了,我的想法只是因为小时候学习 BASIC 而扭曲(根据 Dijkstra)?

      是的,这可能是原因。

      【讨论】:

        【解决方案5】:

        程序员喜欢文字。我们得到了很多钱,以将它们按正确的顺序排列并让“魔术”发生。因此,我们很自然地描述了我们用令人痛苦的细节所做的事情。程序员通常准确他们所说的。

        正如您所说,所有这些术语都不是确切的同义词,它们各自的含义不同。例如,“list”(对我来说)意味着一个链表,我可以在其中有重复的值。 “数组”意味着我不能有重复的值。其他语言的人在这里会不同意我的观点,这与我们在交流中想要的相反:思想平等。

        即使我说“平价”这一事实也说明了这里的问题。基本上,这个词越晦涩,它的意思就越准确。 “汽车”对几个人意味着几件事,但“副翼”几乎意味着一件事。

        我认为语言设计者和作者努力将所有语义含义打包到他们的术语中,但它们还不够晦涩。

        太多的“重载”:)

        【讨论】:

          【解决方案6】:

          我认为这在很大程度上取决于开发社区。​​p>

          例如,PHP 几乎没有行话。这可能是因为 php 社区对将页面获取到浏览器感兴趣,而不是考虑将“原创”内容放入他们的论文中。

          Perl 有自己的奇怪但清晰的行话(“祝福这个对象”?),这可能反映了 Larry Wall 的口才和古怪。

          C++ 和 Java 可能是“为轮子发明新词”的最糟糕的罪犯。 “坚持”可能是最糟糕的例子;我们真的需要另一个术语来“写入文件”吗?这可能是由于大量 Java/C++ 社区成员试图为这些内容考虑“原始”主题,而不是如何将页面输出到浏览器。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-02-05
            • 1970-01-01
            • 2012-03-07
            • 2011-11-15
            • 2012-05-10
            • 2010-09-30
            • 2016-12-12
            • 1970-01-01
            相关资源
            最近更新 更多