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
    C

    Carlos Ceron

    ceronman.com · Personal blog · on HN since 2012

    Carlos Ceron, a software developer, writes about Rust, Python, and programming language design, including building an interpreter in Rust.

    Visit blogRSSHN submissions
    Languages & CompilersProgramming
    What HN says

    HN commenters point to his Lox interpreter in Rust write-up, with one saying they hit the same issues and ended with a similar implementation.

    Stats for nerds
    19HN people shared it
    13linked in comments
    454story points
    Jul 2024last shared
    2013people per year2024

    Top posts on HN

    1. 1
      CoffeeScript: less typing, bad readability
      4 people · 349 points · first shared 2012 · 218 comments on HN
    2. 2
      My experience crafting an interpreter with Rust
      11 people · 92 points · first shared 2021 · 5 comments on HN
    3. 3
      A powerful unused feature of Python: function annotations.
      2 people · 7 points · first shared 2013 · Discussion on HN
    4. 4
      Is Rust a Functional Language in Disguise?
      3 people · 3 points · first shared 2020 · Discussion on HN
    5. 5
      Types and self-documenting code in Rust
      1 person · 2 points · first shared 2024 · Discussion on HN
    6. 6
      Beyond Javascript part 2: Dart and Typescript
      1 person · 1 points · first shared 2012 · Discussion on HN

    What HN people wrote when they linked it

    • elcritchMar 2023

      > That said, it is still the case that most programs aren't penalized by GC much. But people do still work on operating systems, games, databases, video editing tools and such where getting great performance is really important.

      This statement simply isn't true though, at least in the general sense. Sure, for old school atomic RC and compilers that didn't do RC elision etc it might've been true. But we can and have made smarter compilers, just like Rust has gotten smart about life times.

      Like @netbioserror I use Nim, but for embedded and real-time stuff. There is a minimal overhead (one machine word per allocation), but using Nim's ARC "memory management system" gives me results comparable to Zig or Rust though with much less work. Technically ARC without the cycle collector isn't a GC.

      There's no reason D and other languages with "memory management" couldn't do similar RC based systems. As the compilers get smarter it approaches the same result as Rust's manual lifetime analysis. In many cases compilers can be smarter than human programmers about memory.

      Even then, there's occasions where in Nim one can and will reach for manual memory allocations. It's easy to do when wanted.

      > 2. There will be things the language won't let you do, because it is garbage collected

      There will be things that systems like Rust's lifetimes makes harder / less performant as well: https://ceronman.com/2021/07/22/my-experience-crafting-an-interpreter-with-rust/

      > 3. There will be extra FFI…

    • chubotAug 2021

      The safety guarantees don't come for free. There are tradeoffs. That should be clear from the fact that Rust as a language is still changing, i.e. relaxing ownership rules and adding new mechanisms to the type system. If there were no problems, then there would be no language changes necessary.

      Examples of people writing Rust code and hitting problems of expressiveness and performance:

      My experience crafting an interpreter with Rust https://ceronman.com/2021/07/22/my-experience-crafting-an-interpreter-with-rust/ (I'd be interested in experiences from others who have implemented a GC'd language runtime in Rust)

      Also see Why I rewrote my Rust keyboard firmware in Zig: consistency, mastery, and fun
      https://news.ycombinator.com/item?id=26374268

      You can argue about how much the tradeoffs matter, which is heavily domain specific. But you can't argue that the tradeoffs don't exist.

    • v8dev123Apr 2021

      I don't spam C++ and I comment on C++.

      There is no fight. There is made-up flame-war. Every war happen at HN and Reddit's Echochamber not at Real World.

      Every languages has headaches. You won't find a perfect language ever.

      You can't do serious Rust if you don't understand functional aspects.

      I know C++, Haskell and Rust. Like many says Rust is a functional language disguised as imperative. There were case studies on Rust where a one with Haskell background more like to learn it faster than a one with C++ background.

      The Rust book don't show you the functional parts at beginning to build your intuition but once you drive deeper you will realize what I meant.

      https://ceronman.com/2020/09/17/is-rust-a-functional-language-in-disguise/

    • ceronmanJul 2024

      Nice article. A couple of years ago I also implemented Lox in Rust. And I faced the exact same issues that the author describes here, and I also ended up with a very similar implementation.

      I also wrote a post about it: https://ceronman.com/2021/07/22/my-experience-crafting-an-interpreter-with-rust/

      I ended up having two implementations: One in purely safe Rust and another one with unsafe.

      Note that if you're interesting in the "object manager" approach mentioned, I did that in my safe implementation, you can take a look at https://github.com/ceronman/loxido

    • jdnierNov 2013

      > Most “scripting” languages don't support annotations for checking parameters and return values

      PEP 3107 introduced function annotations to Python 3. The following syntax is valid:

      >>> def square(n: int) -> int:
      ... return n * n
      ...
      >>> square(3)
      9

      Nothing is done with annotations by default. Here's an article discussing this "unused feature": http://ceronman.com/2013/03/12/a-powerful-unused-feature-of-python-function-annotations/

    • crazygringoJul 2013

      Well the original post is one example, obviously.

      But, lots of examples below, all from the first few Google results of "coffeescript ambiguity":

      http://ruoyusun.com/2013/03/17/my-take-on-coffeescript.html [section "full of surprises"]

      http://ceronman.com/2012/09/17/coffeescript-less-typing-bad-readability/

      http://johnbender.us/2012/11/27/math-envy-and-coffeescripts-foibles/ [this is a more formal analysis]

    Related

    FP Complete Blogfpcomplete.com201 people

    Monads and GATs in Nightly Rust

    FP Complete Blog
    Company · last shared 2025
    Brian Andersonbrson.github.io32 people

    Dave Herman’s contributions to Rust

    Brian Anderson
    Personal · last shared 2025
    Niko Matsakissmallcultfollowing.com221 people

    Towards a Rust Foundation

    Niko Matsakis
    Personal · last shared 2026
    Will Crichtonwillcrichton.net50 people

    Portable EPUBs

    Will Crichton
    Personal · last shared 2025
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    rust-analyzer Blogrust-analyzer.github.io50 people

    Rust-analyzer – an IDE backend for Rust

    rust-analyzer Blog
    Company · last shared 2026
    Aria Beingessnerfaultlore.com92 people

    C isn't a programming language anymore

    Aria Beingessner
    Personal · last shared 2026
    Aaron Turonaturon.github.io49 people

    Zero-cost futures in Rust

    Aaron Turon
    Personal · last shared 2025