Live data from Hacker News

Fabrice Bellard Releases MicroQuickJS

github.com

341–350 of 594 posts

Re: Fabrice Bellard Releases MicroQuickJS

#341
post #13
post #8

Earlier quoted context omitted.

And if you find you need more features than that - just build an app, don't make the web browser into some overly bloated app!

Then you have to deal with os compatibility. That's the main selling point of the Web, it works everywhere.

Well worth it. Even the very best web apps struggle to be as good as a decent native app, let alone mediocre web apps. The native operating system blows the web out of the water as an app platform.

Re: Fabrice Bellard Releases MicroQuickJS

#342

Earlier quoted context omitted.

Well, wasn't Fabrice Bellard the guy who built a virtual machine with JS so that you could run Linux within the browser? https://bellard.org/jslinux/vm.html?cpu=riscv64&url=fedora33...

Fabrice is an absolute legend. Most people would be content with just making QEMU, but this guy makes TinyC and FFmpeg and QuickJS and MicroQuickJS and a bunch of other huge projects. I am envious that I will never anywhere near his level of productivity.

Not to detract from his status as a legend, but I think the kind of person that singlehandedly makes one of these projects is exactly the kind of person that would make the others.

I forgot about FFmpeg (thanks for the reminder), but my first thought was "yup that makes perfect sense".

Re: Fabrice Bellard Releases MicroQuickJS

#343

Earlier quoted context omitted.

I don't think you're wrong per se. This is a "correct" way of thinking of the situation, but it's not the only correct way and it's arguably not the most useful. A more useful way to understand the situation is that a language's major implementations are more important than the language itself. If the spec of the language says something, but nobody implements it, you can't write code against the spec. And on the flip…

Are you saying that Lua's TCO is an accidental feature due to the first implementation having it? How accurate is that?

What? No, I'm definitely not saying that.

I'm saying it isn't very useful argue about whether a feature is a feature of the language or a feature of the implementation, because the language is pretty useless independent of its implementation(s).

Re: Fabrice Bellard Releases MicroQuickJS

#344

Earlier quoted context omitted.

If the language spec requires TCO, I think you can reasonably call it part of the language.

It wouldn't be the first time the specs have gone too far and beyond their perimeter. C's "register" variables used to have the same issue, and even "inline" has been downgraded to a mere hint for the compiler (which can ignore it and still be a C compiler).

inline and register still have semantic requirements that are not just hints. Taking the address of a register variable is illegal, and inline allows a function to be defined in multiple .c files without errors.

Re: Fabrice Bellard Releases MicroQuickJS

#345

Earlier quoted context omitted.

Yeah QuickJS is great. I bet MQJS will also be very popular. Quite impressive that bro is going to have two JS engines to brag about in addition to a lot of other very useful things!

> Quite impressive... Yes, quite! Monsieur Bellard is a legend of computer programming. It would be hard to think of another programmer whose body of public work is more impressive than FB. Unfortunate that he doesn't seem to write publicly about how he thinks about software. I've never seen him as a guest on any podcast either. I have long wondered who the "Charlie Gordon" who seems to collaborate with him on everyt…

> It would be hard to think of another programmer whose body of public work is more impressive than FB.

I am of the firm belief that "Monsieur Fabrice Bellard" is not one person but a group of programmers writing under this nom de plume like "Nicolas Bourbaki" was in Mathematics ;-)

I don't know of any other programmer who has similar breadth and depth in so many varied domains. Just look at his website - https://bellard.org/ and https://en.wikipedia.org/wiki/Fabrice_Bellard No self-aggrandizing stuff etc. but only tech. He is an ideal for all of us to strive for.

Watson's comment on how Sherlock Holmes made him feel can be rephrased in this context as;

"I trust that I am not more dense than my neighbours [i.e. fellow programmers], but I was [and am] always oppressed with a sense of my own stupidity in my dealings with [the works of Fabrice Bellard]."

PS: Fabrice Bellard: Portrait of a Super-Productive Programmer - https://web.archive.org/web/20210128085300/https://smartbear...

