Ruby也好,Python也罢,都仅仅指的是一种语言。这就好像ISO定义好了C++语言规范,而大家都可以来实现这个规范(Microsoft的VC++, GNU的GCC等)
说回Ruby和Python, 当我们一般谈论他们俩时,默认都指的是其默认的实现(Reference Implementation)。这对于Ruby来讲就是MRI Ruby, 而对于Python来说则是CPython,这两个实现是这两种语言被开发者们所熟知且应用广泛的。
但这并不妨碍其他实现的存在。这些“其他”实现的存在一般都是为了补充提供一些默认实现没有的特性,解决一些特定场景下的需求痛点。 比如pypy是Python另一个比较出名的实现,他能将Python编译成Native代码,从而大大提升其性能。
好了,所以题主提到的JRuby和JPython无非就是这两种语言规范下的又一种实现。它们提供了怎样的特性呢?我认为至少有这么两点他们被编译成Byte code跑在JVM上,借由JVM提供动态的优化和良好的性能保证
我认为是最为有价值的一点:加入JVM生态系统的最大利益便是和其他语言的互交互性(interop),这意味着你能用Ruby, Python调用Java Scala等语言,等于为这两门语言打开了巨大的第三方库资源,甚至为其参与企业级开发提供了可能