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

  1. 1
  2. 2
    Comparing JVM alternatives to JavaScript
    4 people · 124 points · first shared 2019 · 76 comments on HN
  3. 3
    How to write slow Rust code
    4 people · 107 points · first shared 2021 · 75 comments on HN
  4. 4
  5. 5
    A look at Unison: a revolutionary programming language
    3 people · 6 points · first shared 2023 · discussion on HN
  6. 6
    How to write slow Rust code – Part 2
    2 people · 7 points · first shared 2021 · 2 comments on HN
  7. 7
    Interesting features of the Dart programming language
    2 people · 4 points · first shared 2019 · discussion on HN
  8. 8
    Java 15 Green Threads
    2 people · 4 points · first shared 2020 · discussion on HN
  9. 9
    How to write fast Rust code
    2 people · 4 points · first shared 2021 · 1 comments on HN
  10. 10
    Zig comptime: does anything come close?
    2 people · 3 points · first shared 2025 · 2 comments on HN
  11. 11
  12. 12
    Creating Lisp Systems
    1 people · 6 points · first shared 2025 · discussion on HN
  13. 13
    Testing and building C projects with Zig
    1 people · 5 points · first shared 2022 · discussion on HN
  14. 14
    The difficult problem of managing Java dependencies
    1 people · 4 points · first shared 2022 · discussion on HN
  15. 15
    Vanilla Java: Using Java SE as a Framework
    1 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

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close