Java JVM上/下的动态语言

Java JVM上/下的动态语言,java,ruby-on-rails,ruby,groovy,clojure,Java,Ruby On Rails,Ruby,Groovy,Clojure,在Java平台上工作至少10年后,我对学习动态语言感兴趣。我正在考虑两个选择。第一,学习一个,比如Clojure/Groovy,它位于Java JVM之上。其次,一种脱离JVM的语言,包括Ruby/Rails或Erlang 了解了很多Java方面的知识后,我想选择一个基于JVM的解决方案,但考虑一个脱离JVM的解决方案 我的问题是: 从Java JVM中选择一种语言有哪些优点/缺点? 我最大的痛点之一是部署内存占用。我希望有一个允许低内存消耗的解决方案,因为大多数云/ISP提供商需要更高的价

在Java平台上工作至少10年后,我对学习动态语言感兴趣。我正在考虑两个选择。第一,学习一个,比如Clojure/Groovy,它位于Java JVM之上。其次,一种脱离JVM的语言,包括Ruby/Rails或Erlang

了解了很多Java方面的知识后,我想选择一个基于JVM的解决方案,但考虑一个脱离JVM的解决方案

我的问题是:

  • 从Java JVM中选择一种语言有哪些优点/缺点?
我最大的痛点之一是部署内存占用。我希望有一个允许低内存消耗的解决方案,因为大多数云/ISP提供商需要更高的价格来购买512 MB/服务器。我已经习惯于使用高内存JVM,这与我的成本不符。也许这不是使用clojure或groovy时需要考虑的问题,但我希望它会占用大量内存,因为它是在JVM上运行的


我最近已经开始使用Ruby/Rails,我对它印象深刻。

您可以尝试JRuby在JVM上支持Ruby

我不认为使用JVM意味着使用大量内存。这取决于如何使用JVM。使用探查器和更紧凑的数据结构可以最大限度地减少内存使用。你可以用C++来查看,但是如果你不小心C++会使用更多的内存。(但如果你知道自己在做什么,就不会这样做)


使用多少内存更多的是关于如何开发程序,而不是使用哪种语言。

如果你不使用JVM,那么你就有了一个很好的工具,可以在JVM不适合的情况下使用,比如命令行实用程序,JVM启动时间非常烦人

如果使用Clojure,您可以同时获得这两个功能,使用Clojure编译器,您可以为JVM生成类,使用ClojureScript编译器,您可以生成几乎可以在任何对象上运行的javascript


我个人的建议,因此无法验证是去选择,这将扩大您的编程思维clojure,但我个人相当偏见的耦合。我同意,如果您想最大程度地控制内存使用和启动时间,那么任何语言都不是一个好的选择。使用C.;)切换您的时间到了我同意,+1代表“扩展编程思维”;-)在过去几年中,我个人探索新语言的道路是java->groovy->(j)ruby->emacs lisp->clojure。回顾过去,我希望我能早点学会一个口齿不清(clojure!)。