back to article Facebook tackles race hate problem head on with programming tool

In Facebook's advertising business, a race condition might be construed as an ethnic descriptor used to prevent purchased ads from being displayed to a particular racial group. Among its software engineers, it's a programming problem that arises when multiple operations run concurrently but are executed in an unexpected order …

  1. Anonymous Coward
    Anonymous Coward

    Snore! Wake me up when billionaire Tech-Titans...

    Take on more interesting challenges like Blade-Runner / Fifth-Element anti-grav hover-cars etc. Hell, where's the Bot to clean the toilet, cook the dinner & clean up? I'd settle for that, as long as it can wash windows too!

    1. Anonymous Coward
      Anonymous Coward

      Re: Snore! Wake me up when billionaire Tech-Titans...

      Makes you wonder if the MSM / Journalists in general covering all this endless Facebook / Google dominated news actually find it interesting, or a bore that they just get paid to cover.

    2. Anonymous Coward
      Anonymous Coward

      Re: Snore! Wake me up when billionaire Tech-Titans...

      I'd settle for that, as long as it can wash windows too!

      Me too (well, except cooking, which is a hobby round these parts). And this housebot needs to collect, wash and dry the laundry, fold it and return to storage, mow the grass and wash the car, walk the dog on rainy nights, pick up everything the kids drop all over the house.. But there's two reasons that billionaire tech titans don't work on this:

      1) Most of them have a fleet of human minions to do all this already. They don't even remember having to do this sort of dross themselves.

      2) They actually think the stuff they optimised (few invented) is the be-all and end-all. Look at how Zuck thinks that Facebook is the centre of the universe. Likewise Page & Brin think that flogging adverts to the world improves the place - who needs to be freed from chores? Cook & Co think that a $1,300 phone is an advance for the world.

      The main man who takes some of his billions and says "let's try something completely different" is Musk. Unfortunately for you and I, Musk still suffers from problem 1, so his diversions are stuff like cars for rich people, reuseable rocket boosters, and vacuum trains. You and I will have to wait until Japanese ingenuity combined with their demographic problem gives rise to chore-bots.

  2. Anonymous Coward
    Anonymous Coward

    2017 already!

    When will we learn? There is only one race, the human race!

    1. Tigra 07
      Joke

      Re: 2017 already!

      Earth power! Earth power! Earth power!

      Gather up ye fellow Earthicans for tomorrow we invade our backwards Martian neighbours!

  3. bazza Silver badge

    Out of Date

    Neat idea, but this kind of concurrency problem has been sidestepped altogether decades ago. Concurrent formulations such as Actor Model and, more importantly, Communicating Sequential Processes are 1970s ideas. The latter in particular is highly relevant to anyone wanting code that executes concurrently which is provably free of deadlock, livelock and spinlock problems as well as having zero memory sharing errors. There's even a process calculus for it.

    CSP was briefly fashionable back in the 1980s, early 1990s (Inmos's Transputers, Occam), but is now alive and well in languages such as Erlang, Rust, Go, Scala. Of those, Rust in particular looks really good (no runtime needed, ideal for all sorts of software and not just desktop applications like web browsers). I'm perverse, choosing to do CSP architectures in C/C++ (I have to have a library...).

    This is clearly the way to go for future developments. Sticking with the old "lets share memory and guard it with a semaphore" is not faster to run, is a lot longer to debug (even with tools like this from Facebook), and is prone to stinging you in the arse years down the line when some unexpected sharing issue finally occurs for the first time.

    It is also inherently limiting when one wants to scale up a piece of software across a whole network of computers; Actor Model or CSP channels can be network connections; shared memory / semaphores cannot. Shared memory architectures fundamentally require an SMP computer; that's increasingly becoming a bottleneck in future CPU speed improvements; massive chunks of modern Intel CPUs, and especially AMD CPUs, are dedicated to synthesising an SMP environment from an underlying NUMA architecture.

    Whereas CSP / Actor Model architectures are entirely happy with NUMA. A computer that is a pure NUMA machine would be a lot more power efficient (or faster, depending on how you want to adapt).

    1. Anonymous Coward
      Anonymous Coward

      Re: Out of Date

      "CSP was briefly fashionable back in the 1980s, early 1990s (Inmos's Transputers, Occam), but is now alive and well in languages such as Erlang, Rust, Go, Scala."

      Thats all very nice, but what do you think these languages runtimes do under the hood when running on a standard OS? Yes, thats right, they use threading and multi process with shared memory. Reality is what matters, not trendy names and buzzwords.

      1. More Jam

        Re: Out of Date

        "Thats all very nice, but what do you think these languages runtimes do under the hood when running on a standard OS? Yes, thats right, they use threading and multi process with shared memory. Reality is what matters, not trendy names and buzzwords."

        Structured control constructs like if-then-else statements and while loops are usually implemented under the hood using labels and goto statements, but I would not argue that they are not useful on that account. Restricting the use of dangerous features to a few well-understood idioms makes it easier to reason about the resulting code. Sure, in the end it all compiles down to machine code: that's not the point.

  4. John Smith 19 Gold badge
    Thumb Up

    "shifted their focus to proving the opposite –..data races under specific circumstances."

    A nice demonstration of the "Other way around" principle. Nice work.

    As for

    "but this kind of concurrency problem has been sidestepped altogether decades ago"

    I might agree.

    But how many people use "Erlang, Rust, Go, Scala." ?

    And which ones will still have a developer pool you can actually recruit from in a decade?

    1. Anonymous Coward
      Anonymous Coward

      Re: "shifted their focus to proving the opposite –..data races under specific circumstances."

      "But how many people use "Erlang, Rust, Go, Scala." ?"

      Plenty. On the Scala front any JVM dev can be cranking out productive, high quality Scala in a couple of weeks.

      And actually Java itself now has a reactive streams/actor model baked in as of JDK9, so can do much of the same as the other languages.

      However believing that such models eliminate or even "sidestep" race conditions is silly.

      1. Anonymous Coward
        Anonymous Coward

        Re: "shifted their focus to proving the opposite –..data races under specific circumstances."

        "Plenty. On the Scala front any JVM dev can be cranking out productive, high quality Scala in a couple of weeks."

        Did you say any JVM dev and high quality in the same sentence? Wow, yes you did. Tell us what it is like on your world strange visitor from another planet!

        1. Anonymous Coward
          Anonymous Coward

          Re: "shifted their focus to proving the opposite –..data races under specific circumstances."

          "Tell us what it is like on your world strange visitor from another planet!"

          It's sane and reasonable, where we don't reject entire ecosystems of perfectly good tools because of biases learned from forums. Java, Scala, Clojure, Groovy, Kotlin. The JVM is a broad church where all are welcome.

          1. Anonymous Coward
            Anonymous Coward

            Re: "shifted their focus to proving the opposite –..data races under specific circumstances."

            "It's sane and reasonable, where we don't reject entire ecosystems of perfectly good tools because of biases learned from forums."

            Oh I can assure you my friend, my baises against some Java devs is not from forums, its first hand. And no, its nothing to do with the language and everything to do with 2nd rate coders who learnt it as their only language on their "programming" course at Mandela College and somehow managed to get a job doing it. Luckily it seems the 3rd rate colleges are now teaching javascript, HTML and probably advanced nosepicking to the current generation of muppets so hopefully its only a brief blip.

    2. Lysenko

      Re: "shifted their focus to proving the opposite –..data races under specific circumstances."

      But how many people use "Erlang, Rust, Go, Scala." ?

      And which ones will still have a developer pool you can actually recruit from in a decade?

      Erlang has been around for nearly 30 years, Go for about ten. How much track record do you want? FORTRAN?

      As for your second point, it essentially equates to asking how many developers are left after you deduct web monkeys and Java/C#. The answer to that will always be "not many", irrespective of the specialism in question. How easy is it to recruit a FORTRAN expert?

  5. Tigra 07
    Terminator

    The way things are going...

    It does seem that on our current path the only way to eliminate racism and other "ism"s is to get Google X to invest in Cybermen research and make us all identical...

  6. Not also known as SC
    Thumb Down

    Click-bait?

    This article must have one of the strangest headlines I've ever read on the Register. Considering the technical readership of the Register I'm sure most readers are aware of race conditions in programming so why the attempt to make it look like a story to do with racial issues?

    The article even starts with what seems a really flimsy attempt to justify the headline "In Facebook's advertising business, a race condition might be construed as an ethnic descriptor used to prevent purchased ads from being displayed to a particular racial group." Now we all know that the word 'might' can be swapped out with 'might not' without really changing the meaning of the sentence so this sentence looks like it was shoe-horned in just to justify the headline.

    I read the Register for the intelligent articles along with the witty and informative comments. If I want click-bait there's plenty of other websites out there to fulfil that need.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like