6 ms·
A programmer's oath
- adamnemecek 13y ago> I will remember that there is art to software engineering as well as technology , and that there is beauty in code. I will not forget that programs must be written for people to read, and only incidentally for machines to execute. Why is this a part of the oath? > I will use technology for good and for the progress of mankind, free of evil, for the betterment of peoples' lives. http://en.wikipedia.org/wiki/Moral_relativism http://en.wikipedia.org/wiki/Moral_relativism
- lmartel 13y agoI like the idea, but I agree that there's sort of an odd mix of topics in here. "Betterment of mankind" + "human-readable code" + "ask a coworker for help" = ???
- adamnemecek 13y agoProfit!
- memracom 13y agoReal engineering is about rigor. And how can you have rigor without communication? Make your code readable by others and discuss the work with your coworkers. Real engineering happens in a team, not in a hermit's cave. P.S. check out SWEBOK and SEMAT. Software Engineering Body of Knowledge, and Software Engineering Method and Theory.
- testing12341234 13y agoReal engineering happens in a team, not in a hermit's cave. Unless you're Fabrice Bellard. http://bellard.org/jslinux/tech.html http://bellard.org/jslinux/tech.html http://bellard.org/lte/ http://bellard.org/lte/ http://bellard.org/ffasn1/ http://bellard.org/ffasn1/ http://wiki.qemu.org/Main_Page http://wiki.qemu.org/Main_Page http://ffmpeg.org/ http://ffmpeg.org/ http://bellard.org/TinyGL/ http://bellard.org/TinyGL/
- kybernetikos 13y agoThere's only one Fabrice Bellard.
- qznc 13y agoYes "Unless you're Fabrice Bellard" should be included in the oath. :)
- kybernetikos 13y agoAny profession wide oath is going to involve moral relativism. Doctors quarrel about what 'do no harm' means all the time. That's a feature not a bug - the point is to get people to acknowledge that their work should not be a separate realm from their own understanding of morality, rather than impose any specific morality on anyone.
- adamnemecek 13y agoUnlike doctor's oath though, it's much less obvious what is moral and what is not.
- croisillon 13y agoSaving the mother's vs. a baby's life, prolonging painful life vs. euthanasy... There are so many ways medical moral is not obvious!
- MaulingMonkey 13y ago>> I will remember that there is art to software engineering as well as technology , and that there is beauty in code. I will not forget that programs must be written for people to read, and only incidentally for machines to execute. > Why is this a part of the oath? Especially considering it excludes potentially useful programs generated by genetic algorithms. Computer generated, computer readable, but typically completely obtuse to humans. Hell, I've experimented with generating unit tests this way in similar fashion to fuzz testing, to good effect! It's also prejudiced against obfuscated C competitions and various "hack this computer" style challenges which encourage the development of reverse engineering skills. >> I will not use my knowledge for unfair profit, financial or of other kind. Fair is a potentially immoral goal in my eyes, even given the incorrect presumption of moral actors. As an extreme example, if the unfair solution greatly benefits each individual more than the fair solution would benefit that same individual, the unfair solution is clearly the correct choice. Taken to it's extreme, "fair" can mean "nobody has anything". >> When through technology I gain access to private data, I will respect privacy and will not abuse the information at hand. Bob's "abuse" is Alice's "whistleblower". Even treated as mere general principles rather than an oath, I would have trouble with this list.
- rbanffy 13y ago> Computer generated, computer readable, but typically completely obtuse to humans. This is not code you write. You wrote the program that generated your code or the constraints the program used. That is your code and that should be human-readable. Does a compiler generate human-readable machine language code?
- MaulingMonkey 13y ago> This is not code you write. One could argue it's indirectly written. If I write C# that generates C#, my coworkers will generally yell at me with good reason if the generated C# is illegible. One could also argue that the oath doesn't talk specifically about what I write. At work I will try to uphold readability when reviewing coworker's code as well when reviewing it, regardless of the fact that I did not write it myself. I would also be inclined to try and uphold readability when another program writes the code. > Does a compiler generate human-readable machine language code? It can, with the proper options and support tooling, and you probably want it to. How else are you going to debug crash dumps from the wild? pdbs are immensely useful to understanding crash dumps even without the original source code to map to. My work computer has a 1TB+ folder named "builds", serving no other purpose than to archive old releases with corresponding assets and PDBs to ensure those EXEs are easily human-readable, in turn making crash dumps easily human-readable. No other category takes up more space on my hard drives at work or at home. Even that really big one nobody tells mom about! All dedicated to keeping that stuff human-readable.
- ultimoo 13y agoNicely written! You may also want to take a look at ACM's Software Engineering Code of Ethics[1]. [1] http://www.acm.org/about/se-code http://www.acm.org/about/se-code
- weland 13y agoAye, I was about to point this out as well. Many of us realize only fitfully that we are at the same forefront of technology that those who created the atomic bombs were. I, for one, have frequent clashes of ethic with my colleagues, and often wonder how long I'll be able to keep working in the industry. We should reflect on our obligations to mankind more often than we do.
- gjm11 13y ago> we are at the same forefront of technology that those who created the atomic bombs were If the point you're making is that software developers should be as suspicious of harmful consequences of their work as the people at Los Alamos should have been of theirs -- well, it seems to me that the biggest hint of possible harmful consequences of the Los Alamos work probably wasn't the fact that they were working with new technology, so much as the fact that they were (explicitly, by design) working on more powerful devices for killing and destroying than the world had ever seen. I'm pretty sure all the scientists at Los Alamos had a pretty good idea they were developing things that might do harm. That was what they were for.
- dredmorbius 13y agoI swear: that I will create websites with sufficient contrast between text and background to enable legibility of textual content. http://www.contrastrebellion.com/ http://www.contrastrebellion.com/
- Beltiras 13y agoSome would say that the writer's intent is to illustrate the important bit with high contrast.
- dredmorbius 13y agoConsidering there are several perfectly good elements to use which accomplish this semantically and the author uses none of them, he's doing a piss-poor job. Strong, bold, dictionary list, underline, or italic text would be fine. A span with a reduced-size font and minimal contrast is just stupid and disrespectful. Not the first time I've written this rant. I'm getting more than slightly tired of the problem in general.
- dionyziz 13y agoHello. Thank you for your feedback! I understand your concerns that the contrast on the page is poor and makes the text unreadable. I'd be happy to merge a CSS patch with a fix for the contrast. Here's the GitHub for the oath: https://github.com/dionyziz/oath https://github.com/dionyziz/oath As you seem to have a firmer background in design, you're more qualified than me to edit typography.css and I'd love to see what you come up with. Thank you for your time and criticism :)
- dredmorbius 13y agobody { font-size: 15pt; } .oath { background: white; color: black; } .oath li, .oath span { color: black; font-size: 15pt; }
- weland 13y ago> I will not be ashamed to say "I know not" If every manager would abide this, my chances of ending up in jail for manslaughter would decrease significantly.
- beloch 13y agoA briefer version: If Goldman-Sachs or the NSA would do it, I won't.
- gjm11 13y agoI don't like this sort of reverse-what-the-bad-guys-do approach to ethics. Goldman Sachs have allegedly given something like $1.6B to charities over the last 5 years or so. Should you avoid charitable giving? They pay their employees very generously. Should you, if you run a company, be sure to pay below market rates? The NSA solves hard problems by combining very clever people with powerful computers. Should you avoid doing that? If you make the principle something more like "If only shady entities like Goldman Sachs or the NSA would do it, I won't" then it becomes much easier to accept -- but then the real work is being done by "others wouldn't do it" rather than by "Goldman Sachs or the NSA would do it".
- adamnemecek 13y agoitwasajoke.jpg
- beloch 13y agoIt was a half-joke. Obviously, even evil companies do some things that are sensible, or even laudable. Nevertheless, there's little question that the world would be better off without Goldman-sachs in it. We're talking about a company that has happily speculated on third-world crop futures and started a famine just to line their pockets! I'd be honestly surprised if their charitable donations exceeded the optimum amount for tax deductions.
- st0neage 13y agoI like the idea of an oath like this and also thought about creating something a bit similar. Maybe you could call it a "Hippocratic Oath of Computer Science". I think it should be extended to all computer scientists not just programmers (or maybe even all of science). Some things in the oath should be a lot more explicit and more strict in my opinion. For example creating or helping create weapons or surveillance technology should be strictly forbidden.
- arethuza 13y ago"helping create weapons or surveillance technology should be strictly forbidden" That assumes that there are no legitimate reasons for weapons or surveillance technology to exist - and what counts as a weapons or "surveillance technology"? (e.g. are average speed cameras "surveillance technology") As a bit of background I actually failed an interview once when I was asked about my views on nuclear weapons and I replied (this was the late 80s) "they are a necessary evil". Quite what an acceptable answer would have been escapes me...
- st0neage 13y agoI fail to see the legitimate reason software assisted weapons or mass surveillance tech have to exist. Enlighten me? See my other reply below for your relativation fallacy.
- arethuza 13y ago"Software assisted weapons" have existed in one form or another for ~60 years (even longer if you count analogue computers). I'm not sure why you need a "legitimate reason" for these things to exist - they already do and arguing that they shouldn't doesn't achieve very much.
- deleted 13y ago[deleted]
- deleted 13y ago[deleted]
- Taniwha 13y agoI'm sure there's lots of pithy oaths used by programmers over the years, I know I've used a few
- ekimekim 13y agoOur first obligation is to keep the foo counters turning.
- ddebernardy 13y agoThe road to hell is paved with good intentions. 'nuf said.
- amasad 13y agofrankly, most of the list is fluff. I would put up there with user privacy, user experience. The mot annoying, dangerous, and demoralizing thing programmers can do is create insecure and badly designed software.
- deleted 13y ago[deleted]
- dsr_ 13y agoI will test my changes before I commit them to production.
- Adrock 13y agoI like the idea behind this and there's some good stuff here. This one irked me a little because it's lacking nuance: > I will remember that technology always improves, and will never stop learning, and the purpose of my life will be continuous self-improvement. "The purpose of my life" is too strong of a phrase that makes this one sound like it trumps the others. "Technology always improves" is true at the macro level, but there are a lot of fads, minor regressions, and forgotten gems from the past.
- 300bps 13y agoI've been programming for 31 years, 22 of which are professional experience. This list was hilarious. If it wasn't meant as a joke then you take yourself way too seriously.
- sbhadra 13y agoI'd love to meet the people you've worked with.
- dredmorbius 13y agoI suspect you might not.
- Sander_Marechal 13y agoA nice idea. I just contributed a Dutch translation.
- qznc 13y agoIt misses a logo, which you can put on your personal website to signal "I swore that oath".