Rob*_*uld 11 programming-languages survey
似乎有许多"新"语言,但实际上似乎大多数流行的,非实验性的,已经在他们的青少年,真正的主流比大多数初级程序员更老.现在我只记得这个显而易见的事实,当我意识到本月(1994年2月)甚至"时髦"的Ruby语言是15.虽然像哈斯克尔这样的东西,但是每个人都要学习的东西比那个更老.
考虑到它是唯一真正使用的新语言,我可以想到10岁以下的是C#.但即使C#也没有真正的新功能,尽管它已经获得了它的前辈的一些最好的功能.
所以我想知道现在有哪些新语言及其相应的新功能/想法在10以下?从现在起10年后可能出现什么大事?任何新的语言功能都值得期待?或者我们已经完成了???
显然,没有什么新东西不是混合或改进.也许是LOLCODE,因为它的设计是荒谬的,但是像Brainf*ck和WhiteSpace这样的东西基本上都是古老的基于堆栈的汇编语言.
我们是否已进入编程语言的百科全书时代?
joe*_*ely 19
没有,我见过.
当然,总会有"新"语言出现.但我使用了恐慌报价,因为通常提供的所有例子都是:
具体例子:
促进,推广,应用和完善这些(以及许多其他)重要思想的工作是值得的.但这并不能使这些用途真正具有创新性.
当然,如果有人能够在十年前不存在的编程中提供真正原创概念的例子,我将感到高兴.
dsi*_*cha 11
D编程语言不到10年.它的独特功能包括传递const(从const对象可以访问的所有内容也是const),编译时函数评估,以及将函数注释为纯函数的能力,并让编译器对函数外部可见的副作用进行静态检查.还包括一个模板系统,它使C++模板,Java/C#泛型等变得羞耻:
static if声明与C++ 0x中的纸张类似,实际上已经实现并且有效.我认为这个问题的措辞表明没有创新,但事实上,在这里的讨论中所揭示的是,创新需要数十年的时间才能成为主流.
如果你在大约20年前问过这个问题,当OO是使用C++和Smalltalk以及诸如此类的"重大新事物"之一时,人们可以回答那只是Simula(1967)重新包装的问题.但是在1970年,我认为任何人都不会认为对象是"一项重大创新",而在Simula语言中它们只是"一种有趣的句法精确".随着时间的推移,面向对象逐渐发展,人们认识到OO是如何自然地建模/构建系统,设计模式被发现,......现在,许多语言只是将OO'视为理所当然'.但是很难找到人们会说"OO是一项伟大的新创新"的任何时刻,因为当它是新的时候,没有人会对软件工程领域的影响范围表示赞赏,并且当它的影响力显而易见时,
20年后,也许所有新的/流行的语言都会有类似今天Haskell的'类型类'这个功能(这是一个杀手级功能),但是这个问题的标准已经"太老了"才能成为一项创新,即使它可能是"下一件大事".
所以,是的,我打赌太阳下有新的东西,可能是数百种,但它们都是用微小的实验语言完成的,直到几十年后,当今最好的想法得到改进/证明并使它们成为现实时,我们才会欣赏它的新颖性.进入主流的方式.
我不认为最近的创新是在发明新功能.它一直在主流设置中提供旧的想法(和实用的).Lambda表达式就是一个很好的例子 - 像山丘一样古老,但绝大多数开发人员在C#3和VB9之前都不会遇到它们.
同样,两个功能可能之前独立存在,但从不使用相同的语言.我不想开始声称哪些组合是新的,但值得考虑.
顺便说一下.NET泛型的本质是"新的"吗?我不知道有多少计算历史可以说,但它与Java泛型(带有类型擦除)或C++模板之间存在明显差异(据我所知,专业化实际上是编译时的业务,需要模板的来源).