Knowledge

Reinventing the wheel

Source đź“ť

303:, will naturally face these problems afresh, and to produce a satisfactory result they will have to spend time developing solutions for them (most likely the same solutions that are already well known). However, when reinventing the wheel is undertaken as a subtask of a bigger engineering project, rather than as a project in its own right hoping to produce a better wheel, the engineer often does not anticipate spending much time on it. The result is that an underdeveloped, poorly performing version of the wheel is used, when using a standard wheel would have been quicker and easier, and would have given better results. 50: 156:"Reinventing the wheel" may be an ironic cliche – it is not clear when the wheel itself was actually invented. The modern "invention" of the wheel might actually be a "re-invention" of an age-old invention. Additionally, many different wheels featuring enhancements on existing wheels (such as the many types of available tires) are regularly developed and marketed. The metaphor emphasizes understanding existing solutions, but not necessarily settling for them. 107: 198:, but some JavaScript implementations do not provide this specific algorithm. Hence, if a developer wants to reliably use quicksort on their web page, they must "reinvent the wheel" by reimplementing the algorithm. They could conceivably copy it from another web page, but then they could run into 152:
of complex ideas. Rather than providing students simply with a list of known facts and techniques and expecting them to incorporate these ideas perfectly and rapidly, the instructor instead will build up the material anew, leaving the student to work out those key steps which embody the reasoning
309:
involves delaying a task if it is expected to be undertaken later. An example would be, "We don't want to preinvent the wheel" when discussing a solution to a problem when it is known that the solution is being developed elsewhere. It is not necessarily pejorative.
291:
which occurs when the engineer is unaware or contemptuous of the standard solution or does not understand the problem or the standard solution sufficiently to avoid problems overcome by the standard. It is mostly an affliction of inexperienced engineers, or the
147:
The phrase is sometimes used without derision when a person's activities might be perceived as merely reinventing the wheel when they actually possess additional value. For example, "reinventing the wheel" is an important tool in the
139:). As it has already been invented and is not considered to have any inherent flaws, an attempt to reinvent it would add no value to it and be a waste of time, diverting the investigator's resources from possibly more worthy goals. 282:
is the practice of unnecessarily engineering artifacts that provide functionality already provided by existing standard artifacts (reinventing the wheel) and ending up with a worse result than the standard (a
205:
Additionally, those new to a language (and especially those new to programming) will often attempt to manually write many functions for which a more robust and optimized equivalent already exists in the
299:
Many problems contain subtleties that were resolved long ago in mainstream engineering (such as the importance of a wheel's rim being smooth). Anyone starting from scratch, ignoring the
462: 178:
incompatibilities or around technical and policy limitations present in parts or modules provided by third parties. An example would be to implement a
316:
is the practice of coming up with new and often abstruse ways of describing things when the existing way of describing them was perfectly adequate.
457: 117:
is to attempt to duplicate—most likely with inferior results—a basic method that has already previously been created or optimized by others.
354: 202:
and software licensing issues. Reinventing the wheel in this case provides the missing functionality and also avoids copyright issues.
426: 210:
or other easily available libraries. While this can be useful as a learning exercise, when done unknowingly the result is often less
434: 412: 93: 71: 452: 31: 195: 365: 64: 58: 186:
and destined to be embedded in a web page. The quicksort algorithm is well known and readily available from
214:, less reliable, less tested and less optimized software which takes longer to write, test, maintain, and 75: 293: 211: 171: 339: 187: 175: 430: 408: 344: 264: 360: 207: 27:
Idiomatic expression, meaning to waste effort on something that has already been achieved
349: 251: 17: 446: 404: 335: 330: 325: 288: 284: 268: 135:
of human ingenuity (one so profound that it continues to underlie much of modern
246: 237: 183: 165: 136: 300: 259: 215: 199: 179: 149: 132: 255: 124: 242: 227: 106: 231: 37:"inventing the wheel" redirects here. For a factual discussion, see 191: 174:, reinventing the wheel is often necessary in order to work around 128: 121: 105: 38: 190:
for software developers writing general-purpose applications in
43: 338:: an alternative invention that is created in order to avoid 357:, an expression referring to the re-use of existing ideas 401:A Story of Genius, Innovation, and Grand Ambition 8: 222:Software projects that are reinvented wheels 423:A Buddhist Response to the Information Age 30:For the album by Asleep at the Wheel, see 94:Learn how and when to remove this message 57:This article includes a list of general 377: 463:Pejorative terms related to technology 7: 355:Standing on the shoulders of giants 427:State University of New York Press 63:it lacks sufficient corresponding 25: 421:Hershock, Peter D. (July 1999), 48: 399:Kemper, Steve (15 March 2005), 1: 458:Software engineering folklore 153:characteristic of the field. 32:Reinventing the Wheel (album) 280:Reinventing the square wheel 479: 366:Tragedy of the anticommons 163: 36: 29: 387:Change Leadership Project 120:The inspiration for this 236:FreeWin95, a replica of 182:for a script written in 453:English-language idioms 160:In software development 78:more precise citations. 307:Preinventing the wheel 110: 18:Re-inventing the wheel 109: 314:Redefining the wheel 294:second-system effect 172:software development 39:Wheel § History 340:patent infringement 385:Brandt, P (2003), 176:software licensing 115:reinvent the wheel 111: 345:Not invented here 104: 103: 96: 16:(Redirected from 470: 439: 417: 391: 389: 382: 361:Stovepipe system 208:standard library 99: 92: 88: 85: 79: 74:this article by 65:inline citations 52: 51: 44: 21: 478: 477: 473: 472: 471: 469: 468: 467: 443: 442: 437: 420: 415: 398: 395: 394: 384: 383: 379: 374: 322: 287:). This is an 277: 275:Related phrases 267:, a replica of 254:, a replica of 245:, a replica of 230:, a replica of 224: 168: 162: 145: 100: 89: 83: 80: 70:Please help to 69: 53: 49: 42: 35: 28: 23: 22: 15: 12: 11: 5: 476: 474: 466: 465: 460: 455: 445: 444: 441: 440: 435: 418: 413: 393: 392: 376: 375: 373: 370: 369: 368: 363: 358: 352: 350:Patent thicket 347: 342: 333: 328: 321: 318: 276: 273: 272: 271: 262: 252:Apache Harmony 249: 240: 234: 223: 220: 164:Main article: 161: 158: 144: 141: 131:is an ancient 102: 101: 56: 54: 47: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 475: 464: 461: 459: 456: 454: 451: 450: 448: 438: 436:0-7914-4232-2 432: 428: 424: 419: 416: 414:0-06-076138-5 410: 406: 405:HarperCollins 402: 397: 396: 388: 381: 378: 371: 367: 364: 362: 359: 356: 353: 351: 348: 346: 343: 341: 337: 336:Design around 334: 332: 331:Best practice 329: 327: 324: 323: 319: 317: 315: 311: 308: 304: 302: 297: 295: 290: 286: 281: 274: 270: 266: 263: 261: 257: 253: 250: 248: 244: 241: 239: 235: 233: 229: 226: 225: 221: 219: 217: 213: 209: 203: 201: 197: 193: 189: 185: 181: 177: 173: 167: 159: 157: 154: 151: 142: 140: 138: 134: 130: 126: 123: 118: 116: 108: 98: 95: 87: 77: 73: 67: 66: 60: 55: 46: 45: 40: 33: 19: 422: 400: 386: 380: 326:Anti-pattern 313: 312: 306: 305: 298: 289:anti-pattern 285:square wheel 279: 278: 269:Flash Player 204: 169: 155: 146: 127:is that the 119: 114: 112: 90: 81: 62: 390:unpublished 150:instruction 76:introducing 447:Categories 372:References 247:Windows NT 238:Windows 95 184:JavaScript 166:Code reuse 137:technology 84:April 2009 59:references 301:prior art 260:Java SE 6 256:Java SE 5 200:copyright 188:libraries 180:quicksort 133:archetype 122:idiomatic 320:See also 212:readable 125:metaphor 243:ReactOS 228:FreeDOS 72:improve 433:  411:  265:ruffle 232:MS-DOS 61:, but 216:debug 143:Usage 129:wheel 431:ISBN 409:ISBN 258:and 196:Java 194:or 192:C++ 170:In 113:To 449:: 429:, 425:, 407:, 403:, 296:. 218:. 97:) 91:( 86:) 82:( 68:. 41:. 34:. 20:)

Index

Re-inventing the wheel
Reinventing the Wheel (album)
Wheel § History
references
inline citations
improve
introducing
Learn how and when to remove this message

idiomatic
metaphor
wheel
archetype
technology
instruction
Code reuse
software development
software licensing
quicksort
JavaScript
libraries
C++
Java
copyright
standard library
readable
debug
FreeDOS
MS-DOS
Windows 95

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