frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

US bans differential privacy in Census data

https://desfontain.es/blog/banning-noise.html
315•nl•3h ago•130 comments

AI Coding at Home Without Going Broke

https://stephen.bochinski.dev/blog/2026/06/13/ai-coding-at-home-without-going-broke/
23•sbochins•32m ago•10 comments

Treating pancreatic tumours may have revealed cancer's master switch

https://economist.com/science-and-technology/2026/06/12/treating-pancreatic-tumours-may-have-reve...
108•andsoitis•3h ago•28 comments

Every Frame Perfect

https://tonsky.me/blog/every-frame-perfect/
178•ravenical•5h ago•52 comments

Appreciating Exif

https://brentfitzgerald.com/posts/appreciating-exif/
35•burnto•3d ago•3 comments

Introduction to the experience of rendering Arabic typography&its technical debt

https://lr0.org/blog/p/arabic/
79•bookofjoe•4h ago•12 comments

A low-carbon computing platform from your retired phones

https://research.google/blog/a-low-carbon-computing-platform-from-your-retired-phones/
173•vikas-sharma•7h ago•85 comments

AI OSS tool repo goes archived over night after raising $7.3M Seed

https://github.com/tensorzero/tensorzero
177•hek2sch•5h ago•121 comments

Show HN: I am building a map of people who lived in the Roman Empire

https://new.roman-names.com/
75•metiscus•2d ago•14 comments

Electric motors with no rare earths

https://www.renaultgroup.com/en/magazine/energy-and-powertrains/all-about-electric-motors-with-no...
641•bestouff•19h ago•181 comments

RTX 5080 and RTX 3090 Setup: 80 Tok/s on Qwen 3.6 27B Q8

https://imil.net/blog/posts/2026/rtx-5080-+-rtx-3090-setup-80+-tok-s-on-qwen-3.6-27b-q8/
89•iMil•7h ago•30 comments

The state of building user interfaces in Rust

https://areweguiyet.com/#ecosystem
118•mahirsaid•3d ago•79 comments

The adder at the heart of Intel's 8087 floating-point chip

https://www.righto.com/2026/06/intel-8087-adder-reverse-engineered.html
6•pwg•27m ago•1 comments

CRISPR tech selectively shreds cancer cells, including "undruggable" cancers

https://innovativegenomics.org/news/crispr-technique-selectively-shreds-cancer-cells/
938•gmays•1d ago•203 comments

An Interview with Intel's Kira Boyko: Xeon 6's Product Director

https://chipsandcheese.com/p/an-interview-with-intels-kira-boyko
37•lumpa•4h ago•1 comments

Statement on US government directive to suspend access to Fable 5 and Mythos 5

https://www.anthropic.com/news/fable-mythos-access
2921•Dylan1312•16h ago•2135 comments

Show HN: Paca – Lightweight Jira alternative for human-AI collaboration

https://github.com/Paca-AI/paca
94•pikann22•7h ago•31 comments

Arch Linux Now Believes Malware Incident Under Control: More Than 1,500 Packages

https://www.phoronix.com/news/Arch-Linux-AUR-More-Than-1500
196•qwertox•5h ago•111 comments

GLM 5.2 Is Out

https://digg.com/tech/ii9xibgn
23•aloknnikhil•58m ago•6 comments

What about OpenCL and CUDA C++ alternatives?

https://www.modular.com/blog/democratizing-ai-compute-part-5-what-about-cuda-c-alternatives
11•eatonphil•4d ago•0 comments

Open source AI must win

https://opensourceaimustwin.com/?share=v2
1374•vednig•15h ago•426 comments

Show HN: 2 Weeks of Hallucinate – The Photo Gallery

https://hallucinate.site/gallery
56•stagas•5h ago•16 comments

How to setup a local coding agent on macOS

https://ikyle.me/blog/2026/how-to-setup-a-local-coding-agent-on-macos
448•kkm•23h ago•112 comments

The computer science degree isn’t dead

https://spectrum.ieee.org/computer-science-degree-isnt-dead
170•jnord•3d ago•167 comments

Orthodox C++

https://bkaradzic.github.io/posts/orthodoxc++/
50•signa11•3h ago•56 comments

Shepherd's Dog: A Game by the Most Dangerous AI Model

