Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Tuesday November 22 2016, @08:04PM   Printer-friendly
from the "code"-of-ethics-needs-debugging? dept.

Earlier this week, a post written by programmer and teacher Bill Sourour went viral. It's called "Code I'm Still Ashamed Of."

In it he recounts a horrible story of being a young programmer who landed a job building a website for a pharmaceutical company. The whole post is worth a read, but the upshot is he was duped into helping the company skirt drug advertising laws in order to persuade young women to take a particular drug.

He later found out the drug was known to worsen depression and at least one young woman committed suicide while taking it. He found out his sister was taking the drug and warned her off it.

By sake of comparison, take a look at the ACM Code of Ethics and Professional Conduct (Adopted by ACM Council 10/16/92.)


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: 0) by Anonymous Coward on Tuesday November 22 2016, @08:48PM

    by Anonymous Coward on Tuesday November 22 2016, @08:48PM (#431473)

    As an aside, licensing as an engineer is possible for CS and CE people, but it is still in the early stages.

    But I'm sure it's possible to get sued if you fuck up, and I know I can definitely object to bad direction.

  • (Score: 3, Insightful) by meustrus on Tuesday November 22 2016, @10:42PM

    by meustrus (4961) on Tuesday November 22 2016, @10:42PM (#431538)

    Traditional engineering is based on stable best practices. Those don't exist in software. The world would be a much better place if every use case really had a standard general-purpose language that worked efficiently, prevented stupid designs instead of encouraging them, and was open and free across all platforms. Unfortunately everyone smart enough to build such a language has either sold out, filled the language with all the flexibility that junior devs need to hang themselves, or both.

    --
    If there isn't at least one reference or primary source, it's not +1 Informative. Maybe the underused +1 Interesting?
    • (Score: 1, Interesting) by Anonymous Coward on Tuesday November 22 2016, @10:54PM

      by Anonymous Coward on Tuesday November 22 2016, @10:54PM (#431545)

      That's one of the reasons I left IT/CS and went into real engineering. Was so tired of constantly chasing the bleeding edge and changing to the new-hotness framework every so many months. It's nice to be working with technology that matures slower and actually gets proven before mass roll-outs.

    • (Score: 2) by tangomargarine on Wednesday November 23 2016, @04:24PM

      by tangomargarine (667) on Wednesday November 23 2016, @04:24PM (#431894)

      The world would be a much better place if every use case really had a standard general-purpose language that worked efficiently, prevented stupid designs instead of encouraging them, and was open and free across all platforms. Unfortunately everyone smart enough to build such a language has either sold out, filled the language with all the flexibility that junior devs need to hang themselves, or both.

      Efficient, Flexible, Safe: Pick any two.

      Efficient and flexible but not safe - C/++ and other low-level stuff
      Efficient and safe but not flexible - overly-narrow stuff? having a hard time coming up with an example
      Flexible and safe but not efficient - Java and other JVM-ish stuff with more safety features

      But maybe I'm just a dumb kid.

      --
      "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
      • (Score: 2) by meustrus on Wednesday November 23 2016, @05:50PM

        by meustrus (4961) on Wednesday November 23 2016, @05:50PM (#431967)

        Efficient and safe but not flexible - overly-narrow stuff? having a hard time coming up with an example

        Exactly. This category should belong to domain-specific languages like SQL, but SQL has lots of gotchas depending on the database you're using. Clearly we are missing something, because it should be easy to be Safe if you are not Flexible.

        Flexibility is overrated anyway. It's good when you're writing a throwaway script that you own and watch the output of, because flexibility makes it easy to write. But when you're writing production code that you need to share with others and deploy without much visibility, flexibility allows you (and your fellow devs) to do very stupid things. The developer should be prevented from doing stupid things by compile errors. Not doing stupid things is why we spurn `goto` and prefer generic templates to explicit casts everywhere. There are more stupid things we should not do, like forgetting to check units (feet vs meters), concatenating user input directly into code statements going into an `eval` (or an SQL execution), and mutating the state of objects shared between multiple threads. Even languages like Java fail at protecting developers from these gotchas.

        --
        If there isn't at least one reference or primary source, it's not +1 Informative. Maybe the underused +1 Interesting?