Clojure is a dynamic programming language that targets the Java Virtual Machine. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure
Clojure is a dynamic programming language that targets the Java Virtual Machine. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.
I hope you find Clojure's combination of facilities elegant, powerful, practical and fun to use.
The primary forum for discussing Clojure is the Google Group - please join us!
Rich Hickey
Jaskell is a functional scripting programming language that runs in JVM. The name "Jaskell" stands for Java-Haskell, but it is not haskell 1. Most of the current scripting languages are Object-Oriented. Though they more or less have functional tastes (Ruby's sexy closure, for example), the heart of them are still Object-Oriented. One of the most important essenses of functional programming (combinators) is yet to be brought into Java. 2. Jaskell brings with it higher order function, function currying, pattern match and monadic combinator support. 3. Monadic combinator is ideal for designing Domain Specific Language. It is relatively easy to tailor Jaskell runtime to make domain specific syntax look like simple atomic statements. See Neptune for a real example. 4. Jaskell is nothing but a Java library that passes Java objects in and out of the interpreter.
Jasmin is an assembler for the Java Virtual Machine. It takes ASCII descriptions of Java classes, written in a simple assembler-like syntax using the Java Virtual Machine instruction set. It converts them into binary Java class files, suitable for loading
By default, the virtual machine grows or shrinks the heap at each collection to try to keep the proportion of free space to live objects at each collection within a specific range. This target range is set as a percentage by the parameters -XX:MinHeapFreeRatio= and -XX:MaxHeapFreeRatio=, and the total size is bounded below by -Xms and above by -Xmx .
Konstantin Preisser made an interesting discovery, after reading my article “PHP Hangs On Numeric Value 2.2250738585072011e-308”: Java — both its runtime and compiler — go into an infinite loop when converting the decimal number 2.2250738585072012e-308 to double-precision binary floating-point.
Java is a safe programming language and prevents programmer from doing a lot of stupid mistakes, most of which based on memory management. But, there …
Save. Refresh. Enjoy. And stop redeploying in Java! JRebel is a small JVM-plugin that makes it possible for Java developers to instantly see any code change
J. Moreira, S. Midkiff, and M. Gupta. Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande, page 116--125. New York, NY, USA, ACM, (2001)
R. Golbeck, and G. Kiczales. VMIL '07: Proceedings of the 1st workshop on Virtual machines and intermediate languages for emerging modularization mechanisms, page 2. New York, NY, USA, ACM, (2007)
S. Shiel, and I. Bayley. Electronic Notes in Theoretical Computer Science, 141 (1):
35--52(2005)Proceedings of the First Workshop on Bytecode Semantics, Verification, Analysis and Transformation (Bytecode 2005).
P. Lengauer, V. Bitto, and H. Mössenböck. Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering, page 51--62. ACM, (2015)
R. Karmani, A. Shali, and G. Agha. PPPJ '09: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, page 11--20. New York, NY, USA, ACM, (2009)
M. Arnold, S. Fink, D. Grove, M. Hind, and P. Sweeney. Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications - OOPSLA \textquotesingle00, page 47--65. ACM, (Oktober 2000)
A. Wöß, C. Wirth, D. Bonetta, C. Seaton, C. Humer, and H. Mössenböck. Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, page 133--144. ACM, (2014)
A. Sewe, M. Mezini, A. Sarimbekov, and W. Binder. Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, page 657--676. ACM, (2011)
T. Mytkowicz, A. Diwan, M. Hauswirth, and P. Sweeney. Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation, page 187--197. ACM, (Juni 2010)
T. Würthinger. Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, page 41--42. New York, NY, USA, ACM, (2011)