Har*_*ari 4 programming-languages language-design
这可能是一个愚蠢的问题,但我仍然要继续问它.现在我看到像Groovy这样的新动态语言正在为JVM开发,而Ruby这样的语言也越来越突出.
这些中的每一个似乎都在解决现有语言中的不同缺点.
是否存在任何一种或一组当前语言无法解决的问题?
严格来说,没有.如果一种语言可以被证明是完整的,那么它可以做任何计算机所能做的事情,毕竟如果有人愿意,可以在汇编中进行编程.新语言发展的原因有以下几个原因:
任何语言都有缺点,没有语言可以完美.C是低级别的,所以通常不是最好的语言来编程说一个网站,另一方面,我不想在php编程操作系统,这将是一场灾难,等等.
新语言的出现有很多原因:
没有明确的问题列表.有人通常根据自己的经验决定,没有什么能完全满足他想要的东西,然后尝试创造出能够做到的东西.有时候它有效,有时则不然.有时候它变得流行,而不是它变得流行.
编辑:重要的是要记住,当谈到"问题"时,它通常是主观的.许多人认为内存管理是导致垃圾收集增加的问题.不是每个人都同意.
此外,语言中的特征以及至少部分提示新语言的出现并不一定与问题有关.他们更关注什么是可能的,什么是时髦的.
闭包,一流的功能等目前很流行,尽管它们已经存在于Lisp中数十年了.这就是为什么大多数现代语言要么拥有它们,要么得到它们.
什么是可能的也很重要.计算机功率并不便宜,以至于垃圾收集的开销或事情被认为是如此之小,以至于在大多数情况下,生产率的提高超过了任何实施成本.
最后,没有语言适合所有任务.正如我们想要对程序进行更改一样,语言也是如此.现在,Web开发是编程的一个重要力量.这不是10到15年前.Web开发的有用功能不一定与编写重量级桌面应用程序相同,因此语言也在不断发展.