Live data from Hacker News

Fabrice Bellard Releases MicroQuickJS

github.com

581–590 of 594 posts

Re: Fabrice Bellard Releases MicroQuickJS

#581

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

Link please?

https://bellard.org/nncp/ https://bellard.org/ts_zip/

See also

FineZip : Pushing the Limits of Large Language Models for Practical Lossless Text Compression https://arxiv.org/abs/2409.17141v1

Using a LLM to compress text (o565.com) https://news.ycombinator.com/item?id=40245261

https://searchthearxiv.com/?q=llm%20text%20compression&tab=p...

Re: Fabrice Bellard Releases MicroQuickJS

#582

Earlier quoted context omitted.

Link please?

https://bellard.org/nncp/ https://bellard.org/ts_zip/ See also FineZip : Pushing the Limits of Large Language Models for Practical Lossless Text Compression https://arxiv.org/abs/2409.17141v1 Using a LLM to compress text (o565.com) https://news.ycombinator.com/item?id=40245261 https://searchthearxiv.com/?q=llm%20text%20compression&tab=p...

Thanks!

Re: Fabrice Bellard Releases MicroQuickJS

#584
post #525

Earlier quoted context omitted.

To elaborate, the scheme spec requires tco.

Which scheme is embeddable and lightweight? And what does lightweight mean? Does it mean low memory footprint or does it mean few-lines-of-code-to-introduce or does it mean zero-dependencies?

https://en.wikipedia.org/wiki/SIOD is lighter weight than almost anything. Way smaller than Lua.

Also look at Hedgehog Lisp. The bytecode compiler (runs on a PC) is separate from the interpreter, i.e. there is no REPL. But it means that the interpreter is only about 20KB of code. It's quite practical. It's not Scheme but rather is a functional Lisp (immutable data including AVL trees as the main lookup structure) and it is tail recursive. https://github.com/sbp/hedgehog

Re: Fabrice Bellard Releases MicroQuickJS

#586
post #79

Anyone know how this compares to Espruino? The target memory footprint is in the same range, at least. (I know very little about the embedded js space, I just use shellyplugs and have them programmed to talk to BLE lightswitches using some really basic Espruino Javascript.)

I haven't used Espruino but I spent a while perusing the source code. At least at the time, the implementation strategy was very slow. I lost interest in it in favor of Lua and Micropython.

Re: Fabrice Bellard Releases MicroQuickJS

#588
post #315

Earlier quoted context omitted.

I also strongly disliked luas syntax at first but now I feel like the meta tables and what not and pcall and all that stuff is kinda worth it. I like everything about Lua except some of the awkward syntax but I find it so much better then JS, but I haven't been a web dev in over a decade

The only thing I dislike about Lua is the 1-indexing. I know they had reasons for it but it always caused issues.

I don't mind the 1-based indexing at all. It's pretty easy to mentally switch into/out of the correct mindset after only a short while.

What does bug me is that Lua, the language, is 1-based, but its C api is not.

Re: Fabrice Bellard Releases MicroQuickJS

#589
post #492

Earlier quoted context omitted.

> Not OP, but the case can be made that it's still the same very ugly language of 10 years ago, with few layers of sugar coating on top. Let's talk specifics. As it seems you have strong opinions, in your opinion what is the single worst aspect of JavaScript that justifies the use of the word "ugly"?

https://dorey.github.io/JavaScript-Equality-Table/ https://www.reddit.com/r/learnjavascript/comments/qdmzio/dif ... or anything that touches array ops (concatenating, map, etc…). I mean, better and more knowledgeable people than me have written thousands of articles about those footguns and many more. I am not a webdev, I don't want to remember those things, but more often than I would wish, I have to interop with JS…

Both of the things you quoted are basically gone in practice, you just always use const/let and always use triple-equals for equality comparisons and that's that. Most people that write JavaScript regularly will lint these out in the first place.

OTOH I think JS has great ergonomics especially wrt closures which a number of popular languages get wrong. Arrow functions provide a syntactically pleasant way to write lambdas, let/const having per iteration binding in loops to avoid nasty surprises when capturing variables, and a good number of standard methods that exploit them (eg map/filter on arrays). I also think, though a lot of people would disagree because of function coloring, that built-in async is a great boon for a scripting languages, you can do long operations like IO without having to worry about threading or locking up a thread, so you get to work with a single threaded mental model with a good few sharp edges removed.

Re: Fabrice Bellard Releases MicroQuickJS

#590
post #550

Earlier quoted context omitted.

That's wonderful how you tied those threads together to describe Go's philosophical origins. I'm having a great time exploring the links. And the parallel with NeXTSTEP is fascinating too, I've been interested in that part of software history since learning that Tim Berners-Lee created WorldWideWeb.app on the NeXTcube.

Not just philosphical; I've read somewhere that the first Go releases in order to bootstrap themselves they bundled the plan9 forked/simplified C compilers inside. Later releases are written in Go themselves.

There is no philosophical or technical continuity. Go is really not the continuation of anything from Bell labs, not the philosophy, not the technologies, and especially not its purposes.

Go was created at Google, for Google, by Google employees. They looked at how Google was using C++ at that time, sat down, and created a new language that would suit that task more. Here's an article of what and how by Rob Pike https://commandcenter.blogspot.com/2012/06/less-is-exponenti...

It's as much of a Google project as anything can be. "C++ is a katamari ball of programming trends and half baked ideas. I get why google built golang, as they were already pretty strict about what parts of the c++ sediments you were allowed to use." is entirely correct regarding history.

Post reply on HN