Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    R

    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.

    Visit blogRSSHN submissions
    Languages & CompilersSystems & PerformanceProgramming
    What HN says

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

    Stats for nerds
    29HN people shared it
    27linked in comments
    829story points
    Nov 2025last shared
    2019people per year2025

    Top posts on HN

    1. 1
      Learning Common Lisp to beat Java and Rust on a phone encoding problem
      1 person · 337 points · first shared 2021 · 213 comments on HN
    2. 2
      Revisiting Prechelt’s paper comparing Java, Lisp, C/C++ and scripting languages
      6 people · 130 points · first shared 2021 · 71 comments on HN
    3. 3
      Comparing JVM alternatives to JavaScript
      4 people · 124 points · first shared 2019 · 76 comments on HN
    4. 4
      How to write slow Rust code
      4 people · 107 points · first shared 2021 · 75 comments on HN
    5. 5
      Optimising Common Lisp to try and beat Java and Rust on phone encoding 2/2
      3 people · 78 points · first shared 2021 · 25 comments 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
      A look at Unison: a revolutionary programming language
      3 people · 6 points · first shared 2023 · Discussion on HN
    8. 8
      Creating Lisp Systems
      1 person · 6 points · first shared 2025 · Discussion on HN
    9. 9
      Testing and building C projects with Zig
      1 person · 5 points · first shared 2022 · Discussion on HN
    10. 10
      How to write fast Rust code
      2 people · 4 points · first shared 2021 · 1 comments on HN

    What HN people wrote when they linked it

    • JachSep 2024

      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…

    • wwfnJan 2023

      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-languages.html
      [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

    • TeaVMFanDec 2024

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

    • eesmithNov 2021

      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-languages.html , 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.

    • hashmashAug 2021

      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.

    • pronApr 2019

      A recent blog post discussing some other ways to run Java in the browser: https://renato.athaydes.com/posts/comparing-jvm-alternatives-to-js.html

      I currently use TeaVM and it's excellent, but I'll give J2CL a try.

    Related

    Beukebeuke.org15 people

    Terminal Latency

    Beuke
    Personal · last shared 2026
    Faré Rideaufare.livejournal.com37 people

    Why I haven't jumped ship from Common Lisp to Racket just yet

    Faré Rideau
    Personal · last shared 2024
    Rainer Joswiglispm.de21 people

    Ergonomics of the Symbolics Lisp Machine

    Rainer Joswig
    Personal · last shared 2025
    Loris Crokristoff.it105 people

    Why Go and Not Rust?

    Loris Cro
    Personal · last shared 2026
    Brian Carperbriancarper.net48 people

    Making an RPG in Clojure (2010)

    Brian Carper
    Personal · last shared 2017
    matkladmatklad.github.io237 people

    Architecture.md

    matklad
    Personal · last shared 2026
    Bluish Coderbluishcoder.co.nz77 people

    Using Freenet

    Bluish Coder
    Personal · last shared 2025
    Llogiqllogiq.github.io43 people

    Rust Performance Pitfalls

    Llogiq
    Personal · last shared 2026