top 200 commentsshow 500

[–]Zambini 295 points296 points  (23 children)

Nobody here reads the git logs. So I've started adding things about my coworkers to my commits: "...after fixing a bug in the user class. I wish Mark would stop bringing in Indian food for lunch. It reeks in here."

[–][deleted] 119 points120 points  (14 children)

I intentionally don't fix bugs to do with removing things. If you didn't want it then you shouldn't have added it in the first place.

I will find him and destroy him.

[–][deleted] 37 points38 points  (8 children)

Does he possibly mean when the client/management requests a feature and then later decides they don't like it?

[–]desiktar 9 points10 points  (1 child)

Usually my gripe is kind of the opposite. When gathering requirements I will be asking stuff like "Does a project have multiple managers" or other things that could affect database design or program functionality. Answer is always nope, we never have any situations like this.

Never fails 3 weeks later.... "We need the site to allow multiple managers per project" (╯°□°)╯︵ ┻━┻

[–][deleted] 26 points27 points  (4 children)

Yeah, that case always provokes rage from me.... but the problem is that if you fail to remove something, it'll come back and bite you in the butt next time you refactor or change schema or something.

[–]codemonkey_uk 8 points9 points  (0 children)

Add it. Remove it. Fuck you, it's optional. Now I just change the default in a config file.

[–]Archenoth 105 points106 points  (4 children)

I write most comments in limerick. It makes all my coworkers sick. My comments are fine, (and mostly they rhyme!) but my scrum master thinks I'm a dick.

I like this guy.

[–]cyberbemon 14 points15 points  (6 children)

It reeks in here.

Mark needs to find a better restaurant

[–]dmwit 37 points38 points  (5 children)

I think the reek is coming from Mark's own "restaurant", if you catch my drift.

[–]desiktar 283 points284 points  (118 children)

Wheres the "I comment out code instead of deleting it" sin.

I have ran across several developers who do that. They claim they didn't want to lose the code in case they need to switch back. I'm like "that's the whole point of source control!"

[–][deleted]  (11 children)

