4

Reading this topic, I remembered of something that always bugs me.

There are certain practices, methodologies, or whatever, that existed for a long time, were well known and used. And then someone wrote a book, put a new fancy name on it, and out of nothing it starts to appear as something new, revolutionary, the next big thing, etc etc...

Design Patterns are a mix of well known solutions, that matured and become "collective wisdom", they´re not universal laws, and wasn´t created by GoF. You don´t need to read the book to apply some of them instinctively. The patterns evolved by themselves, GoF just glued it all together in a book.

As Phil Factor points out, Extreme Programming its nothing new too.

What other things makes you think "I´ve already seen this before..."?

Community
  • 1
  • 1
  • Please mark as Community Wiki – Jay Bazuzi Jan 22 '09 at 17:22
  • 1
    Both the design patterns book and XP are openly billed as repositories of accumulated wisdom. Neither claims to have invented the practices contained within. I'm certain somebody will point out that this question is nothing new and that my answer is nothing new. – Terry Wilcox Jan 22 '09 at 17:22

9 Answers9

6

Ajax was done by many, long before that name was put on it.

Kibbee
  • 65,369
  • 27
  • 142
  • 182
  • Though it only really took off when a) FF and Opera had an XHttpRequest type feature too b) IE had a not-quite-completely-brain-dead DOM implementation. – jamesh Jan 23 '09 at 14:57
3

REST is basically what HTML was designed to be.

Joachim Sauer
  • 302,674
  • 57
  • 556
  • 614
  • I’m not quite going to downvote this, but I think you’re wrong. HTML was only intended for static Web pages, whereas REST was specifically designed for applications running over HTTP. They serve very different purposes. – Marnen Laibow-Koser Mar 16 '19 at 07:32
2

I think Greenspun's Tenth Rule of Programming is an example of what you're asking:

Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp.

jamesh
  • 19,863
  • 14
  • 56
  • 96
1

There's a very long list of them here.

Community
  • 1
  • 1
Bill the Lizard
  • 398,270
  • 210
  • 566
  • 880
1

Dependency Injection looks a whole lot like what people did in the early days of Java where everything had an interface, even things that didn't need it. Turned into interface soup. Though putting a nice shinny name on it then building a framework makes it cool again.

DavGarcia
  • 18,540
  • 14
  • 58
  • 96
1

the gratuitous new names of "directory" (UNIX) / "folder" (Mac/Windows) / etc. ("group" in HDF5, the ill-chosen "repository" in SurroundSCM, "project" in Visual SourceSafe, etc. etc. etc. etc.)

Ditto for the reinvented and confusing use of terms like "project", "session", "workspace", "solution" (Visual Studio) for a serialization of the GUI state of an Integrated Development Environment.

Jason S
  • 184,598
  • 164
  • 608
  • 970
1

I think a lot of people would concede that Ruby is a re-invention of Smalltalk.

jamesh
  • 19,863
  • 14
  • 56
  • 96
1

Refactoring is a new name for something we've always done, rewriting existing code in a better way.

I agree with Christer Ericson when he says "rewrite" something has never meant "rewrite from scratch". When I rewrite something, I always do it based on the previous version if I see no specific reason to throw away every single line of code. Therefore "refactor" seems like a quite pointless word for me.

Laserallan
  • 11,072
  • 10
  • 46
  • 67
  • I see your point, but I don't think it's the same thing. The Refactoring can be applied to changes that are a lot smaller than a rewrite of some module, 'though. So I do think there is a significant difference. – Joachim Sauer Jan 23 '09 at 15:14
  • “Refactoring” also implies exactly preserving the existing behavior, and doing so in a disciplined way. – Marnen Laibow-Koser Mar 16 '19 at 07:34
0

Many of the ideas behind distributed version control systems existed long ago on the mainframe.

Clint Miller
  • 15,173
  • 4
  • 37
  • 39