Programming languages 编程语言中的新思想在哪里?

Programming languages 编程语言中的新思想在哪里?,programming-languages,history,language-design,Programming Languages,History,Language Design,我最近一直在研究编程语言的话题,从我所看到的情况来看,很少有严肃的语言尝试创造出在它们诞生之前从未见过的真正“新”的东西 为什么自1980年以来几乎所有成功的编程语言都只是结合了它们的前辈的一些方面 我简直不敢相信编程语言“再好不过了”。如果它没有坏,就不要修理它。人类没有每隔两年发明一次轮子;我们不断地改进它。编程语言也是如此;我们改进了它,而不是取代它。好吧,lisp有一些还没有人复制过的东西,并且一直存在(我特别关注common lisp)新的语言不断出现,看看。计算机语言一直有新的想

我最近一直在研究编程语言的话题,从我所看到的情况来看,很少有严肃的语言尝试创造出在它们诞生之前从未见过的真正“新”的东西

  • 为什么自1980年以来几乎所有成功的编程语言都只是结合了它们的前辈的一些方面

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

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

人类没有每隔两年发明一次轮子;我们不断地改进它。编程语言也是如此;我们改进了它,而不是取代它。

好吧,lisp有一些还没有人复制过的东西,并且一直存在(我特别关注common lisp)

新的语言不断出现,看看。

计算机语言一直有新的想法,但它们仍然需要编译成相同的汇编指令,因此,不可能有根本性的变化。最后,所有代码仍然由循环、内存段(=>变量)和大量跳转指令组成


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

因为我们还没有弄清楚如何很好地利用至少从1970年以来就存在的许多“旧想法”,实际上,还没有任何根本性的新想法能够彻底改变游戏,使使用它们比改进我们已有的更有用。

那又如何呢?

而不是真正的“新”我要说的是,现代编程语言正在逐渐引入一些在计算机科学领域已经知道了几十年,但并没有真正影响到工业界的思想——或者说,这些思想以前是在利基语言中出现的,但不是在主流语言中出现的

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

可以将其视为一个“生产”先前“实验”特性的过程。最近我与埃里克·利珀特(Eric Lippert)交谈时,他说C#团队试图避免在语言中加入“开放研究”的想法——只是因为他们无法判断这些想法是否会在长期内产生效果。在语言方面有很大的实验空间,但在主流语言中可能没有。

呃,

  • 值、变量、子例程和类型的活动元数据
  • 参数化角色
  • 可以重写AST或源代码的宏(用Perl实现)
  • 一种用Perl 6本身实现的语法,可以通过代码进行扩展或修改
  • 多重分派、分布式分派、委托给呼叫链中的下一个项目
  • 语法作为语言中的第一类对象,几乎可以解析任何东西
  • 可以使用任何Unicode字符的用户定义中缀、前缀、环绕运算符
  • 可选强类型
  • 多形等式检验
  • 假设变量
  • 超运算符(列表的SIMD处理)
  • 协同程序
  • 懒惰列表
  • 连接(具有多个值的变量)
  • 代码的自动并行化

Perl 6采用了Perl、Ruby、Python等的功能集,添加了可选的强类型系统、Smalltalk的OO和Haskell的功能能力,再加上一些创新:正如Perl 5将正则表达式引入主流一样,Perl 6使非正则语法成为一流的公民。是的,它正在开发中;虽然还没有完成,但进展很快:。

编程语言可以变得更好!你看过类似或的语言吗?当然,这些是研究语言,所以可能不是你所说的“严肃语言”。但是,如果您对主流语言未来的发展方向感兴趣,它们可能会提供一些见解。

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


为此,这是一个好主意,尤其是当您主要使用C时。它为您提供了面向对象、垃圾收集等功能。我认为这是我测试过的最成功的源代码到源代码编译器之一。而且它仍然是一种软而泥泞的东西,可以玩弄。

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

好吧,scala是ruby和java的结合体,所以他关于语言只是结合在一起的说法仍然是正确的。@dbemerlin:ruby或java(或任何其他语言)中哪一种有提取器(非构造函数上的模式匹配)?路径相关类型如何?自我类型?“很少甚至没有严肃的语言尝试创造真正的“新”事物”?真正地你有证据支持这一点吗?什么是“严肃”语言?你在寻找什么神秘的“新”事物?我不是OP,但我认为在非严肃语言中,他指的是脑筋、空格、LOLCODE等等。。。他们有新的想法。。。很抱歉你的问题被打断了。你可能会喜欢一个密切相关的问题,关于语言是如何产生的,为什么…其他相关的东西:我想在某个地方有一个类似的问题,但它没有出现在我的搜索中…如果你不能说出5件事的话