https://koenvangilst.nl/lab/claude-fable-shepherds-dog
146•vnglst•11h ago•114 comments

Amazon CEO's Talks with U.S. Officials Triggered Crackdown on Anthropic Models

https://www.wsj.com/tech/ai/amazon-ceos-talks-with-u-s-officials-triggered-crackdown-on-anthropic...
8•ls612•19m ago•2 comments

Show HN: Putt.day a daily mini golf game

https://putt.day/
259•ellg•18h ago•98 comments

Malware developers added nuclear and biological weapons text to to their spyware

https://twitter.com/jsrailton/status/2064661778978533571
435•marc__1•1d ago•229 comments

Leaving Mozilla

https://blog.unitedheroes.net/5751
414•martey•11h ago•240 comments
Open in hackernews

Orthodox C++

https://bkaradzic.github.io/posts/orthodoxc++/
50•signa11•3h ago

Comments

PaulDavisThe1st•1h ago
You can take

   for (auto const & ess : esses) {
         ...
   }
from my cold dead hands.

Also, you can fight me if you want to take

      dynamic_cast<Derived> (base_ptr)
and force me to implement my own typing system every time I need to upcast.

Basically, stick with C and leave C++ programmers alone. I haven't seen a less useful article about C++ in a long time, and as an HN reader, that's really saying something.

rfgplk•1h ago
One thing I've noticed about a lot of these "strict C" developers is that quite often they actually refuse to learn C++. One of the most common complaints of C developers regarding C++ is "it does things behind the scenes/performs magic", often with regards to operator overloading. When they refuse to actually look at the implementation (y'know you can check if an operator has been overloaded) AND they refuse to acknowledge that a huge chunk of "pure C" does HEAPS of magic behind the scenes (that the developer has no idea about) unless they've actually studied the spec in detail. Malloc and memory allocation methods are at least 10k+ lines of code for instance.
01100011•1h ago
A lot of us are too busy solving problems. Learning about the latest language features, which we often won't be able to use anyway due to the trouble of moving a large dev environment to a newer standard, feels like academic masturbation.

C++ folks are very much into their language, and can't seem to understand that most folks don't want to dedicate significant amounts of mental resources purely to language details.

pjmlp•13m ago
Like implementing the compilers used by C devs.
bluGill•7m ago
Moving to new C++ is a non event, change the compiler / flags and done. Using the new features requires some learning but not a big deal since you can figure out what you need from a summary and learn what is useful for your problem.

The problems of the code I'm writing far exceeds the complexity of the language. Your complaint about complexity fall flat to me, unless you are working on a trivial program you need to deal with things far more complex than any language.

IncreasePosts•44m ago
If we accept the maximum that "any sufficiently advanced technology is indistinguishable from magic", then c++ is indeed magic. It's so advanced that one of the worlds foremost experts in the language(herb sutter) has determined that the language is too complex and we need a whole new language(confront) which is simpler and can be converted to c++.
rfgplk•16m ago
C++ is actually obscenely complex, I don't deny that. Just mastering object lifetime rules is crazy difficult due to all the edge cases, but it comes with the territory.
lelele•42m ago
> y'know you can check if an operator has been overloaded

And there lies the problem with C++: to be sure, you have to check. C++ code can't be taken at face value -- the most innocuous-looking code could be a ticking bomb.

LoganDark•23m ago
> C++ code can't be taken at face value -- the most innocuous-looking code could be a ticking bomb.

You can't take C code at face value either. The name of a method or type doesn't tell you what it does. It could longjmp for all you know.

rfgplk•18m ago
But isn't this a problem with all code? Looking at a Rust function signature how can you be sure that it does what it says it does? Or python?
pjmlp•14m ago
Just like any C function without looking into the translation unit, don't say you blindly believe on the function name.
jstimpfle•22m ago
Trust me, I know more C++ than most or all of my peers (working two jobs simultaneously), and I know a million ways that C++ features suck. Also standard library and containers. If you want I'll point out the ways in which std::deque, and even std::map, std::unordered_map, even std::vector (!) suck. IMO, just don't do it.
rfgplk•19m ago
The standard library implements really do suck (in some cases), but this should be separated from C++ (the language). Even the standard splits the language grammar from the standard library cleanly.
wavemode•6m ago
You can't really separate the two, firstly because some parts of the standard library interact directly with the language's syntax (e.g. <initializer_list>), and secondly because the language standard dictates things about the behavior of the standard library that limit implementation options.