PPS: Fabrice Bellard: A Computer Science Pioneer - https://www.scribd.com/document/511765517/Fabrice-Bellard-In... (pretty good long article)

Re: Fabrice Bellard Releases MicroQuickJS

#346
post #205

If anyone wants to try out MicroQuickJS in a browser here's a simple playground interface for executing a WebAssembly compiled version of it: https://tools.simonwillison.net/microquickjs It's a variant of my QuickJS playground here: https://tools.simonwillison.net/quickjs The QuickJS page loads 2.28 MB (675 KB transferred). The MicroQuickJS one loads 303 KB (120 KB transferred).

I was interested to try Date.now() since this is mentioned as being the only part of the Date implementation that is supported but was surprised to find it always returns 0 for your microquickjs version - your quickjs variant appears to return the current unix time.

Good catch. WebAssembly doesn't have access to the current time unless the JavaScript host provides it through injecting a function, so the WASM build would need to be hooked up specially to support that.

Re: Fabrice Bellard Releases MicroQuickJS

#347

Earlier quoted context omitted.

Don't forget his LLM based text compression software that won awards. Guy is a genius. I hope he tries Rust someday

Fabrice, if you're reading this, please consider replacing Rust instead with your own memory safe language. The design intent of Rust is a powerful idea, and Rust is the best of its class, but the language itself is under-specified[1] which prevents basic, provably-correct optimizations[0]. At a technical level, Rust could be amended to address these problems, but at a social level, there are now too many people who…

Bellard likely doesn't care one bit about memory safety or whatever other trendy things are popular these days.

Re: Fabrice Bellard Releases MicroQuickJS

#348
post #166

It's unfortunate that he uploaded this without notable commit history, it would be interesting to see how long it takes a programmer of his caliber to bring up a project like this. That said, judging by the license file this was based on QuickJS anyway, making it a moot comparison.

It does say "public repository of..." implying there's a non-public one with real history. Not sure why not upload the main one though.

If he's anything like me (doubtful but roll with it), the commit history when prototyping is probably something like "commit", "commit", "fixed a bug", etc.

Re: Fabrice Bellard Releases MicroQuickJS

#349

Earlier quoted context omitted.

> Quite impressive... Yes, quite! Monsieur Bellard is a legend of computer programming. It would be hard to think of another programmer whose body of public work is more impressive than FB. Unfortunate that he doesn't seem to write publicly about how he thinks about software. I've never seen him as a guest on any podcast either. I have long wondered who the "Charlie Gordon" who seems to collaborate with him on everyt…

> It would be hard to think of another programmer whose body of public work is more impressive than FB. Not many, but these do come to mind: Linus Torvalds, Ken Thompson, Dennis Ritchie, Donald Knuth, Rob Pike. But yeah, it’s rarefied air up there.

These are greats in their own domains. But Fabrice Bellard's greatness lies in breadth and depth in varied domains. That is what makes him unique.

See also - https://news.ycombinator.com/item?id=46372370

Re: Fabrice Bellard Releases MicroQuickJS

#350
post #157

If this had been available in 2010, Redis scripting would have been JavaScript and not Lua. Lua was chosen based on the implementation requirements, not on the language ones... (small, fast, ANSI-C). I appreciate certain ideas in Lua, and people love it, but I was never able to like Lua, because it departs from a more Algol-like syntax and semantics without good reasons, for my taste. This creates friction for newcom…

> it feels like it departs from what people know without good reasons. Lua was first released in 1993. I think that it's pretty conventional for the time, though yeah it did not follow Algol syntax but Pascal's and Ada's (which were more popular in Brazil at the time than C, which is why that is the case)! Ruby, which appeared just 2 years later, departs a lot more, arguably without good reasons either? Perl, which i…

    def ruby(is)
      it = is 
      a = "bad"
      example()
      begin
        it["had"] = pascal(:like)
      rescue
        flow
      end
    end
Post reply on HN