frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

CheerpJ 4.0: WebAssembly JVM for the browser, now with Java 11 and JNI support

https://labs.leaningtech.com/blog/cheerpj-4.0
9•apignotti•9mo ago

Comments

palata•9mo ago
That's technically pretty cool, but it makes me wonder:

In order to run a Java Desktop app, I need to install a JVM first (or the Desktop app can embed it, I guess that's what IntelliJ does, right?).

Now if I run CheerpJ, it means that I essentially download a JVM when I load the page (every time), and run code in that JVM. But at this point, why not downloading a Desktop app?

It feels like we are going around, shipping simple web pages together with full browsers and calling that "desktop apps" (e.g. ElectronJS), then shipping complete JVMs as web pages and calling that a "web page"... why don't we just ship simple webpages through browsers and complex desktop apps through package managers?

apignotti•9mo ago
With CheerpJ you are downloading the subset of the JVM that you need, and actually only once thanks to the standard browser cache.

There are many reasons why shipping via the browser is a better choice compared to shipping desktop apps. The main 3 in my opinion are:

1. Distribution: Give your user a link and the app will start 2. Isolation: The user can have confidence the app won't read his personal files. 3. Cross-platform: Every OS and every device, for real this time

yuri91•9mo ago
For reference, when loading https://browsercraft.cheerpj.com for the first time (up to loading a world), my browser downloaded ~32MB.

The second time almost nothing.

jeffreportmill1•9mo ago
And here's an entire Java IDE with CheerpJ that downloads less than 15mb:

https://reportmill.com/SnapCode

palata•9mo ago
> With CheerpJ you are downloading the subset of the JVM that you need

That's interesting! May I ask how it works? Does that also happen with e.g. IntelliJ?

> Every OS and every device, for real this time

Doesn't the JVM run everywhere in 2025?

apignotti•9mo ago
> That's interesting! May I ask how it works? Does that also happen with e.g. IntelliJ?

Byte ranges request do most of the heavy lifting, data is loading exclusively on-demand.

> Doesn't the JVM run everywhere in 2025?

What about iOS? Android has Java, but can't run desktop Java apps. Chromebooks also have limits.

palata•9mo ago
> Byte ranges request do most of the heavy lifting, data is loading exclusively on-demand.

I don't understand what that means. The JVM is supposed to interpret and sometimes compile bytecode, right? How can it be done with only a fraction of the JVM?

Or are you saying that it is constantly communicating with a server that does the work?

apignotti•9mo ago
The VM itself is very small, it's the OpenJDK runtime that is quite sizeable. Byte ranges are used to only download the parts of the runtime (in terms of bytecode) that are required.

There is no server-side computation. CheerpJ runs code exclusively client-side.

palata•9mo ago
But you said before that you only download a subset of the JVM, right? Or did you mean a subset of the JDK, including the JVM and... I guess other stuff?
apignotti•9mo ago
I meant the JVM in an extended sense: the combination of the bytecode parsing, JIT compiler and OpenJDK runtime. You are right, I should have been more precise and refer to only the runtime part, which is by far the most significant.
palata•9mo ago
I was not trying to prove you wrong, I'm just genuinely interested :-). I don't see a lot of articles about the JVM these days.

Building AIs that do human-like philosophy

https://joecarlsmith.com/2026/01/29/building-ais-that-do-human-like-philosophy/
1•gmays•58s ago•0 comments

China Bans Retractable Door Handles on Cars as Safety Concerns Grow

https://www.wsj.com/business/autos/china-bans-retractable-door-handles-on-cars-as-safety-concerns...
1•impish9208•1m ago•1 comments

Show HN: WebRockets – Rust-powered WebSockets library for Python

https://github.com/ploMP4/webrockets
1•ploMP4•1m ago•0 comments

I Hate Fish

https://randsinrepose.com/archives/i-hate-fish/
1•digitallogic•1m ago•0 comments

Show HN: LLM Shield (Prompt Injection protection for developers)

https://glitchward.com/llm-shield
1•eyeskiller•2m ago•0 comments

China to See Solar Capacity Outstrip Coal Capacity This Year

https://e360.yale.edu/digest/china-solar-coal-2026
2•speckx•3m ago•0 comments

Strategies of cooperation and defection in five large language models

https://arxiv.org/abs/2601.09849
1•PaulHoule•3m ago•0 comments

A discussion about AI consciousness in Reddit

https://old.reddit.com/r/Moltbook/comments/1qutciy/consciousness/
1•yanivleven•4m ago•0 comments

Windows 11 adoption might have flatlined

https://www.windowscentral.com/microsoft/windows-11/windows-11s-growth-has-officially-hit-a-brick...
2•TechSquidTV•6m ago•0 comments

Show HN: Sandboxing untrusted code using WebAssembly

https://github.com/mavdol/capsule
1•mavdol04•6m ago•0 comments

How I fixed a small bug in an app I use daily

https://akshaychugh.xyz/writings/png/instapaper
2•akshay2603•9m ago•0 comments

Discovery Alert: An Ice-Cold Earth? Science

https://science.nasa.gov/universe/exoplanets/discovery-alert-an-ice-cold-earth/
3•JeanKage•9m ago•0 comments

GitHub: Competitive Intelligence and Monitoring List

https://github.com/Rainmaker-Ventures/awesome-competitive-intelligence-and-monitoring
2•mlukaszczyk•10m ago•1 comments

The Day the Music Died

https://en.wikipedia.org/wiki/The_Day_the_Music_Died
1•edent•10m ago•0 comments

Fungi as a Building Material: Kit Examines Innovative Materials

https://www.kit.edu/kit/english/202601-fungi-as-a-building-material-kit-examines-innovative-mater...
1•JeanKage•10m ago•0 comments

Show HN: govalid – Go validation without reflection (5-44x faster)

https://github.com/sivchari/govalid
1•sivchari•11m ago•0 comments

Show HN: Know what your dev team shipped, without reading code

1•inferno22•12m ago•0 comments

Show HN: Building a AI junior marketing team. tell me why this won't work

https://www.blinkadz.com/
1•vipulsharma144•13m ago•0 comments

3D-Printed Batteries Put Power in Every Nook and Cranny

https://spectrum.ieee.org/3d-printed-batteries
1•JeanKage•13m ago•0 comments

Floating-point accuracy visualization of Julia math functions

https://discourse.julialang.org/t/floating-point-accuracy-visualization-example-the-ulp-error-for...
1•darboux•14m ago•0 comments

Elon Musk joins his rocket and AI businesses into a single company

https://apnews.com/article/spacex-xai-musk-space-2079f03fa888652b7fe836afe8b670a1
1•makerdiety•14m ago•0 comments

Anthropic's Performance Take-Home: A 65x Optimization (For Dummies)

https://www.ikot.blog/anthropic-take-home-for-dummies
4•seeall•14m ago•1 comments

Show HN: EasyClaw – lightweight GUI installer for OpenClaw

https://easyclaw.com
1•svemyh•15m ago•0 comments

Cloudflare Is Down

1•ransom1538•16m ago•1 comments

StreetPack – Debut

https://github.com/TrishulaSoftware/StreetPack
1•trishulasoftwre•16m ago•1 comments

The Guardrail Problem

https://www.robpanico.com/articles/display/?entry_short=the-guardrail-problem
1•retrocog•16m ago•1 comments

De-Mystifying Agentic AI: Building a Minimal Agent Engine with Clojure

https://serefayar.substack.com/p/minimal-agent-engine-from-scratch-with-clojure
3•simonpure•16m ago•0 comments

Fact Checking Moravec's Paradox

https://www.normaltech.ai/p/fact-checking-moravecs-paradox
1•gmays•16m ago•0 comments

Auto-Jira: AI that detects errors, diagnoses root causes, and files Jira tickets

https://medium.com/@tintinwinata/built-an-ai-that-auto-creates-jira-tickets-from-production-error...
1•tintinwinata•17m ago•1 comments

Show HN: Inverting Agent Model (App as Clients, Chat as Server and Reflection)

https://github.com/RAIL-Suite/RAIL
1•ddddazed•17m ago•0 comments