For example, the standard says that adding elements to an <unordered_map> is not allowed to invalidate references to keys or elements within the map. That makes it impossible for any standards-compliant C++ implementation to use a high-performance implementation in which keys and elements are stored contiguously in a flat array.

cyber_kinetist•35m ago
LLVM uses a hand-rolled version of RTTI for the best performance (the parent constructor accepts its runtime type as an enum), and it seemed that the maintenance costs for it aren't that high. (See https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html)

Or if you're even lazier, you can easily make a more automatic RTTI system with some templates / macros that works much faster than dynamic_cast! (See https://github.com/royvandam/rtti)

my-next-account•23m ago
Implementing STL iterators are a bloody PITA
nasretdinov•1h ago
Such a missed opportunity to call it C <orthodox cross emoji>
undershirt•1h ago
that's one way to combine three plus signs!
greenbit•37m ago
Was thinking "Hesitance C" could work
aw1621107•1h ago
Submitted a fair few times previously. HN's search turned up these submissions with some additional discussion:

https://news.ycombinator.com/item?id=40445536 (2 years ago, 63 points, 66 comments)

https://news.ycombinator.com/item?id=25554018 (5 years ago, 70 points, 102 comments)

https://news.ycombinator.com/item?id=13751244 (9 years ago, 29 points, 14 comments)

Looks like the page was moved from a GitHub gist to a github.io page in October of last year.

rramadass•1h ago
Yep, the article is a old one and not particularly well written. As somebody who has been using C++ from the early 90s and not particularly a fan of (all of) "Modern C++", there is not much information here.
sudosteph•1h ago
And here I was thinking this was going to be about a schism from Holy C [1]

[1] https://en.wikipedia.org/wiki/TempleOS#HolyC

gpderetta•1h ago
Don't follow dogma.
rfgplk•1h ago
I've developed a style that I legitimately call Heterodox C++ (mainly due to the popularity of Orthodox C++), it is effectively a purely functional & metaprogramming heavy style of C++. Quite the opposite of this, not everyones cup of tea, and it won't fit into every codebase but it is incredibly powerful. The template metaprogramming C++ offers is the most powerful of any imperative language, and (subjective opinion) is second only to Lisp, but few people make use of it. With some of C++26 features you can almost even replicate most of Rusts safety features in pure C++ (via function tagging + reflection)
undershirt•1h ago
have you written about this anywhere, or hosting any examples?
rramadass•1h ago
You might find Functional Programming in C++ by Ivan Cukic relevant.
rfgplk•58m ago
Not yet, I might one day.
unnah•1h ago
C++ template metaprogramming is in some ways more powerful than Common Lisp macros, because it works at the type level: you can generate new types and dispatch into separate implementations by type. In contrast, Common Lisp type declarations are not available at macro expansion time unless you implement a full source-to-source translator in macros.
cyber_kinetist
badlibrarian•1h ago
If you're in a market that requires using C++, many of these decisions are made for you by the platform above you, and you're screwed. Turn on RTTI, build a fort to deflect the random exceptions they'll throw at you, and may the gods allow you to recoup your R&D before some well-intentioned yokel in some media or game vertical changes everything and requires you to change everything.

On the other hand, if you control your own destiny and care about velocity and code quality, many of these choices eventually become self-evident.

