How often do you reinvent the wheel?
Kalesh Kaladharan
30 replies
I do this a lot.
I started programming from very early age. Ten years later I still have the same excitement when I start coding something. And most of the time, rather than looking at the business aspect of projects, I look at how the project can improve my coding skills. And this makes me reinvent everything.
I push myself to study a new language or framework for every other project. Me trying to build new websocket library from scratch to creating a simpler web framework for PHP from scratch (when Laravel already existed) to creating a NodeJS framework from scratch to learning React when I am already very comfortable with Vue are all some examples. There are hundred other instances.
Anybody else have this issue? Why am I doing this?π€¦ββοΈπ€¦ββοΈππ€ͺ
Replies
![Robert McCulloch](https://ph-avatars.imgix.net/2768209/original.png?auto=compress&codec=mozjpeg&cs=strip&auto=format&w=36&h=36&fit=crop)
Robert McCulloch@adwordsinsider
I'm convinced everything is broken. I mean EVERYTHING! Sometimes it just takes a little longer to see it. ;-)
Share
@adwordsinsider Maybe! The thing is I know that I am reinventing a lot and still continue to do it. Maybe, I enjoy it. Maybe I just like to code and learn new languages and don't want to gain anything out of itπ€·πΌββοΈ
ALL. THE. TIME! Right now, I want to put a code editor in my app. I know there are a few out there, and yet I'm looking into how to write it myself because I want to know how it works underneath.
@caroline_chiari Same happens with me all the time. Although, I won't do an editor. Generating code (be it HTML or any other language) using code is super-complex and I know it can take months or years to get it right.
My whole coding philosophy is centred around not re-inventing the wheel!
@matthew_anderson4 I want to be that person. But I like coding and it makes me want to code everything myself.
@matthew_anderson4 My problem with the phrase "reinventing the wheel" is it can easily be conflated with inventing a more efficient wheel. Sometimes in the process of reinventing the wheel, you might discover the flaws of the current wheel. I hope that makes sense
@matthew_anderson4 @jerbio007 Yes it does and that's one way to look at it. Of lately, I'm seeing a lot of no-code products, so wondered if its just me who is still codingπ€£π€£
@matthew_anderson4 Okayπ I misunderstood at first. We are alikeππ
I'm convinced that everything needs to be re-developed. There are so many apps,products that need to be redeveloped. That's why simplicity is winning. Today there are many CMS's for freelancers, etc. I see many of them via betalist.com and they are amazing because they go straight to the point. Easy to use UI, amazing UX. Unlike the cluttered CMS's that attempt to include 50features that don't even have anything in common.
The same applies to frameworks in software development. There are many times when you need a framework to do what you want it to do. No story, no complications and low over head. But this is just my opinion :)
@rotimi_je_suis Sounds just like meππ
Depth vs breadth of knowledge.
This really depends upon what are you trying to accomplish.
My current goal is to ship fast for Lightcat.io . So I do not reinvent anything.
It is more important to write code that's useful to your customers, than write great code.
But when my goal is to have fun, and tinker with something I find interesting, I'd sure reinvent the wheel. That would be an "art project" or a "toy", not something I intend to get users for.
@kush_apoorva You are right! I am not able to find that ship fast approach on any of my personal side projects. The story is different for client projects or on my job where there is strict guidelines on the tech stack to use and deadlines.ππ
I've tried numerous times. I've built my own jquery date picker, modal plugin, VueJS component library, CSS framework completely customizable with CSS variables, VueJS table plugin, JSON based form builder and what not!
I believe this is the only trick to go in depth and learn which can't be achieved by using ready to use libraries. π
@theharshin True! Right now, I don't have this many packages under my belt. But if I am going to continue this, I will definitely have a ton of unfinished private repos in my Git.π
A year back I would give you a high five after reading this post,
But now I want to encourage you by saying "control yourself!" :)
p.s. a regular retrospective works miracles
@valeryfenskaya Yeah I know I am doing it the wrong way, if I am supposed to think only from a business perspective. I guess I am not looking to provide any value. I think I am addicted to learning new tools. My bad. I have to control this.
I like to think I don't suffer from NIHS (Not Invented Here Syndrome). I do enjoy solving problems, but if I overlook a well known technology/framework/language, then I like to think I'm doing it, because I want to solve a problem no one else has yet solved. Not that it's something I do often, of course! ^_^
One thing I can say for sure though, is while I believe I'm a fairly strong programmer, I have no real interest in developing developer tools... Like, when I see a new Javascript framework, I often think "why are you making A/B/C, when React/Vue/Experess etc, has already done it?". For me, it's enough to find that A/B/C works for what I need it to do, before I consider writing code to do the same thing.
@quixical1 I want to think like youπ But somehow my brain, my inner self messes it up.
@quixical1 Now, this is an infinite loopπ€£
I used to do it a lot until I realized how unproductive it is. Innovation doesn't mean you have to create something from scratch. Those who are first to market are those who know how to look at something and make it 10X better, more effecient, faster, etc. - And, those who are first to market win. Have a nice day! :)
Yeah, seems to be a common problem with devs. I'm getting better these days, but still fall back to this way of thinking now and then!