Jeff Darcy

Two Years at Facebook

Yesterday was my second "Faceversary" (i.e. the anniversary of when I started). That's the tenure that I initially thought I had a 50:50 chance of reaching, so it seems like a good time to look back at how I got this far. Instead of waffling on like I usually do, I'll try to structure this as a set of pretty quick good/bad items.

  • . . .

Read More

April 04, 2019

Distributed Functions

I've been thinking about better ways to write distributed-system code for a long time. I've talked to quite a few people about some of these ideas. The Christmas break seems like a good time to sit down and write them out in a bit more detail.

My basic motivation is that I feel I've wasted too much time already dealing with code that's . . .

Read More

Posted in: devlanguages

December 28, 2018

Defective C++: 'const' sucks

This is part of my "Defective C++" series, not because it's a flaw in the language itself but because the culture that grows up around any language is effectively part of it and this is definitely a flaw in that culture. Don't get me wrong: I think const is a useful and perhaps even necessary language feature. The problem is the "const . . .

Read More

Posted in: devlanguages

October 17, 2018

Defective C++

Part one of many

People can and do write bad code in every language that has ever existed. However, C++ seems to be specially designed to facilitate writing unreadable and unmaintainable code. Here are some tips to enhance your job security.

  • Obscure your types
    Use subclasses, aliases, and typedefs to hide what arguments a function really takes. . . .

Read More

Posted in: languages

September 27, 2018

Hating C++: Exceptions

I've recently started working in C++ after a long time working in C (and occasionally Python). To be honest, I had hoped to avoid C++ and go straight to D/Rust/Go/Nim/retirement, but it was not to be. The language has changed a lot since I last used it "in anger" in 2006 or so, and the Facebook flavor is unique in its own ways. Some of those . . .

Read More

Posted in: languages

September 04, 2018

Why C Should Go Away

I don't want C to grow any more. I've been a C programmer for a long time, the vast majority of my day-to-day work is still in a C codebase, and I expect to continue working in C for a while yet. Nonetheless, its time has passed. It will be around for a while, just like FORTRAN and COBOL are, but there's no good reason for new code to be . . .

Read More

May 30, 2018