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
    B

    Bit Bashing

    bitbashing.io · Personal blog · on HN since 2015

    Bit Bashing is a programmer's blog on systems languages like C++, Rust, and D, along with floating point, concurrency, and TeX.

    Visit blogRSSHN submissions
    Languages & CompilersSystems & PerformanceProgramming
    What HN says

    HN commenters link it for opinionated language posts, notably on async Rust and floating-point comparison, though one calls the float article weak beyond simple cases.

    Stats for nerds
    32HN people shared it
    29linked in comments
    1.7Kstory points
    Oct 2025last shared
    2016people per year2025

    Top posts on HN

    1. 1
      Garbage collection for systems programmers (2023)
      5 people · 424 points · first shared 2023 · 267 comments on HN
    2. 2
      Std::visit is everything wrong with modern C++
      8 people · 324 points · first shared 2017 · 232 comments on HN
    3. 3
      Shipping Culture Is Hurting Us
      2 people · 232 points · first shared 2015 · 162 comments on HN
    4. 4
      Concurrency in Haskell: Fast, Simple, Correct
      1 person · 193 points · first shared 2025 · 125 comments on HN
    5. 5
      C++ on Embedded Systems
      1 person · 178 points · first shared 2017 · 83 comments on HN
    6. 6
      Comparing Floating-Point Numbers Is Tricky (2017)
      5 people · 166 points · first shared 2017 · 108 comments on HN
    7. 7
      Unsafe at Any Speed: Tradeoffs and Values in the Rust Ecosystem
      1 person · 59 points · first shared 2024 · 38 comments on HN
    8. 8
      Async Rust Is A Bad Language
      3 people · 45 points · first shared 2023 · 4 comments on HN
    9. 9
      TeX: A Tale of Two Worlds
      3 people · 37 points · first shared 2017 · 2 comments on HN
    10. 10
      D is like native Python
      5 people · 29 points · first shared 2015 · 2 comments on HN

    What HN people wrote when they linked it

    • giancarlostoroNov 2016

      Let me point out two alternatives:
      Cython which is very Pythonic looking, and compiles to C and produces amazing projects including UVLoop which is a drop-in module for asyncio for Python 3 that will speed up asyncio:

      https://magic.io/blog/uvloop-blazing-fast-python-networking/

      https://github.com/MagicStack/uvloop

      Note how GitHub claims it's all mostly Python code ;) That's because Cython like I said looks Pythonic.

      There's other examples, but I think this is one of the one's that come to mind the most to me.

      There's also D which is called Native Python by some (unlike projects like Go and Rust, you can have your Object Oriented Programming (optional like in C++), and concurrency / parallelism too and other goodies like built-in unit testing, when you compile your code your unit tests are ran but not included in the final binary):

      http://bitbashing.io/2015/01/26/d-is-like-native-python.html

      https://blog.experimentalworks.net/2015/01/the-d-language-a-sweet-spot-between-python-and-c/

      If it's been more than a few years since you've evaluated D you might want to check it out again, it may be worth your time. D is a language I knew about for years, and recently is where I've come to appreciate it for it's many features.

      D has things like array slicing, [OPTIONAL] Garbage Collection, an amazing Web Framework called Vibe.d with it's own template engine called Diet-:

      http://vibed.org/

      https://vibed.org/blog/posts/introducing-diet-ng

      Things I like is Vibe.d is not just a…

    • simiasOct 2017

      I wonder if C++ is headed for COBOL-ification. This article is very interesting but doesn't really give any hope for success in implementing a modern module system in C++.

      I feel like the only way to have truly useful, simple and intuitive modules in C++ would involve breaking a certain amount of backward compatibility and force a few constraints (project layout, file naming scheme, build system, ...) on the user. But clearly that's not really in C++'s DNA and you risk ending up with something that's not quite C++ while at the same time not having the simplicity and elegance of modern languages that have been designed from scratch without all the baggage C++ carries.

      C++ won't go away any time soon, that's for sure. But when I read articles like TFA or for instance https://bitbashing.io/std-visit.html my gut reaction is always that maybe if you get frustrated with C++'s extreme complexity, historical baggage and user-unfriendliness you should consider moving to something else instead of trying to bolt on even more exotic features on a language which is already crumbling under the weight of all the features and programing styles it already supports. I know I did.

      As an example I stumbled upon this std::visit link by perusing the top posts of reddit's /c/cpp (linked by TFA), here's the discussion: https://www.reddit.com/r/cpp/comments/703k9k/stdvisit_is_everything_wrong_with_modern_c/

      There's an interesting thread about how:

      variant<string, int, bool> mySetting =…

    • mlthoughts2018May 2018

      I won’t be able to address all the points. But in my experience, C++ has been going in the wrong direction in terms of simplicity or productivity. Modern C++ is drastically more complicated and riddled with deep esoterica. The flexibility benefit modern Python gives is probably more like 1000x, further mitigating many cases when there are concerns about the flexibility/performance trade-off.

      Just for one example about what I mean with modern C++: < https://bitbashing.io/std-visit.html >.

      This example is relevant because you mentioned you feel you never need Python’s flexibility in the day to day. But in Python (much like in many functional languages), the entire idea of the visitor pattern can be boiled down to map() —- just one function call! If you want to specialize this for your own data type, you can very easily implement the iterator protocol, often simple __iter__, __getitem__, and __next__, which themselves could use e.g. numba to iterate some homogeneously typed tree class with pure C performance characteristics, or a sum type (like with Cython fused types) as in the std::visit example, etc.

      The point is that the data model’s flexibility makes this trivial, rather than convoluted. In the cases when I’d care about this pattern, it would be no contest that Python offers hugely improved productivity.

      So it’s not just naive flexibilty of modifying object instances, but the bigger picture of flexibility in the data model overall.

    • cdavidMar 2022

      This is not a very good article, and I would not recommend it beyond simple use cases. The problem is that there is no right way, it depends on the usecase and the magnitude of numbers you're comparing. See e.g. https://bitbashing.io/comparing-floats.html as a better referenc.

      The fundamental difficulty of comparing floats is that the format ensures a near constant number of digit of precision regardless of the scale. This is very useful for most calculations because it means you can calculate without worrying too much about the amplitude of your numbers. But it means that the smallest representable difference between two numbers gets bigger as numbers get bigger: that's why they are called floating point.

      That's why using tolerance, etc. is not so reliable: because the tolerance will depend on the magnitude of the numbers, even by doing those simple tricks. In particular, it is important to understand epsilon is only "correct" around 1, i.e. a + eps != a is only true of a is close to 1. More precisely, epsilon is the smallest number such as 1 + eps != 1.

    • ArcsechJul 2017

      Here's a dump of the "Programming" folder from my RSS reader:

      Aphyr's (aka the guy behind the Jepsen distributed system test series): https://aphyr.com/

      Fred Herbert, the author of Learn You Some Erlang: http://ferd.ca/

      Eevee, who posts a mishmash of stuff about programming in general but these days is mostly focussed on games: https://eev.ee/

      Tef/Programming is Terrible, which features strong opinions about programming/programmers: http://programmingisterrible.com

      Matt Kline, who posts mainly about low-level stuff and embedded systems: http://bitbashing.io/

      Evan Miller, whose blog topics are wide-ranging: http://www.evanmiller.org/

      tptacek, who can be seen tirelessly defending common sense in the comments on this very site: https://sockpuppet.org

      Sonniesedge, who talks about front-end stuff and the human impact of programming: https://sonniesedge.co.uk/blog/

      Carin Meier, who posts most often, but not exclusively, about Clojure: http://gigasquidsoftware.com/

      Also Julia Evans, as mentioned in the OP.

    • XeamekFeb 2024

      >more modern and less dangerous language than most people think

      Compared to what? Itself from 20 years ago? That's great, but not nearly enough. Cpp just has SO MUCH FRICTION that it's simply not worth it to deal with it. Maybe if you have 20yrs of cpp experience and carved out a specific way for yourself to avoid all of it while still being productive... But that's not really an argument.

      And sure, there are still some cases when the alternatives aren't ideal either (ie. Rust also having friction, especially in domain like games, or higher level languages being too slow). But cpp has so much downsides I don't see why should one ever default into choosing cpp, unless you REALLY care about the benefits it brings. But those upsides are usually external (ie. ecosystem), rather then features of the language itself

      https://bitbashing.io/std-visit.html

    Related

    Random ASCIIrandomascii.wordpress.com274 people

    There are only four billion floats, so test them all (2014)

    Random ASCII
    Personal · last shared 2026
    Bluish Coderbluishcoder.co.nz77 people

    Using Freenet

    Bluish Coder
    Personal · last shared 2025
    Viral Instructionviralinstruction.com30 people

    What's bad about Julia?

    Viral Instruction
    Personal · last shared 2026
    C++ Truthscpptruths.blogspot.com17 people

    Covariance and Contravariance in C++ Standard Library

    C++ Truths
    Personal · last shared 2019
    Rachel Krollrachelbythebay.com493 people

    fork() can fail

    Rachel Kroll
    Personal · last shared 2026
    Eli Benderskyeli.thegreenplace.net428 people

    Common Pitfalls in Go Benchmarking

    Eli Bendersky
    Personal · last shared 2026
    Bit Quabitbitquabit.com50 people

    Flux is the new WndProc

    Bit Quabit
    Personal · last shared 2025
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026