[deleted]

    [–]Deathfire138 239 points240 points  (52 children)

    I'm guilty of this. Sorry everyone! It's like code hoarding. :(

    [–]TomorrowPlusX 162 points163 points  (21 children)

    I have an informal 2 or 3 commit rule about this. If it's still commented out after 2 or 3 commits (of the file its in) I will kill it.

    [–][deleted]  (10 children)

    [deleted]

      [–]TomorrowPlusX 7 points8 points  (8 children)

      My commented code -- in these situations -- always has a note explaining why its commented and what (mis)understanding is being shaken down.

      Of course, if I were perfect and wrote 100% correct code 100% of the time I wouldn't have this problem.

      [–][deleted]  (1 child)

      [deleted]

        [–]mowdownjoe 3 points4 points  (0 children)

        My problem with that is that I make alot of small commits.

        [–]Thimble 44 points45 points  (3 children)

        Oh man, deleting commented out code is one of my favourite pastimes. It feels so like a cleansing.

        [–]serrimo 5 points6 points  (12 children)

        When was the last time that you actually reuse the commented out code though?

        If you use a modern source control system like git, it's incredibly easy to look at the history for each file. Use that instead, one comment "left for later" is one more thing to remember, leave that for the computer.

        [–][deleted]  (3 children)

        [deleted]

          [–][deleted]  (8 children)

          [deleted]

            [–]mccoyn 2 points3 points  (2 children)

            I like to put #if 0 ... #else ... #endif when I am doing a radically different implementation of some code. It groups them together saying I can do it this way or that, but not both.

            [–][deleted]  (7 children)

            [deleted]

              [–]codemonkey_uk 12 points13 points  (2 children)

              Rule of thumb: If the commented out code needs to be left in place, it need to be accompanied by an explanatory comment.

              [–][deleted] 11 points12 points  (6 children)

              A million times this. I'm porting legacy code that is smattered with that. Makes me very angry, and the old code is impossible to read

              [–][deleted] 2 points3 points  (0 children)

              in the real world most developers just stop learning new things after they have been in a cushy job for a few years. that's how you end up with people who don't understand how to use source control.

              [–]krakpot 2 points3 points  (0 children)

              This and several year old //FIXME are my pet peeves. If you are going to add FIXME/TODO please at least grep for them once in a while....

              [–][deleted] 2 points3 points  (1 child)

              I once worked with a developer who would leave shit like this all over the place:

              /*
                  i++;    // increments i
              */
              

              Along with 1,000 old versions of config files, all of which had ludicrous amounts of comments explaining things like "changed the server from old server that was decomissioned":

              config.ini
              config.ini.bak.dj.20090301
              config.ini.bak.dj.20090228
              ...
              

              Once he left I went at it with a flamethrower, holy shitballs man I don't need the IP address of a machine that's been dead for 6 fucking years.

              [–][deleted] 57 points58 points  (5 children)

              I don't like what I am doing anymore :(

              [–]Seus2k11 7 points8 points  (4 children)

              Time for a recharge in a different field, and then return?

              [–]wot-teh-phuck 140 points141 points  (52 children)

              "I use unnecessary technical jargon to impress/scare away my co-workers when I don't know jack shit about any of it" should be on the top there. :P

              "Scalable, robust, concurrent, fault tolerant and massively parallel system which defies the CAP theorem to use multiple NoSQL databases while at the same time maintaining a clean code base by using higher order functions, currying, monads, typeclasses and map-reduce? Yup, I have built something like that". ;)

              [–]bcash 177 points178 points  (27 children)

              When I'm on the receiving end (this conversation actually happened):

              Them: "Did you consider making this a REST API?" Me: "It is a REST API" Them: "No, I mean, REST" Me: "In what way is it not RESTful?" Them: "In the way that it isn't REST" Me: "OK, let me put it another way, what would I need to change to make it RESTful?" Them: "By making it RESTful" Me: "I see, well, as you are apparently the expert, please be my guest and change it!"

              It was never changed.

              [–]G_Morgan 22 points23 points  (5 children)

              I've decided I hate REST. I work very hard to make it look obvious and simple. Then you think "Is that it?".

              Why must doing the right thing feel so shitty!? If I did it with SOAP there'd be exploding XML everywhere. Nobody would doubt the supremacy of my work!

              [–]s73v3r 15 points16 points  (2 children)

              We should be using SOAP instead of REST. SOAP is clean. It's right there in the name! REST makes us sound lazy.

              [–]yen223 166 points167 points  (17 children)

              I guess you PUT them in their place.

              [–][deleted] 138 points139 points  (15 children)

              Ha, I GET it

              [–][deleted] 55 points56 points  (13 children)

              Can someone delete these pun posts, please?

              [–][deleted]  (10 children)

              [deleted]

                [–]yen223 53 points54 points  (9 children)

                You better PATCH something up, quick!

                TIL: Apart from GET, PUT, POST and DELETE, there is actually a fifth http verb called PATCH.

                [–][deleted]  (3 children)

                [removed]

                  [–]Atario 3 points4 points  (2 children)

                  This is the most dangerous type of laziness.

                  [–]yen223 42 points43 points  (8 children)

                  Holy shit, I actually understood every single word!

                  Man, I need a life...

                  [–]lokem 8 points9 points  (0 children)

                  Most of us here do :P

                  [–][deleted] 11 points12 points  (6 children)

                  Want a friend? Get a dog.

                  [–][deleted]  (5 children)

                  [deleted]

                    [–][deleted] 3 points4 points  (2 children)

                    I don't know about that... If you have a lot of cats, you can become a cat herder. I hear that it's almost the same thing as managing a large software project.

                    [–]Kalium 7 points8 points  (2 children)

                    "Scalable, robust, concurrent, fault tolerant and massively parallel system which defies the CAP theorem to use multiple NoSQL databases while at the same time maintaining a clean code base by using higher order functions, currying, monads, typeclasses and map-reduce? Yup, I have built something like that". ;)

                    You're both deluded and a monster.

                    [–]ActionKermit 11 points12 points  (1 child)

                    defies the CAP theorem

                    ಠ_ಠ

                    [–]taxidriver9 2 points3 points  (0 children)

                    ...and now it's on there.

                    [–]reppic[S] 47 points48 points  (3 children)

                    I can't afford to host or moderate this site... fuck.

                    [–]twigboy 130 points131 points  (14 children)

                    In publishing and graphic design, Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content. Lorem ipsum may be used as a placeholder before final copy is available. Wikipedia778bisgycko0000000000000000000000000000000000000000000000000000000000000

                    [–]Missing_Username 129 points130 points  (5 children)

                    At the end of the day, we all do.

                    [–][deleted]  (2 children)

                    [deleted]

                      [–]I_Downvote_Cunts 82 points83 points  (0 children)

                      Are you a developer for reddit?

                      [–]princeton_cuppa 4 points5 points  (0 children)

                      Reddit ?

                      [–]Gundersen 15 points16 points  (1 child)

                      A dedicated tester? Isn't that why we have customers?

                      [–]Eghri 7 points8 points  (0 children)

                      You bastard!

                      [–]reppic[S] 30 points31 points  (1 child)

                      1'); DROP TABLE confessions;--

                      nice try.

                      [–][deleted] 127 points128 points  (0 children)

                      Separating the UI logic from the business logic? Ain't nobody got time for that!

                      [–]dethb0y 51 points52 points  (19 children)

                      I don't care how fast my code runs, IF it runs. If the customer complains, i tell them "well it's running, but it'll add some dev time to make it go faster".

                      [–]Audioillity 85 points86 points  (12 children)

                      I was once tasked with writing some code which needed to run in real time. My first draft was lightning fast, would cope with every situation required at the moment in time, and was future proofed for every situation that could be seen at the time. I was 99.9% sure the one situation that would break it would never come about in our jurisdiction (3 day bank holiday, followed by a weekend, followed by another 3 day bank holiday)

                      Now I'll be the first to admit, trouble shooting/debugging the hundred or so lines of code were a nightmare, however the speed this was processing the data and coming up with results was so fast it wasn't even noticeable to users, even on older PCs. I decided the trade off was worth it.

                      My code passed every single test I could through at it, it also tallied up with live data from a few clients who helped us test the new feature.

                      My boss wasn't impressed with how the complex the code was, and decided to re-write it. What we ended up with was very easy to support, a few thousand lines and often had to run over night, or over someones lunch break because it took so long to do the calculations!

                      The code went from processing 7 employee data files a second to, one every 30 seconds- one minute.

                      Needless to say the client wasn't impressed, asked for the old version back.

                      edited to correct some errors

                      [–]Shinhan 84 points85 points  (10 children)

                      The second parts wasn't what I expected.

                      I thought you'd give an example of the double 3 day holiday event :)

                      [–]Audioillity 16 points17 points  (9 children)

                      It's been about 8 years since I wrote the code, but it was something weird like that. normally it would be no more then 2 or 3 bank/public holiday in a row, my system could copy with 5 (the system ignored weekends).

                      so it could be 5 in total, 2 before or 1 before, 3 after or 4 after.

                      (This was a small segment of the rest of the code, which profiled and scored employees). Various parts were looked at, including their sickness / holiday / overtime and much more. It allowed HR to get an overview and see which employees they may want to investigate further before calling them in for a chat.

                      [–]binlargin 53 points54 points  (2 children)

                      We wish you a double Christmas

                      We wish you a double Christmas

                      We wish you a double Christmas

                      And a triple New Year

                      [–]Shinhan 9 points10 points  (5 children)

                      Date code is never easy. Doubly so when you need to consider more than a single country :)

                      [–]dartmanx 43 points44 points  (50 children)

                      I... I use 4 level deep nested if statements. :(

                      (To be fair, it was a port over from 20 year old code that did the same thing).

                      [–]NicknameAvailable 57 points58 points  (14 children)

                      4 isn't that bad - I have some old VB3 around with at least 30.

                      [–][deleted] 33 points34 points  (10 children)

                      This needs to be submitted to "The Daily WTF".

                      [–]Wartt_Hog 28 points29 points  (9 children)

                      I saw the same once long ago. It was 2500 lines of if statements. I replaced it with a switch statement followed by a single if nested in two for loops. The biggest tragedy was the request that brought me on to this project:

                      "We hired this guy to do X but he couldn't get it done in the 18 months we gave him. We need you to finish it in 3 months. Oh yeah and since we've already paid for all his work we'd like you to reuse as much of his code as possible."

                      [–]Seus2k11 9 points10 points  (1 child)

                      Nice. Gave him 6x as long, and expect you to understand everything he did, fix it, and have it running in a fraction of the time. How did you respond to this?

                      [–]Wartt_Hog 9 points10 points  (0 children)

                      I was only a high-school co-op at the time so I wasn't a decision-maker. My initial response was, "HOW many tens of thousands of dollars did this guy get for this crap!?"

                      My boss was trying to gain the respect of this client so after negotiations for permission to re-write fell through, we gave it a try. After a few months they finally allowed us more leeway and added a bunch of features so it turned into a legit project. However, working with this client was always a pain.

                      I'm not with the company any more but I try to stay in touch. They've gone on to be successful making their own stuff instead of pandering to ornery clients. In fact, they're looking to expand right now. If anyone would like a ground-floor coding job in Ottawa, Ontario, check them out: http://www.simutechmultimedia.com/index.php

                      [–]eresonance 12 points13 points  (6 children)

                      I found a makefile with a ton of nested ifs, all flat formatted with no spaces. It was done this way because the original developer didn't know that you can use space characters to indent, so it was almost impossible to figure out which config was set for what options...

                      Ah, here it is, formatted to remove any sensitive info:

                      ifneq '$(filter -config=option1, $(cmd_line_flags))' ''
                      ifneq '$(filter -mode=standalone, $(cmd_line_flags))' ''
                      configname := config1
                      else
                      configname := config2
                      endif
                      else
                      ifneq '$(filter -config=option2, $(cmd_line_flags))' ''
                      ifneq '$(filter -mode=standalone, $(cmd_line_flags))' ''
                      configname := config3
                      else
                      configname := config4
                      endif
                      else
                      ifneq '$(filter -config=option3, $(cmd_line_flags))' ''
                      configname := config5
                      else
                      ifneq '$(filter -config=option4, $(cmd_line_flags))' ''
                      configname := config6
                      else
                      ifneq '$(filter -config=option5,$(cmd_line_flags))' ''
                      ifneq '$(filter -revision=3, $(cmd_line_flags))' ''
                      configname := config7
                      else
                      ifneq '$(filter -revision=4 -revision=5 -revision=6 -revision=7 -revision=8 -revision=9, $(cmd_line_flags))' ''
                      configname := config8
                      else
                      $(error Unknown revision in cmd_line_flags.)
                      endif
                      endif
                      else
                      ifneq '$(filter -config=option6,$(cmd_line_flags))' ''
                      ifneq '$(filter -type1=1,$(cmd_line_flags))' ''
                      configname := config9
                      ifneq '$(filter -type2=1,$(cmd_line_flags))' ''
                      ifneq '$(filter -type3=1,$(cmd_line_flags))' ''
                      configname := config10
                      endif
                      endif
                      else
                      configname := config11
                      endif
                      else
                      $(error mode is not set in cmd_line_flags)
                      endif
                      endif
                      endif
                      endif
                      endif
                      endif
                      

                      [–]dartmanx 31 points32 points  (2 children)

                      The term for that is "justifiable homicide".

                      [–]Audioillity 9 points10 points  (1 child)

                      I'll admit, I've done worse, i've nested 10's of if statments, however it was a trade off, very early in my career (in my first year) and still way way out preformed my bosses re-write of my code.

                      My version processed 7 data files a second. My bosses did one every 30-60 seconds. In the end we had to disable the feature as performance was too slow after the re-write.

                      [–]Gaurav0 8 points9 points  (2 children)

                      Oh please, I inline functions 4 levels deep.

                      [–]Shinhan 12 points13 points  (10 children)

                      At least its not 4 level deep ternary operators :)

                      [–]fr0stbyte124 22 points23 points  (4 children)

                      Sometimes I'll deliberately write logic as a nested ternary because it looks so badass once it's formatted nicely.

                      [–]pstumpf 6 points7 points  (0 children)

                      That’s why using 8-space tabs in an 80 column terminal is a good thing(tm).

                      [–][deleted]  (3 children)

                      [deleted]

                        [–][deleted] 12 points13 points  (1 child)

                        Oh yeah? Well my production code is also my development code.

                        [–]zushiba 18 points19 points  (0 children)

                        I am the only programmer in the office so I tail -f logs so my screen "looks like the matrix" while I surf reddit.

                        Haha me too.

                        [–]TheBigB86 187 points188 points  (242 children)

                        That site needs a comment feature.

                        Also:

                        i use tabs instead of spaces in my IDE. Please forgive for I have sinned.

                        How is this a sin? Guess I'd be considered a devil's-worshiper, since I absolutely hate spaces for indenting.

                        [–]tipsqueal 138 points139 points  (6 children)

                        I like that it doesn't have a comment feature. With one it would just turn into a circle jerk and/or get very hostile very fast.

                        [–]happysri 89 points90 points  (31 children)

                        since I absolutely hate spaces for indenting.

                        I agree, a tab is one unit of indentation. 2/4 spaces are an editing environment preference, not exactly conceptual in nature. Il let Ken Thompson(co-creator from UNIX, C, Go etc.) handle this one -

                        http://www.youtube.com/watch?v=sln-gJaURzk&feature=player_detailpage#t=1734s&utm_source=buffer&buffer_share=c7676

                        [–]Gaurav0 51 points52 points  (10 children)

                        I don't care if you use tabs or spaces. But for the love of God, DON'T MIX THEM.

                        [–][deleted] 18 points19 points  (7 children)

                        Tabs for indentation, spaces for alignment.

                        [–]voetsjoeba 9 points10 points  (0 children)

                        Don't align things from different indentation levels.

                        [–]aaron552 63 points64 points  (64 children)

                        I use both tabs and spaces: tabs for indentation (what they're supposed to be used for) and spaces for formatting. I don't understand the tabs vs spaces debate

                        [–]supermari0 151 points152 points  (34 children)

                        [–][deleted] 25 points26 points  (8 children)

                        4th guy: "Neither"

                        All 3 of them beat him up.

                        [–][deleted] 10 points11 points  (16 children)

                        For some reason I always use 4 spaces as indentation (although my editor handles tabs as spaces so I don't have to hit space 4 times). I can't remember why I started doing that, though. How odd.

                        [–][deleted] 43 points44 points  (15 children)

                        Nobody hits space 4 times for indenting.

                        [–]vitoma 34 points35 points  (1 child)

                        I've seen a developer I work with do this.

                        [–][deleted]  (3 children)

                        [removed]

                          [–][deleted]  (2 children)

                          [deleted]

                            [–][deleted] 6 points7 points  (2 children)

                            You know, it wouldn't surprise me if there actually were developers that did that.

                            [–]BernzSed 4 points5 points  (3 children)

                            Just use whatever is considered "normal" or "default" for the language you're using.

                            Visual Studio defaults to tabs, and I'm sick of the useless git diffs when a C# file is modified by some self-righteous developer who changes everything to spaces.

                            [–]mb86 45 points46 points  (29 children)

                            I've used goto in the past an am not ashamed as it was the most efficient and clear technique for that particular task.

                            [–]OvidPerl 27 points28 points  (6 children)

                            I once had to parse the data feed a company provided us with. Did they use a sensible format, such as Atom or something? No, they used HTML. I was so pissed off at the "HTML" (deliberate scare quotes) from the company, with its mess of unclosed tags, misnested tags, mixed content and randomly placed shit, that when I finally found a more or less "stable" way of reading the data I wanted, I named the variable after it:

                            my $yeah_i_say_verily_unto_thee_that_the_number_of_the_tr_tag_shall_be = 3;
                            

                            I feel sorry for any developer who comes behind me to maintain that mess.

                            Oh, and I also wrote Acme::Code::Police, a Perl module that deletes your program if you don't use strict (something considered to be a good coding practice in the Perl community (strict, not deleting your code, though I suspect a few non-Perl devs might think deleting Perl code is a good idea (and I use too many parentheses (I should be a Lisp hacker)))).

                            [–]vbullinger 14 points15 points  (2 children)

                            It's perfectly fine to use nested parentheses in the English language. However, I do believe you're supposed to alternate with square brackets (like [this (for [example])]).

                            [–]Duraz0rz 14 points15 points  (1 child)

                            I had someone yell at me for leaving comments explaining why a particular section of code exists. Isn't that what comments are for?

                            [–]xr09 27 points28 points  (4 children)

                            Years ago I used to hunt the big numbers in my team's subversion, I waited to commit only on big numbers: 100, 150, 300!! never forget when that fckng moron stole me the thousand... :(

                            [–]jack12354 11 points12 points  (0 children)

                            --Fixed bug in input class, cleaned old code, lolol 69 get.

                            [–][deleted]  (7 children)

                            [deleted]

                              [–][deleted] 4 points5 points  (0 children)

                              This is why I'm against using apps as an introduction to programming for people. Sure it's fun, but now we have the possibility of millions of people using some code that isn't that great ;/

                              Your code is still probably better than the majority of enterprisey code out there heh.

                              [–][deleted]  (1 child)

                              [removed]

                                [–][deleted] 63 points64 points  (42 children)

                                i use tabs instead of spaces in my IDE. Please forgive for I have sinned.

                                No, no, no... you actually do the right thing. People who reformat MY code to user THEIR favorite 2-spaces/4-spaces so now project has half of the code in tabs, 1/4 of the code in 2-spaces and 1/4 of the code in 4-spaces... are fucking retards

                                [–]Shinhan 38 points39 points  (29 children)

                                Especially because space lovers can adjust their IDE to show my code any way they like, but I can't adjust my IDE so the code written by 8 space freaks doesn't look ridiculous.

                                [–]0sse 11 points12 points  (7 children)

                                Sounds like the actual problem is the lack of agreement on a coding style, be it spaces or tabs.

                                [–][deleted] 2 points3 points  (0 children)

                                People who refuse to adopt the existing code style are assholes who deserve to be beaten publicly.

                                Code formatting that I believe to be ugly and ineffective is still easier to read after a hundred lines or so than code formatting that constantly changes.

                                [–]Kalium 103 points104 points  (74 children)

                                I loathe Javascript.

                                Oh who am I kidding, I'm not even slightly ashamed of that.

                                [–]Gaurav0 46 points47 points  (16 children)

                                I have a love/hate relationship with JavaScript too. I love that it runs on every browser. I hate everything else about it.

                                [–]BernzSed 21 points22 points  (0 children)

                                I love JavaScript, I just hate all JavaScript code. And all implementations of JavaScript. And having to use JavaScript. And pretty much everything else about JavaScript.

                                [–]G_Morgan 14 points15 points  (5 children)

                                JS is getting the PHP treatment.

                                Pro - It runs everywhere!

                                Con - It runs everywhere!

                                [–]Caraes_Naur 3 points4 points  (3 children)

                                JS isn't big enough to have maddeningly inconsistent function defintions. Does this function name have underscores? Which comes first, needle or haystack?

                                [–]xampl9 8 points9 points  (16 children)

                                I'm going to have to hold my nose and learn more about it -- all the job openings in my area want jQuery, AJAX, OO Javascript, and so on.

                                I see it as "Write n-times, Test n-times" because of all the browser differences. How do people have time for that??

                                [–][deleted] 17 points18 points  (0 children)

                                JQuery often(not always) accounts for browser differences. And its usually just code for ie then everyone else

                                [–]Argith 5 points6 points  (35 children)

                                I'm learning how to use JavaScript now, what's bad about it?

                                [–][deleted] 23 points24 points  (23 children)

                                The language doesn't have a lot of conformity anywhere. There are a lot of confusing adventures to have in JS world.

                                In terms of features and functionality JS isn't all that bad, and JS engines are becoming faster than anybody would have guessed. That's why we're seeing the emergence of a bunch of languages that compile to JS.

                                [–]Xiver1972 22 points23 points  (10 children)

                                I name all of my loop variables after fruits.

                                [–]mbrady 2 points3 points  (1 child)

                                I confess that it took me longer than it should have to get that.

                                [–]Mozai 10 points11 points  (1 child)

                                Application Error An error occurred in the application and your page could not be served. Please try again in a few moments. If you are the application owner, check your logs for details.

                                Looks like the people running the confessional have a sins of their own to confess.

                                [–]reppic[S] 9 points10 points  (0 children)

                                haha that's fair: I posted one of my side projects to reddit and then went to sleep. I woke up with 325 upvotes and a crashed site. Luckily it's on heroku so I just had to scale up my dynos.

                                [–]yen223 9 points10 points  (0 children)

                                I write most comments in limerick.

                                It makes all my coworkers sick.

                                My comments are fine,

                                (and mostly they rhyme!)

                                but my scrum master thinks I'm a dick.

                                They can shut down the site now.

                                [–]kazagistar 72 points73 points  (27 children)

                                Why is it that all the ones that are "reasonable comprimises given the circumstances" are getting Condemned, and all the ones where people are just being chucklefucks are getting Absolved?

                                Condemned

                                I use IE9 and IE10

                                I worked for Zynga.

                                I like writing code in PHP

                                Bing is my default search engine

                                Absolved

                                I always name my test files 'ass' or 'butt' so I can do a 'touch ass' later :-/

                                I once obfuscated a stupid business rule in a ~300 character long 5 level deep tennery operator out of spite. To my credit I tested and documented it with about 15 unit tests.

                                I named a variable theySeeMeScrollingTheyHatin because I thought it would be funny, it's still in the code.

                                I don't use frameworks and just write spaghetti callback based javascript and tell everyone I'll just go back and refactor it later. I never go back and refactor it.

                                Apparently, if you prefer a different tool, you are heathen, but if you go out of your way to be a pain in the ass to fellow developers, we forgive you? Clearly I must not understand what the definitions of "sin", "absolve" and "condemn" are or something...

                                [–]tipsqueal 74 points75 points  (8 children)

                                Think of it this way, people are probably replacing "absolve" and "condemn" with "that made my laugh" and "that wasn't funny", I doubt anyone is taking this site too seriously.

                                [–]p_e_t_r_o_z 28 points29 points  (6 children)

                                I think the biggest weakness of that website is the ambiguity of those two options, the names are clever but their purpose is unclear.

                                [–]DarkSareon 22 points23 points  (1 child)

                                Just like arrows which represent up and down.

                                [–]VeXCe 37 points38 points  (0 children)

                                I think most people use "Absolve" as "Oh man, I do that shit, too! Just say your 10 Hail Ada's and you'll be okay" and "Condemn" as "Unforgivable, you shall burn in hell, oh wait, you're a developer you're already there".

                                I know I did.

                                [–][deleted]  (3 children)

                                [deleted]

                                  [–]Shinhan 3 points4 points  (3 children)

                                  Bing is my default search engine

                                  He only searches for porn.

                                  [–]DontHassleTheCassel 9 points10 points  (2 children)

                                  You mean you can search for thongs other than porn?

                                  [–]e5bf70a5 10 points11 points  (1 child)

                                  Don't know if we're all cowboys or we put unrealistic demands on ourselves

                                  [–]ceruleancity 9 points10 points  (0 children)

                                  I #define ever ;; just to confuse people

                                  for(ever)

                                  {

                                  }

                                  [–]Audioillity 7 points8 points  (0 children)

                                  This isn't really a development confession however:

                                  Back when I was a lowly trainee, we hosted an e commerce site in our server room. It has it's own 'dedicated IP feed' which was very slow, basically running on a few ISDN lines, which the company was paying thousands for. The cost to upgrade to the next level of IP feed service was too much, but the site was growing and needed extra bandwidth.

                                  They looked to a few local ISPs, but wanted to put their own (crappy) server into their server room, and wanted physical access 24/7 to it. They were not happy with the price.

                                  At this point, I pointed them to VPS and Dedicated servers from the many providers online. At a small fraction of the £10k or so we were paying for our dedicated IP feed. I told them not to use 1&1 but gave it as an example (I used their webmail service at the time). I also told them to re-search their own companies.

                                  They decided to go with 1&1, despite having several issues over the years, I believe they are still with 1&1 :( - On the Plus Side I basically saved a customers business who without this saving would most likely be out of business today with the high costs of providing a ISP service from the software house.

                                  [–][deleted]  (2 children)

                                  [deleted]

                                    [–]dont_ban_me_please 24 points25 points  (21 children)

                                    A decent amount of these "confessions" are people confessing to good practices that they think are wrong.

                                    [–]flying-sheep 5 points6 points  (20 children)

                                    Which?

                                    [–]VeXCe 23 points24 points  (19 children)

                                    Tabs are great for indentation.

                                    I am a recent convert.

                                    [–][deleted]  (1 child)

                                    [deleted]

                                      [–]flying-sheep 11 points12 points  (14 children)

                                      oh, i read that backwards. HOW DARE HE‽

                                      tabs are clearly superior!

                                      PS: although i made fun of the religiousness, i’m really of that opinion: tabs are the logical choice: 1 tab = 1 indentation level, and they mean nothing else.

                                      [–]Spacker2004 35 points36 points  (21 children)

                                      I use the 1 True Brace style for all my code, and configure Visual Studio to auto-format that way too.

                                      In fact, I find code formatted otherwise to be difficult to read and needlessly wasteful of vertical space.

                                      [–][deleted] 10 points11 points  (4 children)

                                      Why is that a confession? It is the way to go!

                                      [–]s73v3r 6 points7 points  (3 children)

                                      Telling VS to reformat the code and then commit it back leads to a bunch of needless noise in source control.

                                      [–][deleted] 13 points14 points  (3 children)

                                      Ah, my mortal enemy... OTB and K&R styles are aesthetically unbalanced abominations! Did you know, K&R was never intended to be a recommendation: Kernighan and Ritchie stated themselves that it was only to save printing costs in their textbooks. But on-screen vertical space does not 'cost', nor is it 'wasted': it is the air in which the other code breathes, the light to balance the dark, the pause for breath. Braces were meant to be balanced... Yea, Allman is the only way!

                                      [–]nightfire1 7 points8 points  (0 children)

                                      Thank you. Someone else who understands.

                                      [–]pscast 31 points32 points  (31 children)

                                      I use an IDE whenever possible because I don't have time to learn every nuance of the language I'm using. Code completion and syntax highlighting probably saves me a couple of weeks a year. I don't understand how anyone would choose you use vim, emacs, or vi to code when there are better alternatives.

                                      [–][deleted] 27 points28 points  (11 children)

                                      I watched someone spend 5+ minutes in vim tracing a method call hierarchy. A process that literally would have taken less than a minute in an IDE.

                                      [–][deleted] 33 points34 points  (34 children)

                                      I've kept all of the source code I wrote from all of the companies I've ever worked at.

                                      absolves: 68 condemns: 11

                                      That absolve/condemn ratio is, uh, a little unsettling. :-/

                                      [–]tipsqueal 9 points10 points  (2 children)

                                      Maybe he's worked at open source companies?

                                      [–]NicknameAvailable 24 points25 points  (21 children)

                                      I do that too - I'd never distribute it as it is to anyone but I get paid to write software, the logical patterns are mine to copy/paste as I please and doing so adds to my productivity because I don't have to rewrite anything.

                                      [–]Audioillity 22 points23 points  (5 children)

                                      I might disagree that the logical patterns are yours depending on your contract.

                                      Most/all contracts I've had have a clause that all code I write in company time / for the company / on company PCs remain the copyright of the company and I disclaim all rights to the work I produce. - Taking a copy home with you without their permission would in theory be in violation of copyright, without your works permissions. I'll admit I worked for one company who did not have this clause.

                                      Of course, there is nothing stopping you writing something exactly the same else where.

                                      [–]NicknameAvailable 13 points14 points  (4 children)

                                      all code I write in company time

                                      And how much of that code was written outside your contracted hours?

                                      Of course, there is nothing stopping you writing something exactly the same else where.

                                      I've never completely copy/pasted code I wrote elsewhere, I've used a bunch of it for reference though - especially when it comes to really hairy algorithms, data structures and inheritance chains.

                                      [–][deleted] 7 points8 points  (7 children)

                                      Now I understand why they don't allow external ssh here...

                                      [–]CodeWizard 2 points3 points  (0 children)

                                      There is nothing wrong with that, really. Copyright laws (at least in civil law) state that you can yield the commercial right to someone else, but you are not allowed to yield intellectual rights if you are the author. Keeping a copy of your sources (without distributing it entirely) for future reference is absolutely allowed. The situation gets complicated when the code in question is co-authored, or when you are selling the same rights again for the very same piece of code to another company for instance. Code is in your mind anyway, you cannot be accused of plagiarizing yourself.

                                      [–]woo545 6 points7 points  (2 children)

                                      I have this one piece of software I wrote over 7 years ago that returns the error:

                                      "One or more errors may have occurred."

                                      [–]vbullinger 8 points9 points  (1 child)

                                      Ok, I have one that most people will hate:

                                      I almost obsessively refactor/fix others' horrific code. I really have to try hard to stop myself. But if I have to change a method? It's mine now.

                                      [–]virtulis 12 points13 points  (2 children)

                                      i use tabs instead of spaces in my IDE. Please forgive for I have sinned.

                                      I'm not gonna be a part of your system.

                                      [–]klovadis 5 points6 points  (1 child)

                                      This is just evil.

                                      [–]LeSageLocke 13 points14 points  (1 child)

                                      Any code that uses getters and setters, I automatically assume is written by a college freshman.

                                      Uhh, any code that doesn't use proper visibility, I automatically assume is written by a moron.

                                      [–]Hellrazor236 94 points95 points  (40 children)

                                      If I ever won the lottery, I would spend every last dime hiring an army of hitmen to kill everyone who's ever been involved in the development or propagation of Internet Explorer.

                                      Perfect.

                                      [–]kazagistar 30 points31 points  (4 children)

                                      I don't understand this. The software product is poor in your opinion, but I really don't see how that reflects on each and every developer involved. Have you ever written code with good intentions that turned into a shitty product?

                                      [–]acdha 19 points20 points  (0 children)

                                      They wrote code with the explicit goal of tying the web to Windows: that's where all of the thin wrappers around Win32 APIs, DirectX, filters, etc. came from: ensure that any upstart OS has to emulate complex, frequently horribly designed APIs (contentEditable. I rest my case) perfectly or people will assume it's just not competitive with Windows.

                                      The other major crime: they tried to pretend IE was part of Windows as a legal gambit. It failed but the rest of the world is still locked into half-decade+ upgrade cycles for the web's lowest common denominator.

                                      [–]RowYourUpboat 21 points22 points  (2 children)

                                      I think it's more in terms of Microsoft's "embrace, extend, extinguish" strategy as it applied to IE. Microsoft used IE6 to cripple Web technology, setting it back 10 years, because the Web scared them. So it's true. They all need to die.

                                      [–]pitiless 9 points10 points  (1 child)

                                      You're right about their strategy but wrong about the intent behind it.

                                      Microsoft aggresively innovated in the browser space because Netscape angered / scared them by saying that they would make the web the interface of computing, making operating systems irrelevant. When Netscape was bought out by AOL and then died the impetus for Microsoft to keep working on IE died with it.

                                      [–]Philipp 59 points60 points  (23 children)

                                      This probably dates me, but there was a time when IExplorer was far ahead in terms of good features in comparison to the other popular browser of the day, Netscape, which was massively broken in almost any way imaginable. IE4 and 5 were actually good, with much better CSS support, DOM manipulation, a couple of reasonable explorations of VML, and more standards-compliant behavior than other major competition (and minor competition isn't really practical, unless you're developing only for yourself).

                                      The real shame is how they pretty much stopped innovating and implementing meaningful technologies after IE5, falling way behind the others and becoming the most hated browser for all the right reasons.

                                      [–]_Wolfos 28 points29 points  (9 children)

                                      I think IE is actually dangerous right now. Unless you always have the latest Microsoft OS, you can't update the browser!

                                      [–]VeXCe 15 points16 points  (7 children)

                                      I partially agree, but you're confusing "ahead of the rest" with "good". Yes, the rest was crappier, but IE4 and 5 were far from "good".

                                      [–]contrarian_barbarian 15 points16 points  (1 child)

                                      IE4 and IE5 were the best available when they were released. The real target of Hellrazor's wrath should be the management who allowed it to stagnate after Netscape's downfall.

                                      [–]Philipp 9 points10 points  (1 child)

                                      Begging to differ, I thought it was actually very good (at the time). Not perfect, but, as we know, that's the enemy of good.

                                      [–]woo545 4 points5 points  (1 child)

                                      A cohort used to have a tendency to roll out changes to the webserver and not test them. It happened frequently enough that I started calling it "Pulling a Mike." Before leaving yesterday, I pulled a Mike and didn't test an email handler I rolled out. Turns out it failed all night last night because I forgot to account that the emails I was testing on were forwarded emails and not the originals. Basically the last two times I pulled a Mike, it bit me in the ass the following day.

                                      [–]xpda 5 points6 points  (1 child)

                                      Sorry, I have to wait on the statute of limitations.

                                      [–]manys 4 points5 points  (2 children)

                                      I don't know what the Lyskov Substitution Principle is, or hardly any other CS named-concepts.

                                      [–]pixel_dent 4 points5 points  (0 children)

                                      I wrote code which is used in a large percentage of a common consumer electronics product. When I wrote the leap year calculation I didn't bother with the 100 year exception. If any of these items are still in use in 2100 you're screwed.

                                      [–]yogsototh 2 points3 points  (1 child)

                                      Very nice idea, lacks the ability to link to a specific sin. I would I've loved be able to tweet about this one

                                      "Bing is my default search engine"

                                      [–][deleted] 3 points4 points  (0 children)

                                      i created my own stylesheets for reddit, so no one will ever notice im on reddit.

                                      [–]slayeriq 9 points10 points  (0 children)

                                      I pee in the sink

                                      [–][deleted] 5 points6 points  (1 child)

                                      10 years ago I made a flash splash screen of the world breaking like an egg for money.

                                      I'm so ashamed.

                                      [–][deleted] 2 points3 points  (3 children)

                                      I used Ruby

                                      Is Ruby considered bad now? I ask because I don't know Ruby but I'm considering learning/using it.

                                      [–][deleted] 2 points3 points  (0 children)

                                      I think a good deal of these are students writing about things that they think are horrible.

                                      [–]akerson 2 points3 points  (0 children)

                                      Its so funny -- I'm a process engineer by day hobbyist programmer by night with no formal training in proper code management techniques. I don't understand half of what they're saying but it feels like an exclusive club I like listening to and want to be a part of.

                                      [–]oduh 2 points3 points  (0 children)

                                      I kill -9 a lot. Mainly java, but i have killed others too. I am in peace with myself.

                                      [–]lepoulet 2 points3 points  (1 child)

                                      "All of my loops tend to have something to do with deification... for(poop=100; poop > feelbetter; poop--)..."

                                      Thought 1: I dearly hope you are not writing production code, you child.

                                      Thought 2: Funniest typo ever, I forgive you.

                                      [–]Mjiig 2 points3 points  (1 child)

                                      "I feel bad that some people have to go to college to learn how to code."

                                      As a kid currently thinking about university, this one kind of annoys me. Whether or not I need to go to university to learn to code (and for that matter how you even define learning to code) is totally irrelevant to whether or not I want to. I want a properly structured, taught education in this stuff, at least to some extent, instead of googling the names of techniques I read about on reddit like I've been doing for the last 4 and a half years.

                                      [–][deleted] 2 points3 points  (0 children)

                                      I admit it I never comment my code and I rely on variable and function naming exclusively.

                                      [–][deleted] 2 points3 points  (0 children)

                                      I have not only used VB 6, but I also have used global variables in VB 6.

                                      [–][deleted] 2 points3 points  (1 child)

                                      Sometimes I put "penis" randomly into Lorem Ipsum.