Live data from Hacker News

Fabrice Bellard Releases MicroQuickJS

github.com

351–360 of 594 posts

Re: Fabrice Bellard Releases MicroQuickJS

#351

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.

I know it's not true, but it would be funny if Bellard had access to AI for 15 years (time-traveler, independent invention, classified researcher) and that was the cause of his superhuman producitvity.

AI will let 10,000 Bellards bloom - or more.

Re: Fabrice Bellard Releases MicroQuickJS

#352

Earlier quoted context omitted.

> Lua has a crucial feature that Javascript lacks: tail call optimization. I'm not familiar with Lua, but I expect tco to be a feature of the compiler, not of the language. Am I wrong?

You’re wrong in the way in which many people are wrong when they hear about a thing called “tail-call optimization ”, which is why some people have been trying to get away from the term in favour of “proper tail calls” or something similar, at least as far as R5RS[1]: > A Scheme implementation is properly tail-recursive if it supports an unbounded number of active tail calls. The issue here is that, in every language…

I sort of see what you are getting at but I am still a bit confused:

If I have a program that based on the input given to it runs some number of recursions of a function and two compilers of the language, can I compile the program using both of them if compiler A has PTC and compiler B does not no matter what the actual program is? As in, is the only difference that you won’t get a runtime error if you exceed the max stack size?

Re: Fabrice Bellard Releases MicroQuickJS

#353
post #254

> It compiles and runs Javascript programs with as low as 10 kB of RAM. Just in time for RAM to become super expensive. How easy would it be to shove this into Chromium and Electron?

Hard because of web compatibility. The good news is that it would probably not matter much for chromium's memory footprint anyway...

This makes me wonder, is there analysis of the syntax and if so can't it pick the lightest implementation? I see how light dillo is on the same page as chrome and I don't know why a web browser of the caliber of chrome does so much worse than a browser worked by a handful of people.

Re: Fabrice Bellard Releases MicroQuickJS

#354
post #342

Earlier quoted context omitted.

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".

Sure, they're not unrelated or anything, but at the same time, they're all really important, huge projects.

Re: Fabrice Bellard Releases MicroQuickJS

#355

Fabrice Bellard is widely considered one of the most productive and versatile programmers alive: - FFmpeg: https://bellard.org - QEMU: https://bellard.org/qemu/ - JSLinux: https://bellard.org/jslinux/ - TCC: https://bellard.org/tcc/ - QuickJS: https://bellard.org/quickjs/ Legendary.

For all the praise he gets here, few seem interested in his methods: writing complete programs, based on robust computer science, with minimal dependencies and tooling.

> few seem interested in his methods:

You are absolutely wrong here. Most of us wish that somebody would get him to sit for an in-depth interview and/or get him to write a book on his thinking, problem-solving approach, advice etc. i.e. "we want to pick his brain".

But he is not interested and seems to live on a different plane :-(

Re: Fabrice Bellard Releases MicroQuickJS

#356

Earlier quoted context omitted.

Not to mention the 1-based indexing sin. JavaScript has a lot of WTFs but they got that right at least.

If you can't deal with off-by-one errors, you're not a programmer.

But with Lua all those errors are now off by two

Re: Fabrice Bellard Releases MicroQuickJS

#357

Earlier quoted context omitted.

I think criticizing JavaScript has become a way of signaling "I'm a good programmer." Yes, good programmers ten years ago had valid reasons to criticize it. But today, attacking the efforts of skilled engineers who have improved the language (given the constraints and without breaking half of the web) seems unfair. They’ve achieved a Herculean task compared to the Python dev team, which has broken backward compatibil…

> But today, attacking the efforts of skilled engineers who have improved the language (given the constraints and without breaking half of the web) seems unfair. I was criticising a thing not a person. Also your comment implies it was ok to be critical of a language 10 years ago but not ok today because a few more language designers might get offended. Which is a weird argument to make.

I think he’s saying it’s a fundamentally improved language at this point?

Re: Fabrice Bellard Releases MicroQuickJS

#358
post #169

Earlier quoted context omitted.

That's precisely the point of using tabs for indentation: you don't need to fight over it, because it's a local display preference that does not affect the source code at all, so everyone can just configure whatever they prefer locally without affecting other people. The idea of "skins" is apparently to push that even further by abstracting the concrete syntax.

> you don't need to fight over it, because it's a local display preference This has limits. Files produced with tab=2 and others with tab=8, might have quite different result regarding nesting. (pain is still on the menu)

I don't see why? Your window width will presumably be tailored to accommodate common scenarios in your preferred tab width.

More than that, in the general case for common C like languages things should almost never be nested more than a few levels deep. That's usually a sign of poorly designed and difficult to maintain code.

Lisps are a notable exception here, but due to limitations (arguably poor design) with how the most common editors handle lines that contain a mix of tabs and spaces you're pretty much forced to use only spaces when writing in that family of languages. If anything that language family serves as case in point - code written with an indentation width that isn't to one's preference becomes much more tedious to adapt due to alternating levels of alignment and indentation all being encoded as spaces (ie loss of information which automated tools could otherwise use).

Re: Fabrice Bellard Releases MicroQuickJS

#359

Earlier quoted context omitted.

He is a private man that does not like the spotlight IIUC. He refuses most requests for interviews, but they do exist. https://www.macplus.net/depeche-82364-interview-le-createur-... https://www.mo4tech.com/fabrice-bellard-one-man-is-worth-a-t... (few quotes, more like a profile piece) He keeps a low profile and let his work speak for itself. He really is brilliant.

He has probably has no time for interviews and just focuses on working on his many projects.

I often think the world would be a better place if more people in the tech industry follow this philosophy.

Re: Fabrice Bellard Releases MicroQuickJS

#360
post #74

Earlier quoted context omitted.

My idea is to use Markdown over HTTP(S). It's relatively easy to implement Markdown renderer, compared to HTML renderer. It's possible to browse that kind of website with HTML browser with very simple wrapper either on client or server side, so it's backwards compatible. It's rich enough for a lot of websites with actually useful content. Now I know that Markdown generally can include HTML tags, so probably it should…

You can just use HTML4 if you want, it's already supported and standardized. Markdown is very much not.

HTML4 + CSS (2?) + JavaScript is already huge platform, very much not trivial to implement. Like you can already do something like that with niche browsers like links, but it's obviously not working, so something else is needed...
Post reply on HN