programming-languages - 谁决定将哪些功能纳入语言?

标签 programming-languages language-features

我对语言功能有一个想法:

在 C# 中,如果能够将 foreach 语句与 for 循环结合起来(例如最多只运行 50 个项目),对我来说会很有用。我意识到这可以这样做:

int count = 0;
foreach (item in Items)
{
    if (count > 50) break;
    item.acknowledge();
    count++;
}

但我认为如果可以这样写(或类似的东西)就好了:

foreach (upto 50 item in Items)
{
    item.acknowledge();
}

虽然这个建议相当微不足道,但它让我想知道谁可以决定哪些语言特性使其成为一种语言。 C# 是由 Microsoft 首创的,所以我确信公司内部有一个专门负责这方面工作的部门,但是像 PHP 这样的开源语言呢? (java算不算?我知道他们在java 7中有switch字符串,谁负责?)过程是什么?

最佳答案

该过程取决于语言。例如,Java 有一个用于批准语言(我认为是核心库)更改的特定且正式的流程:基于称为 JSR 的提案的 Java 社区流程。 (我不确定自 Oracle 收购以来这种情况是否发生了变化;我个人对 JCP 并不熟悉。)对于 C#、Visual Basic 和 F# 等 Microsoft 语言,看门人是 Microsoft 内部的语言设计团队(正如 faester 所言) )。这些团队通过非正式方式从客户那里获取意见,但也通过 MSDN Connect 和 Microsoft MVP 计划等计划更正式地获取意见。此外,还有像 Python 这样的社区,其中的讨论和设计过程更加开放(例如,在邮件列表上进行),尽管在 Python 的情况下,仍然有最终权威 Guido van Rossum。

因此,如果您孤立地问“谁来决定”,实际上没有任何答案。你必须问“谁决定使用 X 语言?”真的。

关于programming-languages - 谁决定将哪些功能纳入语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5904006/

相关文章:

android - Android在String.xml中写入数据

android - 可以在android中仅设置应用程序的默认英语

c# - C# 中的双重分派(dispatch)?

java - 仅某些类的接口(interface)?

programming-languages - 用编程语言进行测试的通常很短的解决方案的问题

email - 以编程方式发送大量电子邮件

c# switch 语句比 vb.net 'case' 更受限制

python - Python 2.7 的哪个微版本引入了集合理解?

language-agnostic - 最重要的结构化软件设计原则是什么?

python - 如何传递本地变量并直接从另一个函数访问变量?