为什么Java是开源分布式系统的一个主要的编程语言?

Hadoop, Hive, zookeeper等是云计算大数据主要开源产品,来自Quora的热点讨论:为什么Java是开源分布式系统的一个主要的编程语言?Distributed Systems: Why is Java a dominant programming language in open-sourced distributed systems

来自Oracle公司的 Cameron Purdy认为:
Java超过C是在分布式系统上。当然许多年前Smalltalk在这方面比任何其他语言后来所做的更加优雅。

Java在构建一个分布式系统平台有如下优势:
1.核心库中有网络特性包,支持TCP/IP UDP等,非堵塞的IO等等。

2.核心库中支持丰富的数据结构,一个分布式系统需要很多不同类型的数据结构,而Java有各种集合支持。

3.可在分布式系统中完成一致的吞吐量,Java支持多线程方面是强大的。

4.很早支持对象序列化到字节。在一个分布式系统发送复杂数据是一件方便的事情。

5.Java有很多API,非常广泛。

6. Java的性能是难以置信的,多线程 垃圾回收 主流网络IO 并发磁盘IO 各种弱引用等等。

N多年前,我一直认为Java是云计算平台通用语言,如今基本已经成为现实,而当时很多人看好的Ruby,只是类似PHP Python的一种运行在云计算平台上的领域语言。

C语言在操作系统虚拟化方面是有用武之地,但是不会跑到操作系统之上这个边界,而这个操作系统之上要构建一个分布式系统,Java毫无疑问是不二之选。