Renato Athaydes
renato.athaydes.com · Personal blog · on HN since 2019
Renato Athaydes, a software developer, writes about programming languages and compares performance across Java, Rust, Common Lisp, Dart, and Unison.
What HN saysHN commenters link it for his revisit of Prechelt's language comparison, his Common Lisp optimization follow-up, JVM-in-browser options, and his Unison review.
29HN people shared it
9linked it in comments
27stories submitted
829story points
11 months agolast shared
2019people per year2026
Most-shared posts
- 1Revisiting Prechelt’s paper comparing Java, Lisp, C/C++ and scripting languages6 people · 130 points · first shared 2021 · 71 comments on HN
- 2Comparing JVM alternatives to JavaScript4 people · 124 points · first shared 2019 · 76 comments on HN
- 3How to write slow Rust code4 people · 107 points · first shared 2021 · 75 comments on HN
- 4Optimising Common Lisp to try and beat Java and Rust on phone encoding 2/23 people · 78 points · first shared 2021 · 25 comments on HN
- 5A look at Unison: a revolutionary programming language3 people · 6 points · first shared 2023 · discussion on HN
- 6How to write slow Rust code – Part 22 people · 7 points · first shared 2021 · 2 comments on HN
- 7Interesting features of the Dart programming language2 people · 4 points · first shared 2019 · discussion on HN
- 8Java 15 Green Threads2 people · 4 points · first shared 2020 · discussion on HN
- 9How to write fast Rust code2 people · 4 points · first shared 2021 · 1 comments on HN
- 10Zig comptime: does anything come close?2 people · 3 points · first shared 2025 · 2 comments on HN
- 11Learning Common Lisp to beat Java and Rust on a phone encoding problem1 people · 337 points · first shared 2021 · 213 comments on HN
- 12Creating Lisp Systems1 people · 6 points · first shared 2025 · discussion on HN
- 13Testing and building C projects with Zig1 people · 5 points · first shared 2022 · discussion on HN
- 14The difficult problem of managing Java dependencies1 people · 4 points · first shared 2022 · discussion on HN
- 15Vanilla Java: Using Java SE as a Framework1 people · 3 points · first shared 2020 · discussion on HN
What HN people wrote when they linked it
vindarel · 2023-07-27
Here's the follow-up with an optimized CL version: https://renato.athaydes.com/posts/revenge_of_lisp-part-2.html See the conclusion:
- the CL version is the fastest of ALL… in certain conditions ;)
eesmith · 2021-11-15
The classic, now quiet dated citation, is "An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl" by Lutz Prechelt.
Recent-ish commentary (July 2021) about it at https://renato.athaydes.com/posts/revisiting-prechelt-paper-comparing-… , HN commentary at https://news.ycombinator.com/item?id=28108806 .
Google Scholar gives about 476 paper which cite Prechelt's work. I have not followed other work in that field.
pron · 2019-04-28
A recent blog post discussing some other ways to run Java in the browser: https://renato.athaydes.com/posts/comparing-jvm-alternatives-to-js.htm…
I currently use TeaVM and it's excellent, but I'll give J2CL a try.
teleforce · 2025-11-26
I've found this helpful review on Unison albeit the article is from 2023 [1].
[1] A look at Unison: a revolutionary programming language:
https://renato.athaydes.com/posts/unison-revolution.html
lycopodiopsida · 2025-05-17
I think it was this blog: https://renato.athaydes.com/all-posts They also tested common lisp!
TeaVMFan · 2024-12-14
The new release of TeaVM (0.11.0) now supports WebAssembly GC. This increases performance while further decoupling TeaVM apps from ECMAScript.
TeaVM ( https://teavm.org/ ) is an Apache-licensed project, free for use in commercial projects. It is mature and used widely, including in frameworks like Flavour ( https://frequal.com/Flavour/book.html ) and more projects listed here: https://www.frequal.com/TeaVM/TeaVmBasedSites.html
TeaVM compiles Java code to run in the browser, efficiently and quickly. It features short build times, small downloadable files, and a batteries-included toolset (including minification, tree-shaking, and packaging). Previous releases have conquered all similar open-source tools (that support threading) in independent testing: https://renato.athaydes.com/posts/comparing-jvm-alternatives-to-js.htm…
hashmash · 2021-08-09
The next blog post goes into more detail regarding possible optimizations. https://renato.athaydes.com/posts/how-to-write-slow-rust-code.html
The JVM startup time is discussed, and it mentions that a pre-compiled version using Graal might make for an interesting comparison. It wasn't done, because as mentioned in the blog post, things were getting out of hand with all the extra testing.
Jach · 2024-09-13
If that's your main downside, that's pretty good, since clunkiness is in many ways fixable. Personally with standard CL I like to use property lists with keywords, so a "map literal" is just (list :a 3 :b 'other). It's fine when the map is small. The getter is just getf, setting is the usual setf around the getter. There's a cute way to loop by #'cddr for a key-and-value loop, though Alexandria (a very common utility library) has some useful utils for looping/removing/converting plists as well.
If typing out "(list ...)" is annoying, it's a few lines of code to let you type {:a 3 :b 4} instead, like Clojure. And the result of that can be a plist, or a hash table, or again like Clojure one of the handful of immutable map structures available. You can also easily make the native hash tables print themselves out with the curly bracket syntax.
(On the speed front, you might be amused by https://renato.athaydes.com/posts/how-to-write-slow-rust-code.html But separately, when you want to speed up Lisp (with SBCL) even more than default, it's rather fun to be able to run disassemble on your function and see what it's doing at the assembly level, and turn up optimization hints and have the compiler start telling you (even on the individual function level) about where it has to use e.g. generic addition instead of a faster assembly instruction because it can't prove type info and you'll have to tell it/fix your code. It can tell you about dead code it removed. You can define…
wwfn · 2023-01-10
I'm also very curious for hear from expert lispers. I've tried to find the sweat spot where lisp would fit better than what I already know: shell for glue and file ops, R for data munging and vis, python to not reinvent things, perl/core-utils for one liners. But before I can find the niche, I get turned off by the amount of ceremony -- or maybe just how different the state and edit/evaluate loop is.
I'm holding onto some things that make common lisp look exciting and useful (static typing[0], APL DSL[1], speed [2,3,4]) and really want to get familiar with structural editing [5]
[0] https://github.com/phantomics/april
[1] https://github.com/coalton-lang/coalton/
[2] https://renato.athaydes.com/posts/revisiting-prechelt-paper-comparing-…
[3] https://github.com/fukamachi/woo/blob/master/benchmark.md
[4] https://tapoueh.org/blog/2014/05/why-is-pgloader-so-much-faster/
[5] https://github.com/drym-org/symex.el