If you are messing around with the latest and greatest esoteric C++ stuff in 2026, bless you, you beautiful nerd. But it may be time to start evaluating where you are in life, and how you got here. (And if you're on a C++ committee, I revoke those blessings.)

For those who remain: if you have a C++ code base yet somehow have enough time and energy to write opinionated blog posts, it's really hard to imagine why you think you'd have a better take on this than Google.

https://google.github.io/styleguide/cppguide.html

dataflow•48m ago
> build a fort to deflect the random exceptions they'll throw at you

Sounds like you hate exceptions, right? In which case why do you handle them at all? Just leave them all unhandled and suddenly every exception is a crash. Which is really no different from someone choosing to terminate. Which you have to worry about even without exceptions.

> if you have a C++ code base yet somehow have enough time and energy to write opinionated blog posts, it's really hard to imagine why you think you'd have a better take on this than Google.

"Given that Google's existing code is not exception-tolerant [...] Our advice against using exceptions is not predicated on philosophical or moral grounds, but practical ones. [...] Things would probably be different if we had to do it all over again from scratch."

badlibrarian•24m ago
> Sounds like you hate exceptions, right?

Nope. Now edit your knee-jerk reply and make it useful.

rfgplk•59m ago
This is gonna be a long critique, I'll try to keep it concise.

> C-like C++ is good start, if code doesn’t require more complexity don’t add unnecessary C++ complexities.

C is almost obsolete nowadays. Not to mention that C++ is effectively a strict superset of C (nearly 99% of the C standard is in C++) and the few features that aren't are included as compiler extensions (VLA, restrict keyword, nested functions). There are a handful of C features that aren't in C++, and for very good reason (most of them suck). When was the last time you ran into a C library that a pure C++ compiler couldn't compile? Only if someone decided to spam the new keyword all over the codebase (or something similar).

> In general case code should be readable to anyone who is familiar with C language.

Most C++ already is? Even very template heavy C++.

> Don’t do this, the end of “design rationale” in Orthodox C++ should be immedately after “Quite simple, and it is usable. EOF”.

A lot of the methods in that document are necessary to make C++ shine, especially template metaprogramming.

> Don’t use exceptions.

Optional but irrelevant.

> Don’t use RTTI.

.. Why? Reimplementing RTTI in C will give you almost the same overhead.

> Don’t use C++ runtime wrapper for C runtime includes (<cstdio>, <cmath>, etc.), use C runtime instead (<stdio.h>, <math.h>, etc.)

.. Why? Those wrappers all include the "raw C runtime" under the hood (literally they do #include <stdio.h|xx>. Near 0 compiletime overhead?

> Don’t use stream (<iostream>, <stringstream>, etc.), use printf style functions instead.

This is a design decision.

> Don’t use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity.

There are many programs that are _impossible_ to write in a finite time without metaprogramming. How will you (with zero runtime overhead) dispatch a function with a variable arity of random types to a handler that requires exactly that type of function? Arbitrarily? In C++ it's possible, in C it isn't.

AnimalMuppet•17m ago
> > Don’t do this, the end of “design rationale” in Orthodox C++ should be immedately after “Quite simple, and it is usable. EOF”.

> A lot of the methods in that document are necessary to make C++ shine, especially template metaprogramming.

So? Is your goal to make C++ shine, or is it to produce useful, understandable code? My goal is good code, not being a showoff.

yyx•57m ago
At this point, if you want better C, just use Zig.
pjmlp•10m ago
Except it is years away of being 1.0, with the industry support of C++.
jstimpfle•52m ago
Orthodox C++, for me, is C plus the one good feature of C++: you don't have to type struct all the time.
maxvu•29m ago
How about one of the C unorthodoxies that use typedef everywhere? (Namespaces seem suitable, too.)
jstimpfle•25m ago
typedef is a little bit of a hassle but you can do it, even in a very strict mechanical way if writing plain C. But it's a hassle.

And namespaces suck too, so much noise for little gain. You know what, a big part of programming is naming. You just have to come up with good names. Namespaces don't magically make names better, if anything, they make them worse. And they add a lot of syntax noise.

BiraIgnacio•51m ago
Holly bananas, that Boost Design Rationale post is, what's the word I'm looking for, intense.
greenbit•41m ago
Sometimes I actually want objects that are transparent, fully public, and 'struct' is perfect for that. But if I then go and put methods into those structs, does that make me unorthodox?
blashyrk•22m ago
That's simply because we live in a world where UFCS is restricted to niche languages and we're stuck with "methods" instead. At least Rust/Kotlin/Swift support type extensions (with a thousand papercuts, i. e orphan rules)
asveikau•35m ago
The criticisms of STL and allocation are fair, though move constructors improved the shallow vs deep copy problem on resize.

Smart pointers are good. People were doing them outside the standard in the late 90s.

Lambdas are a good feature.

kabdib•35m ago
I've been doing embedded systems in C++ since rocks were young, and this is a great summary of what to avoid.

I would sure love a good coroutine runtime, and first-class support for defer. You can do these manually, but language/toolchain/debugger support is nice to have.

(Pragmatically, I will be retired by the time they would be useful)

usrnm•31m ago
A defer is just a dozen lines of code nowadays, if you really need it, but in most cases you don't if you're doing RAII
AnimalMuppet•19m ago
In embedded, I like wrapping a class around a set of registers. Nobody else gets to write to that piece of hardware except that class.

As far as avoiding things... avoid basically everything you don't need. Don't add language features that don't actually help you, just because they're there. Keep the subset you use small. But pick that subset to match your problem well, rather than out of dogma.

wglb•12m ago
It is still a bit amazing to me that it was significantly easier to do coroutines in Sigma 5 assembly and likely most any assembly than in C or C++. Two languages supposedly close to the machine.
Martin_Silenus•33m ago
Nothing surprising here. People who view C++ as just a better C always outnumbered those who view it as another language.

That's exactly how democratic governments make their decisions… you might think it's stupid, and you'd be right, but that's democracy. It's the majority that counts, not what's right. At least you can have a little fun with their arguments, they're pretty inventive you know.

netbioserror•31m ago
Man, all of the confusion and gnashing of teeth in the C++ world really makes me grateful for my job. Smaller company, I solo develop a central module on the product stack, and I was able to evaluate languages for the project.

Nim became the obvious choice, and I wasn't a fanboy before. Simple semantics, in a very functional style oriented around data's value. References and identity have to be trapdoored. Everything is single-owner unique lifetimes by default, no annotations or best-practices required. You end up writing extraordinarily functional/procedural code that produces very fast and memory-safe binaries, it fits right into C++'s niche.

The only objection I could steel man was that the standard library and most packages are composed of relatively pure functions that return new values, so allocations are happening there. But when types as complex as data frames can be semantically used as just values, and you know they have scoped lifetimes by default, the benefits are obvious.

With all of C++'s insanely specific, subtle, implicit, compiler- and platform-dependent behaviors, I've often wondered when the industry will finally consider its dominance an artifact of first-mover inertia and simply move on. There are vastly better ways to do all of the things it does, while easily exposing levers for the the things it's considered to do exceptionally well.

fithisux•30m ago
I wish the site listed compiler flags for the most popular compilers.
aleksiy123•20m ago
Somewhere within c++ there is a subset of c++ that is a great language.

The problem of course is that no one agrees on which subset that is.

ok123456•8m ago
stringstreams and fmt are a godsend compared to printf/scanf, which have historically caused people to program most of the memory bugs in the first place!

Printf/scanf are implemented as variadic functions without type checking and rely on the compiler to perform its own internal metaprogramming to inspect and warn about format mismatches.

Anyone advocating the use of the old cstdio as a primary design decision about which C++ language features to use is not serious.

canyp•8m ago
My codebase uses a fairly dumbed down version of C++, but I would have liked to see more depth in this post. As it is, it is not very useful.

There are many more things to avoid than just iostream. HFT university has a good recap: https://hftuniversity.com/post/the-c-standard-library-has-be...

The point on exceptions I think is also misleading. Compilers typically make throwing an exception the expensive part, and the happy path inexpensive (not more expensive than a branch checking for errors, which should be the baseline for comparison, not an implementation with zero error checking.) So to say that they are "expensive" doesn't really make a useful argument.

And there are more things that could be done in this camp, like proposing a set of compiler flags, and a linter to enforce the subset you are subscribing to. Unfortunately the post offers none of that.

•
34m ago
The problem with metaprogramming-heavy C++ codebases is always compilation times and obtuse error messages...

Template metaprogramming is sometimes very useful to get around C++'s language restrictions, but I tend to use it sparingly.

nly•6m ago
> obtuse error messages

With concepts and constexpr-if and consteval it's increasingly less of a problem

ndiddy•9m ago
> When was the last time you ran into a C library that a pure C++ compiler couldn't compile? Only if someone decided to spam the new keyword all over the codebase (or something similar).

In C, you can use goto to jump over a variable declaration, and you can't in C++. I understand why this is, but it's the thing I see the most often that makes C code not compile as C++.

pjmlp•3m ago
For me it was already obsolete in 1992, when I was given a copy of Turbo C++ 1.0 for MS-DOS.

It was the next step from Turbo Pascal in terms of safety, with added benefits from cross platform.

Nowadays all C compilers that matter are written in C++ anyway.