Stories
Slash Boxes
Comments

SoylentNews is people

posted by Fnord666 on Monday November 19 2018, @07:42AM   Printer-friendly
from the who-watches-the-watchers dept.

Submitted via IRC for Bytram

We Need an FDA For Algorithms

In the introduction to her new book, Hannah Fry points out something interesting about the phrase "Hello World." It's never been quite clear, she says, whether the phrase—which is frequently the entire output of a student's first computer program—is supposed to be attributed to the program, awakening for the first time, or to the programmer, announcing their triumphant first creation.

Perhaps for this reason, "Hello World" calls to mind a dialogue between human and machine, one which has never been more relevant than it is today. Her book, called Hello World, published in September, walks us through a rapidly computerizing world. Fry is both optimistic and excited—along with her Ph.D. students at the University of College, London, she has worked on many algorithms herself—and cautious. In conversation and in her book, she issues a call to arms: We need to make algorithms transparent, regulated, and forgiving of the flawed creatures that converse with them.

I reached her by telephone while she was on a book tour in New York City.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 1, Disagree) by Anonymous Coward on Monday November 19 2018, @09:18AM (6 children)

    by Anonymous Coward on Monday November 19 2018, @09:18AM (#763826)

    It recently came to my attentions that algorithms don't matter. That 90% of programmers forget all the math and formal combinatorics analysis they've learned as soon as they get their diplomas and that the only people buying algorithms books are the academics that never wrote a commercial piece of code in their lives and the math nerds that are kept around at a 1-to-20 ratio of real programmers to "optimize". After much contemplation and deliberation, I concluded that the problem isn't that academia was being unbelievably lazy and irresponsible by never bothering to design safe languages and algorithm templates built-in, but rather, that the government should step in and make the practices of business programming illegal.

    Yours, random Phd. algorithms book author in search for tenure/a job at the new agency since I hate writing code and would much rather wank off to math.

    Starting Score:    0  points
    Moderation   +1  
       Insightful=1, Disagree=1, Total=2
    Extra 'Disagree' Modifier   0  

    Total Score:   1  
  • (Score: 3, Interesting) by DannyB on Monday November 19 2018, @05:16PM (4 children)

    by DannyB (5839) Subscriber Badge on Monday November 19 2018, @05:16PM (#763925) Journal

    Having written commercial software almost four decades, I find that even for boring business and accounting software the things I learned in CS did and still do matter to this very day. It is important to understand algorithms if you want efficient and correct code.

    Examples: I shouldn't use this algorithm because it is just wrong for this application or will have a huge performance impact. I should use that algorithm for that other application because it would be more efficient as well as correct. Always consider correctness before efficiency.

    Trivial optimization can happen as you code. (But should not be affecting big design decisions to avoid premature optimization.) An example of trivial optimization is should I use an ArrayList or a LinkedList. Both of these implement the List interface. But they have different performance behavior for different operations. The choice doesn't affect system design, but can impact behavior in a meaningful way. If you're having a performance issue, you profile and optimize.

    I would say that Java (and probably C#) programmers would both say we have safe languages with both data structure templates, as well as algorithm templates built in. Because these implement standard interfaces, high quality third party implementations of algorithms and data structures are also available. (Example: Google Guava, and others)

    The government should definitely stay out of programming. (Since I usually only speak sarcasm, I recognize yours instantly.) The government is not needed in programming. Leave it to private enterprise to screw things up without government help. They are already much better at it than the government is.

    --
    If your boy is chewing on electrical cords, then ground him until he conducts himself properly.
    • (Score: 3, Interesting) by DutchUncle on Monday November 19 2018, @05:59PM (3 children)

      by DutchUncle (5370) on Monday November 19 2018, @05:59PM (#763948)

      >>>> Examples: I shouldn't use this algorithm because it is just wrong for this application or will have a huge performance impact.

      Having written embedded systems firmware for four decades, I find that most embedded work is done by EEs, and I was the only CS person they had ever met, and they had never learned any of the (what I thought were) basic techniques, AND DIDN'T CARE. Software was the "easy" part. Of course, nobody (least of all me) would have assumed that I as a CS grad should be designing circuitry for 480-volt power systems, but the EEs who were doing that design were assumed to be able to "throw together" the control program for the microprocessor controlling it, and incidentally doing communications on three lines in three different protocols. And while they might have gotten the timing charts right for the hardware, they didn't recognize when coding approaches left them vulnerable to race conditions in the software.

      So a finding that "nobody cares about algorithms" would be accurate; a lot of the people doing programming never studied the background of the field and throw code together till it appears to do what they want, on the limited test set of data that they try. (We can discuss testing for error recognition at length another time.)

      • (Score: 2) by DannyB on Monday November 19 2018, @07:17PM

        by DannyB (5839) Subscriber Badge on Monday November 19 2018, @07:17PM (#763973) Journal

        That's a different world than I live in, but I hear what you're saying.

        --
        If your boy is chewing on electrical cords, then ground him until he conducts himself properly.
      • (Score: 2) by suburbanitemediocrity on Tuesday November 20 2018, @02:49AM

        by suburbanitemediocrity (6844) on Tuesday November 20 2018, @02:49AM (#764121)

        I used to write code for high power supplies and things rarely got more complicated than

        for( ; ; ) {
                setpoint = read_voltage( );
                DAC_out = k * ( ADC_vin - setpoint ); // the important part
                update_display( );
                wait_timer( );
        }

        And yes I've had to do linked lists, searches and a whole host of other CS data structures, but these aren't difficult to pick up in a few minutes of reading example code. Not for power supplies, but larger plant and process control.

      • (Score: 2) by legont on Tuesday November 20 2018, @03:27AM

        by legont (4179) on Tuesday November 20 2018, @03:27AM (#764131)

        I wonder what happens if the device blows and kills a few people in the process. In older world, say civil engineering, the engineer would certify a bridge and go to prison if it falls down with victims. Do we have "bridge designs" with significant software and who takes the responsibility?

        --
        "Wealth is the relentless enemy of understanding" - John Kenneth Galbraith.
  • (Score: 0) by Anonymous Coward on Monday November 19 2018, @05:26PM

    by Anonymous Coward on Monday November 19 2018, @05:26PM (#763934)

    I'm certain the angle of "this will get us more programmers who menstruate regularly" is lurking in here somewhere.