HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
mozilla
pluotsorbet
Java2015–2023
mozilla / pluotsorbet · Archived

pluotsorbet

[ARCHIVED] PluotSorbet is a J2ME-compatible virtual machine written in JavaScript.

8Distinct people
12Mentions
0Explicit recommenders
249GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

[ARCHIVED] PluotSorbet is a J2ME-compatible virtual machine written in JavaScript.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year12 dated mentions

Observed mentions: 2015-06-22 16:40:58 UTC to 2023-08-15 17:13:15 UTC.

012342015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC110
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC404
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202

What Hacker News says

12 sources
> - 3rd party clients. That worked initially, but WA was quite aggressive in breaking them, and once e2ee was added they stopped working. Yeah, that happened. :/ I was mostly in favor of a light touch, but e2ee would have been a hard cutoff anyway, and we didn't have the desire to make a compliance program for 3rd party clients, so they just got the boot whenever they caused inconvenience. There would usually be a flurry of activity around individual changes, but afaik, third parties saw the writing on the wall when e2ee started showing up. > - we wrote a j2me VM in Javascript (https://github.com/mozilla/pluotsorbet) to run the S40 version :) Perf was not good enough when dealing with java threads. Wow, that's impressive! (and kind of terrible!) Were you able to leverage this for other things, I hope? > - we collaborated with a company (O
Read the rest
penMobile) to run the Android app in a container, rendering in a DOM element. That was a pain in term of OS integration, and OpenMobile finally didn't get the distribution agreement from WA. I was unaware of this. That's interesting to hear about. I think you're right from your earlier post, that user count would have pushed WA the other way, and that lack of WA support made it harder to get user count. Samsung (Tizen) and Jio (KaiOS) got WA to make clients by subsidizing handsets and leveraging user counts / other business relations; s40 got a client because Nokia was clearly going to sell at least a few million of them (s40 predates WA, of course, but the earlier ones never ran WA); same with WP7, although no client until 7.5, because the platform was missing pieces. WebOS didn't get a client because the platform was missing pieces and didn't survive long enough to add them (lack of WA support wasn't really an issue, given the timing). MeeGo didn't get a client because Nokia cancelled the N9 before they launched it, and limited the release.
In Firefox finally outperforming Google Chrome in SunSpider
Hi! Yes Mozilla approached WA (talks were held with Brian Acton if I remember correctly). We tried various workarounds: - 3rd party clients. That worked initially, but WA was quite aggressive in breaking them, and once e2ee was added they stopped working. - we wrote a j2me VM in Javascript (https://github.com/mozilla/pluotsorbet) to run the S40 version :) Perf was not good enough when dealing with java threads. - we collaborated with a company (OpenMobile) to run the Android app in a container, rendering in a DOM element. That was a pain in term of OS integration, and OpenMobile finally didn't get the distribution agreement from WA. I implemented the KaiOS additional APIs, basically exposing a subset of libsignal. You're right that there are missing pieces in the web stack for these apps - it's very frustrating that you can't rely on WebC
Read the rest
rypto for all the e2ee. Let's hope WebAssembly will fix that!
In Firefox finally outperforming Google Chrome in SunSpider
Why do you assume didn't try anything? We actually: - have been friendly to 3rd party clients developers, like Loquim (https://loqui.im/). Once WA turned on e2e encryption, the situation for 3rd party clients changed from "difficult but fun" to "mostly impossible". - wrote a JVM in JS to run the S40 version of WA (https://github.com/mozilla/pluotsorbet). - partnered with a company specialized in bringing android apps to other OSes (they had Windows Phone support for instance).
In Firefox Was Always Enough
Yeah, it would be awesome to have this open-source, with the help of the community one can achieve great things. There was this project for FirefoxOS to support J2ME apps -- https://github.com/mozilla/pluotsorbet It would be great to have something like that for "nostalgic" reasons. Many feature phones' users remember J2ME apps, games especially, very fondly. Check out also this J2ME project, which could potentially be ported to KaiOS as well: https://github.com/XerTheSquirrel/SquirrelJME Also, have you considered some kind of support for "content blocking" (like in iOS, or in the form of typical browser plugin-ins), of course, I'm not saying that ANY content should be blocked by default. But taking into account that devices with KaiOS wouldn't be very powerful, it could be really useful to have such an option to avoid "unnecessary" stuff
Read the rest
when browsing the Internet... Anyway, keep up good work!
In KaiOS – A Smartphone Operating System
To get good performance on running JVM or .NET WASM will probably need more than just GC support. JVM/.NET JITs rely on inline-caches that aren't currently expressible in WASM. There are ideas about ways to make this work, but it will be a while. The other thing preventing the use of JVM or .NET is that porting the runtimes over isn't easy. i.e. You can already run this bytecode in a browser but it isn't widely used. (http://jsil.org/, https://github.com/decatur/j2js-compiler, https://github.com/plasma-umass/doppio, https://github.com/mozilla/pluotsorbet etc)
In Why WebAssembly Is Faster Than Asm.js
WhatsApp was the big missing app for Firefox OS. In Mozilla's target markets, WhatsApp was huge but the company didn't want to invest any engineering resources to support Firefox OS, understandably. Firefox OS was an unproven OS with no market share and no J2ME support. In response, Mozilla Research started a "j2me.js" project to try running the WhatsApp J2ME app in JavaScript, sharing some code with the Shumway project to run Flash content. If that worked well enough, maybe WhatsApp would become interested. It did actually kinda work, but the project did not proceed for a number of reasons. Also, j2me.js was renamed "PluotSorbet", due to trademark concerns: https://github.com/mozilla/pluotsorbet
In The Story of Firefox OS

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.