Chicory is a new WebAssembly runtime built specifically for the Java Virtual Machine (JVM). It aims to bring the performance and portability benefits of Wasm to JVM environments by allowing developers to seamlessly execute Wasm modules directly within their Java applications. Chicory achieves this through a combination of ahead-of-time (AOT) compilation to native code via GraalVM Native Image and a runtime library implemented in Java. This approach allows for efficient interoperability between Java code and Wasm modules, potentially opening up new possibilities for leveraging Wasm's growing ecosystem within established Java systems.
Clojure offers a compelling blend of practicality and powerful abstractions. Its Lisp syntax, while initially daunting, promotes code clarity and conciseness once mastered. Immutability by default simplifies reasoning about code and facilitates concurrency, while the dynamic nature allows for rapid prototyping and interactive development. Leveraging the vast Java ecosystem provides stability and performance, and the focus on functional programming principles encourages robust and maintainable applications. Ultimately, Clojure empowers developers to build complex systems with elegance and efficiency.
HN commenters generally agree with the author's points on Clojure's strengths, particularly its simple, consistent syntax, powerful data structures, and the benefits of immutability and functional programming for concurrency. Some discuss practical advantages in their own work, citing increased productivity and fewer bugs. A few caution that Clojure's unique features have a learning curve and can make debugging more challenging. Others mention Lisp's historical influence and the powerful REPL as key benefits, while some debate the practicality of Clojure's immutability and the ecosystem's reliance on Java. Several commenters highlight Clojure's suitability for specific domains like data processing and web development. There's also discussion around tooling, with some praise for Clojure's tooling and others mentioning room for improvement.
OpenLDK is a project that implements a Java Virtual Machine (JVM) and Just-In-Time (JIT) compiler written entirely in Common Lisp. It aims to be a high-performance JVM alternative, leveraging Lisp's metaprogramming capabilities for dynamic code generation and optimization. The project features a modular design, encompassing a bytecode interpreter, a tiered JIT compiler using a method-based compilation strategy, and a garbage collector. OpenLDK is considered experimental and under active development, focusing on performance enhancements and broader Java compatibility.
Commenters on Hacker News express interest in OpenLDK, primarily focusing on its unusual implementation of a Java Virtual Machine (JVM) in Common Lisp. Several question the practical applications and performance implications of this approach, wondering about its speed and suitability for real-world projects. Some highlight the potential benefits of Lisp's dynamic nature for tasks like debugging and introspection. Others draw parallels to similar projects like Clojure and GraalVM, discussing their respective advantages and disadvantages. A few express skepticism about the long-term viability of the project, while others praise the technical achievement and express curiosity about its potential. The novelty of using Lisp for JVM implementation clearly sparks the most discussion.
Inboxbooster, a Y Combinator-backed company, is hiring a fully remote JVM Bytecode Engineer. This role involves working on their core email deliverability product by developing and maintaining a Java agent that modifies bytecode at runtime. Ideal candidates are proficient in Java, bytecode manipulation libraries like ASM or Javassist, and have experience with performance optimization and debugging. Familiarity with email deliverability concepts is a plus.
Hacker News users discussing the Inboxbooster job posting largely focused on the low salary range ($60k-$80k) offered for a JVM Bytecode Engineer, especially given the specialized and in-demand nature of the skillset. Many commenters found this range significantly below market value, even considering the potential for remote work. Some speculated about the reasoning, suggesting either a misjudgment of the market by the company or a targeting of less experienced engineers. The remote aspect was also discussed, with some suggesting it might be a way to justify the lower salary, while others pointed out that top talent in this area can command high salaries regardless of location. A few commenters expressed skepticism about the YC backing given the seemingly low budget for engineering talent.
Summary of Comments ( 86 )
https://news.ycombinator.com/item?id=43170545
Hacker News users discussed Chicory's potential, limitations, and context within the WebAssembly ecosystem. Some expressed excitement about its JVM integration, seeing it as a valuable tool for leveraging existing Java libraries and infrastructure within WebAssembly applications. Others raised concerns about performance, particularly regarding garbage collection and its suitability for computationally intensive tasks. Comparisons were made to other WebAssembly runtimes like Wasmtime and Wasmer, with discussion around the trade-offs between performance, portability, and features. Several comments questioned the practical benefits of running WebAssembly within the JVM, particularly given the existing rich Java ecosystem. There was also skepticism about WebAssembly's overall adoption and its role in the broader software landscape.
The Hacker News post titled "Chicory: A JVM native WebAssembly runtime" sparked a discussion thread with several insightful comments. Many commenters focused on the potential benefits and drawbacks of using WebAssembly (Wasm) within the JVM ecosystem.
One recurring theme was the exploration of use cases for Chicory. Some commenters questioned the advantages of using Wasm within the JVM compared to existing JVM languages like Kotlin or Scala. They pondered whether Wasm offered significant performance gains or other benefits that would justify the added complexity of integrating another runtime environment. Others suggested potential niches, such as running code from other languages compiled to Wasm, or leveraging Wasm's sandboxing capabilities for security-sensitive operations.
Performance was another key area of discussion. Some commenters expressed skepticism about Wasm's performance within the JVM, particularly concerning garbage collection and interoperability with JVM objects. They highlighted the potential overhead of bridging the gap between the Wasm and JVM environments.
Several commenters drew comparisons between Chicory and GraalVM's native image functionality. They debated whether using Wasm within the JVM offered any advantages over compiling JVM languages to native code directly. The discussion touched upon topics such as startup time, memory footprint, and overall execution speed.
Some commenters expressed interest in the technical details of Chicory's implementation, such as its garbage collection strategy and its approach to handling Wasm system calls. They inquired about the project's maturity and its roadmap for future development.
A few commenters mentioned alternative approaches to running Wasm in the JVM, such as using Wasmer or Wasmtime. They compared these existing solutions with Chicory, discussing their respective strengths and weaknesses.
Overall, the comments on the Hacker News post reflected a cautious optimism about Chicory. While acknowledging the potential of Wasm within the JVM, commenters raised important questions about its practical benefits and technical challenges. The discussion highlighted the need for further exploration and benchmarking to determine Chicory's viability in real-world scenarios.