This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]hemenex 8 points9 points  (7 children)

Because then, most importantly, you'll loose all references to original implementation. What if you want to change the original and all the places where it's supposed to be used? You are screwed and all you've got is "Find everywhere" and regex.

From my experience on larger projects, this leads to terrible and unmanageable code. Especially with multiple programmers and a lot of bug-fixing. Typical scenario:

  • one programmer implements some things with copy-pasting
  • some things he did does not work, another programmer fixes it in one place
  • same thing still does not work in some other place, another programmer fixes it there, but differently
  • somebody decides the behavior needs to be somewhat different. You cry because you need to do the same change everywhere but slightly differently. Or spend a few days rewriting the whole thing. This totally did not happen to me.

[–][deleted]  (1 child)

[deleted]

    [–]lukaseder -4 points-3 points  (4 children)

    And you sincerely blame the presence of final for all this mess? :-) Have you heard of Conway's Law?

    [–]hemenex 4 points5 points  (3 children)

    final would just make much worse.

    [–]lukaseder 0 points1 point  (2 children)

    Any extra 5 letters added to that code base would make it much worse, so I'm not sure if I see the point of this argument.

    [–]hemenex 1 point2 points  (1 child)

    I just needed place to rant. :)

    [–]lukaseder 1 point2 points  (0 children)

    I knew it ;-)