编程语言中的新想法在哪里?

时间:2010-05-22 11:43:24

标签: programming-languages history language-design

我最近一直在研究编程语言的主题,从我所看到的,几乎没有严肃的语言尝试制作真正的“新”事物,这些事情在他们创作之前就没见过。

  • 为什么自1980年以来所有或多或少成功的编程语言都只是结合了前人的各个方面?

我简直不敢相信编程语言“不能再好了”..

12 个答案:

答案 0 :(得分:16)

而不是真正的“新”我会说现代编程语言逐渐引入了数十年来在计算机科学中已经知道的想法,但并没有真正打击行业 - 或者以前使用的是小众语言,但不是主流的。

例如,LINQ的许多想法本身并不新鲜 - 但对于许多开发人员而言,LINQ将是他们的第一次体验。

将其视为“产品化”以前“实验性”功能的过程。当我最近与Eric Lippert谈话时,他说C#团队试图避免将“开放研究”的想法纳入语言 - 仅仅是因为他们无法判断这些想法是否会长期存在。在语言方面有充足的实验空间,但可能不是主流语言。

答案 1 :(得分:14)

呃,Perl 6

  • 关于值,变量,子例程和类型的活动元数据
  • 参数化角色
  • 可以重写AST或源代码的宏(在Perl中实现)
  • 在Perl 6中实现的语法,可以通过代码扩展或修改
  • 多个调度,分配调度,委托给调用链中的下一个项目
  • 语法作为语言中的第一类对象 - 几乎可以解析任何内容
  • 可以使用任何Unicode字符的用户定义的中缀,前缀,外接操作符
  • 可选的强类型
  • 多态相等测试
  • 假设变量
  • hyperoperators(列表的SIMD处理)
  • 协程
  • 懒惰列表
  • 交汇点(具有多个值的变量)
  • 自动并行化代码

Perl 6采用了Perl,Ruby,Python等功能集,添加了一个可选的强类型系统,Smalltalk的OO,以及Haskell的功能 - 以及一些创新:就像Perl 5带来了正则数据集作为主流,Perl 6使非常规语法成为一流公民。是的,它正在开发中;虽然不完整,但它正在快速移动:Rakudo Perl 6

答案 2 :(得分:6)

人类还没有每两年发明一次车轮;我们不断改进它。这同样适用于编程语言;我们改进它而不是取代它。

答案 3 :(得分:6)

SubtextCoherence呢?

答案 4 :(得分:4)

编程语言可以变得更好!您是否查看了AgdaEpigram等语言?当然这些是研究语言,所以也许不是你所谓的“严肃语言”。但是,如果您对未来主流语言的位置感兴趣,可能会提供一些见解。

答案 5 :(得分:3)

嗯,lisp有一些没有人复制过的东西,并且一直存在(我正在寻找普通的lisp,特别是)

答案 6 :(得分:3)

计算机语言一直都有新的想法,但他们仍然需要编译成相同的汇编程序指令,因此不会有根本的变化。最后,所有代码仍然包含循环,内存段(=>变量)和大量跳转指令。

编程语言的新途径是量子计算,这可能是一个符合您口味的“足够新”的想法。

答案 7 :(得分:2)

新语言总是会出现,请看scala

答案 8 :(得分:2)

因为我们还没有弄清楚如何使用自1970年以来一直存在的许多“旧观念”,并且实际上没有任何基本上新的观点看起来像他们完全改变游戏的方式会使使用它们比改进我们已有的东西更有用。

答案 9 :(得分:1)

我认为我们可以收集我们日常使用的设计模式,并将它们添加到专门的语言中。

为此目的,Vala是一个好主意,特别是当您主要使用C时。它为您提供面向对象的垃圾收集功能等等。我认为这是我测试过的最成功的源代码编译源之一。它仍然是一个软浑浊的东西。

答案 10 :(得分:0)

如果它没有破坏,就不要修理它。

答案 11 :(得分:0)

新语言确实包含了新的想法;物理计算的东西比以往任何时候都多。看看Arduino;它的语言帮助它变得流行,更不用说没有它它只会是一堆电线。它不仅仅是语言,也是我们使用它们的方式。如果人们需要一些不可用的东西,他们就可以做到。更不用说,编程语言与它们运行的​​硬件以及由谁创建的操作系统密切相关。 Windows只允许程序执行这么多操作。此外,制作语言的人有时只想要一个更轻量,更易于使用和开源的替代品,它们可以做与现有相同的事情。 “你不能让你吃蛋糕。