为什么许多nosql存储是用java编写的?

为什么许多nosql存储是用java编写的?,java,c++,c,nosql,cassandra,Java,C++,C,Nosql,Cassandra,据我所知,许多nosql存储都是用java编写的,例如HBase、Cassandra。但根据我的经验,很多高性能的服务器程序都是用c/c++编写的(如Apache、Opensips等),为什么这样的java实现程序在生产使用中表现得很好?是因为java代码易于阅读和维护,分布式系统在java中实现得很好吗 顺便说一句,我知道用Java编写代码肯定会更有效率,但正如有人所说,在大公司中实现速度不是问题,因为一旦实现并重构了几轮,程序就可以运行得很好,所以从长远来看,时间成本不高。如果您遵循“相关”

据我所知,许多nosql存储都是用java编写的,例如HBase、Cassandra。但根据我的经验,很多高性能的服务器程序都是用c/c++编写的(如Apache、Opensips等),为什么这样的java实现程序在生产使用中表现得很好?是因为java代码易于阅读和维护,分布式系统在java中实现得很好吗


顺便说一句,我知道用Java编写代码肯定会更有效率,但正如有人所说,在大公司中实现速度不是问题,因为一旦实现并重构了几轮,程序就可以运行得很好,所以从长远来看,时间成本不高。

如果您遵循“相关”中的第一个链接()在右边的部分,你会找到答案

小结:

  • 它是平台独立的
  • Java代码不一定比C/C++慢很多,有时甚至更快(见下文)
  • Java从一开始就为任何平台提供内置线程支持
  • 安全性/安全性(无缓冲区溢出、核心转储等)

EDIT关于“C/C++从定义上说比Java快”的神话就是这样——一个神话。请看一个反例

如果您遵循右侧“相关”部分中的第一个链接(),您将找到答案

小结:

  • 它是平台独立的
  • Java代码不一定比C/C++慢很多,有时甚至更快(见下文)
  • Java从一开始就为任何平台提供内置线程支持
  • 安全性/安全性(无缓冲区溢出、核心转储等)

EDIT关于“C/C++从定义上说比Java快”的神话就是这样——一个神话。请看一个反例

“……在大公司中,实施速度不是问题……”哇,过去十年左右,我一定在另一个世界工作过。所以我猜这是一个YMMV的东西;-)-1我不相信像这样一个广泛问题的答案,即使仅限于NoSql的上下文,也很适合这个网站“……在大公司中实施速度不是一个问题……”哇,过去十年左右,我一定在另一个世界工作过。所以我猜这是一个YMMV的东西;-)-1我不相信这样一个广泛问题的答案,即使仅限于NoSql的上下文,也不适合这个网站+1一个糟糕问题的好答案。事实上,我读过这篇文章(为什么Cassandra是用Java编写的),但根据我的经验,一些低级网络程序(例如linux系统中的许多网络实用程序)是用C编写的,它们的存在是否仅仅是出于历史原因和兼容性原因,而不是性能原因?顺便说一句,关于C++/Java执行速度比较的参考文章非常有用!C/C++有它的优点,在低级系统(如操作系统级)编程中,出于充分的理由,我也不想使用其他任何东西。这在我的一生中也不会改变。但应用程序代码最好用一种边缘不那么锋利的语言编写。在这两个极端之间有一个巨大的灰色区域,两种语言风格都在争夺主导地位。提示:数据库系统(e.a.)现在是用Java编写的,并且取得了成功,这是一个强有力的迹象,表明该语言本身和完整的运行时基础设施都非常成熟。+1-写得非常好。如果有更多类似的例子,我会期待你的答案。你给的例子中,“C/C++比java更快”是英特尔C++编译器中一个很糟糕的优化。结论是:Java 7秒,MSVC 12毫秒…+1回答了一个糟糕的问题。事实上,我读过这篇文章(为什么Cassandra是用Java编写的),但根据我的经验,一些低级网络程序(例如linux系统中的许多网络实用程序)是用C编写的,它们的存在是否仅仅是出于历史原因和兼容性原因,而不是性能原因?顺便说一句,关于C++/Java执行速度比较的参考文章非常有用!C/C++有它的优点,在低级系统(如操作系统级)编程中,出于充分的理由,我也不想使用其他任何东西。这在我的一生中也不会改变。但应用程序代码最好用一种边缘不那么锋利的语言编写。在这两个极端之间有一个巨大的灰色区域,两种语言风格都在争夺主导地位。提示:数据库系统(e.a.)现在是用Java编写的,并且取得了成功,这是一个强有力的迹象,表明该语言本身和完整的运行时基础设施都非常成熟。+1-写得非常好。如果有更多类似的例子,我会期待你的答案。你给的例子中,“C/C++比java更快”是英特尔C++编译器中一个很糟糕的优化。结论是:Java 7秒,MSVC 12毫秒。。。