C、 C++;,Java,下一步是什么,它会是什么样子? P>你认为语言的下一步进化会是什么样子? < p>你可以假设C和C++是“逐步淘汰”的,java/.net/python/什么都是“前进”或“下一站”。 它们都被大量使用(参见这个站点上的标签号C或C++)。区别在于两者都不再是编程世界的通用语言。过去大多数应用程序都是桌面或DOS应用程序,资源非常有限,而且所有的桌面API都是用C或C++编写的。所以每个人都学会了这些

C、 C++;,Java,下一步是什么,它会是什么样子? P>你认为语言的下一步进化会是什么样子? < p>你可以假设C和C++是“逐步淘汰”的,java/.net/python/什么都是“前进”或“下一站”。 它们都被大量使用(参见这个站点上的标签号C或C++)。区别在于两者都不再是编程世界的通用语言。过去大多数应用程序都是桌面或DOS应用程序,资源非常有限,而且所有的桌面API都是用C或C++编写的。所以每个人都学会了这些,java,c++,c,language-design,Java,C++,C,Language Design,现在它更复杂了。语言正在变得更加特定于应用程序。当性能很重要时,使用C/C++。当主要性能影响是db读/写时的脚本语言。Java和.Net用于通用的、非性能关键型桌面应用程序 计算机或电气工程也是如此。在过去,这些是具有最高抽象级别的巨大字段。现在我们有了各种更高层次的抽象。尽管如此,我们还是需要人来做这种低水平的工程。它们仍然有需求。以同样的方式,C将继续在许多环境中使用,如C++。例如,如果你认为你可以用Java编写一个设备驱动程序,那你一定是疯了。如果你有选择和能力用Java或.Net编写

现在它更复杂了。语言正在变得更加特定于应用程序。当性能很重要时,使用C/C++。当主要性能影响是db读/写时的脚本语言。Java和.Net用于通用的、非性能关键型桌面应用程序

计算机或电气工程也是如此。在过去,这些是具有最高抽象级别的巨大字段。现在我们有了各种更高层次的抽象。尽管如此,我们还是需要人来做这种低水平的工程。它们仍然有需求。以同样的方式,C将继续在许多环境中使用,如C++。例如,如果你认为你可以用Java编写一个设备驱动程序,那你一定是疯了。如果你有选择和能力用Java或.Net编写一个完整的GUI应用程序,那么用C编写一个完整的GUI应用程序,你也可能是有点疯了(但可能不是那么疯了)

每种工具都有它的用途。我希望C++、C++和java能够继续并继续用于新的和遗留的开发。

< P> Alan Kay曾经说过:“实际上我是用“面向对象”这个术语来做的,我可以告诉你们我没有C++。 他正在努力改变编程的未来

“真正的浪漫还在后头。计算机革命还没有开始。不要被大量资金流所误导,这些资金流向了不成熟的买家,他们对不完整的想法进行了拙劣的改编,导致他们的实际标准不高。”


好吧,我可以补充一点,比亚恩曾经说过:“只有两种语言:人们抱怨的语言和没人使用的语言。”

语言的发展填补了其他语言无法解决的小问题

语言是否能站稳脚跟并确立自己的地位完全是另一个问题,它与流行有很大关系

接下来是什么?
我发现需要填充的问题是多处理器(或多核)。目前,所有流行语言利用附加核心的能力都非常有限。基本上,所有当前流行的语言都为开发人员提供了使用内核的基本对象(线程/锁等),然后让开发人员尝试并利用多内核提供的并行性

如果有一种语言能够抽象出核心(甚至线程)的概念,并能够自动利用多核/多处理器体系结构中可用的增强器并行性,那将是一件好事。不幸的是,所有这些语言(我所知道的)仍然是大学里的研究项目,不太可能在短期内被真正采用

<>你暗示有一个进展c>> C++ +> java。 这有点人为,每种语言都代表一种解决问题的方法,每种语言都有其固有的问题域,在这些问题域中,它能有效地解决问题,而在其他问题域中,使用这种语言是一种错误的选择

就个人而言:

  • 我永远不会用Java编写设备驱动程序
  • 我可能不会用C编写后端web模块(你可能会,但我不会) 等等

  • 从短期来看,我希望高级语言变得更强大,使用率更高。Perl6和JavaScript2.0是等待我们的好例子

    从长远来看,函数式语言可能会成为主流,但我预计这不会很快发生哦,但那是Java:)(对不起,我忍不住)

    下一代语言已经出现了,脚本语言。微软正在开发DLR(动态语言运行库),这是毫无疑问的。我认为未来将是一种解释型(但JITted)动态语言,它几乎没有约束,也有很大的灵活性

    如今,大多数语言的性能约束已不再那么重要,或者根本没有人会编写Java或C#应用程序,但考虑到CPU速度极快,RAM价格低廉,我们没有注意到这些更高级别设计的低效性(例如,如果你有一个1mhz的cpu,你可以用C而不是C来编写代码。如果你有一个运行在3Ghz的cpu,你可以随心所欲地编写它)

    所以..Ruby,Python,“Dynamic-C#”..这些都是未来。当微软发布DLR时,人们会对它产生很大的兴趣,会有很多公司开始谈论程序员的生产力,认为这是大多数应用程序开发中最重要的部分


    之后……可能是一个GUI驱动的系统,您将块连接在一个类似UML-a的系统中,并向它们添加属性以生成生成代码。

    在某些时候,程序将开始编写自己的程序,从而使编程变得多余。主要的分歧在于何时会发生。

    我可以不是为C++和java说话,但是C肯定不会有任何地方……/P> 不使用C语言编写任何类型的操作系统内核都是不可想象的(如果你真的很固执,你可以完全使用汇编语言)

    C基本上是汇编语言的一个薄薄包装,它与标准的冯·诺依曼CPU体系结构紧密耦合,因此不需要标准的库或运行时来实现它的大部分功能:指针、字符串、堆栈上的自动变量、整数算术等

    出于同样的原因,C非常适合于绝对需要高性能的用户级应用程序,比如mult
      C                       -> Device drivers
      C++                     -> Highperformance Computing
      Java                    -> Server side programs (J2EE)
      C#                      -> Server, Client(Silverlight, WinForm, WPF)
      Ruby, Python, ...       -> WebScripting (Serverside) and helper scripts
      ECMAScript (Javascript) -> WebScripting (Clientside)