On the concept of reinvention of the wheel, Redevelopment of the wheel, Re-implementation of the wheel, etc.

Re-implementation of /blu3mo-public/wheel.

(I’m using it in a different sense than reinventing the wheel, I don’t know if the word exists)

  • reinvention of the wheel: without knowing the wheel, come up with a new wheel on your own.

  • reimplementation of the wheel: like in making a car, you don’t buy a commercial wheel and make the wheel by yourself?

I use this term “reinventing the wheel” in a narrower sense than the world uses it, but I thought it was a good idea to make a neat distinction because it is just a bonafide way of using the word in the world. I’ll try to break it down more finely.

  • A: Inventing the same solution without knowing the existing solution
  • B: You know of an existing solution and implement it without knowing that there is an existing implementation available
  • C: Knowing that there are existing implementations available, dare to implement
    • C1: For the purpose of acquiring knowledge and the pleasure of creating
    • C2: Dissatisfied with the existing implementation and intended to improve it

Opinion on this matter https://www.ipa.go.jp/files/000078693.pdf

  • image
  • Message from the 2020 PM

  • We welcome “reinventing the wheel” in a sensible way. Reinventing the wheel is the act of creating a similar program from scratch by oneself, despite the existence of existing libraries and precedents. Today, there is an abundance of development tools and libraries that allow efficient programming, and it is now possible to create the desired application with fewer man-hours by simply combining and integrating multiple elements. It is sometimes pointed out by outsiders that it is not productive to create something from scratch yourself when someone else already has a library that achieves the same thing. But will that really produce new innovation and technological innovation? Rather, in this day and age, it is more likely to be a competitive advantage to have the skills and hands-on experience to implement application layer programs, to be familiar with lower layer technologies, and to be able to create things from the bottom to the top in one fell swoop. New technological innovations can be created through trial and error, such as understanding the principles of things, skillfully breaking the mold, and creating a new mold of one’s own. We may reinvent the wheel for learning purposes, but the unexplored requires more than that. It is also important to have a passion for programming itself, a love of writing your own code from scratch to continue until you succeed. As a result, if you can provide even a single new value to the world, you can proudly say that you have ventured into unexplored territory. We welcome proposals based on intrinsic motivation, even if it is reinventing the wheel, and we welcome proposals based on intrinsic motivation that you can continue to be passionate about, even if the implementation is difficult.

  • This is in response to the air of rejection of “reinventing the wheel” in the world, rather than the assertion that C provides a competitive advantage
  • Plus, he says, “unexplored requires us to stay in C1 and go for C2.”

2009-12-30 Separating “reinvention” and “reimplementation” of the wheel - Gurumanu Zeputsun no Hateda (2007 to 2011)

I am of the opinion that “there is no need to reinvent the “architecture” of the wheel, but it is often necessary to create the “object” itself, the wheel.

  • Opinion that A is not necessary but C is sometimes necessary

My own written sources have only my past insights, while my predecessors’ written sources have theirs - for those of us who don’t believe in God

We do not need to waste our brains on “reinventing the wheel,” but rather, we believe that “reimplementing the wheel” is very important. However, the “reimplementation of the wheel” is often just a study, and a study is a study. It is similar to writing characters while watching a model in calligraphy. It is not necessary to think about “new characters” when you have a model, but it is like looking at “existing characters” and thinking about why they are the way they are.

  • Opinion that A is not necessary but C is useful, but that what is made in C1 is only a study

Why you shouldn’t re-implement the wheel - monjudoh’s diary

Why you should not use reimplemented wheels The amount of testing and verification is totally different. The true cost of reimplementing a wheel is not only the cost of implementing the wheel, but also the cost of making the testing and verification as extensive as the existing wheel.

  • Often overlook the cost of testing and validation when targeting C2
    • The result is a lack of reliability, even if you think you’ve built something better than what’s already there.
    • So the argument is that it is better not to use it.

https://twitter.com/Pachel_V/status/1075952836406460416

“Don’t reinvent the wheel” is a management saying, in other words, “Don’t do what doesn’t pay the bills. Conversely, from an engineer’s perspective, I believe that “reinventing the wheel” is the way to improve technical capabilities, so we should actively reinvent the wheel. reinvented, and then use the existing better wheels for practical use. - Which is more important, monetary capital or knowledge capital?

  • Opinion that management tends to oppose C1 because it is unlikely to lead to financial gain, while engineers are right to do C1 to acquire knowledge and then not use it for practical purposes.

This page is auto-translated from /nishio/車èŒȘぼ憍ç™ș明 using DeepL. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I’m very happy to spread my thought to non-Japanese readers.