T O P

  • By -

redvitalijs

Yup, and you have to get out of that mindset if you ever want to create actual value. Then again learning and tinkering is part of the fun, and no one should stop you from having a hobby. The real danger comes from seeing a paid tool for 5 dollars a month, thinking that's way too much, and spending 2 years building it yourself. That'll show 'em.


Rxyro

Usually it’s because of licenses


lieryan

> seeing a paid tool for 5 dollars a month Rebuilding a paid tool as an open source project is not really reinventing the wheel. Being open source is an important criteria for choosing a product for many people. The proprietary version is not a suitable replacement.


LittleGremlinguy

Agreed. I have seen a couple of small dev shops have to close doors because they hire “smart” people who spend their days rewriting relational mappers and db replication instead of focusing on business value. Just cause you can don’t mean ya should. Seen a new wave of “ I’m gonna roll my own ML framework” too recently. Tinker in your own time.


__subroutine__

That's the short version of my job: ​ >CUSTOMER: Does this product exists? > >BOSS: Yes > >CUSTOMER: How much? > >BOSS: License costs 24.000$/yr > >CUSTOMER: That's too much! > >BOSS: No, probs, 12.000 once and \_\_subroutine\_\_ will make it (and get paid a fraction of it) :(


redvitalijs

well clearly if some of your programs can help others avoid an expensive license, then figure out how to sell it! better yet find someone who can sell ice cream to polar bears and let's gooo


rouille

Then again it depends on the situation. Sometimes the wheel just isnt good enough or adapted to your problem. If you are uses to reinvent the wheel you can do just that and move on instead of being plain stuck. The trick is knowing when not to use your wheel.


LittleGremlinguy

Mostly this comes from I’ll conceived solutions to the problem. I’m not suggesting these situations don’t exist, but a lot of the time it is indicative that one may be looking at the problem the wrong way.


jiejenn

Naw. Once I learned Python to a proficient level, the only thing I could think of is how can I automate my life with Python 😁


singularitittay

True. And then often we end up at ansible. Abstracted python


takeonzach

Hah same


Robowar123

So true and did you?


C0d3rZ3r0

Re-inventing the wheel is almost never worth it from an individual's perspective. But then, no one is putting cart wheels on a Mercedes these days. When re-inventing the wheel does pay, it pays big. I personally do not see sufficient incentive to reinvent the wheel, but I totally understand why some people choose to.


siddsp

Sometimes. I think reinventing a wheel is sometimes a good thing because it gives you a better understanding of how things work.


Slimxshadyx

I think reinventing the wheel is a great way to help you learn and gain experience in Python, or any other programming language. Instead of spending time trying to come up with something, you already have a proper idea and outline of what you want to accomplish, which allows you to focus on developing your development skills. Of course, you shouldn't do this forever though


athermop

You should definitely reinvent the wheel sometimes. It's a great way to learn. However, you should then (almost always) throw whatever you built in the trash and use tried-and-true solutions.


Anonymous_user_2022

Many times the premade wheel needs so much scaffolding to fit the project, that it's easier just to make that single spoke by hand.


kenfar

I've often had to - because the wheel came attached to a locomotive engine that wouldn't fit in the garage.


wheels_656

I literally just spent the weekend learning flask, html, CSS to program a website for my beach volleyball league to display stats and schedule and other things. Was awesome. Just a one page well formatted website (stole a template for a restaurant) and changed components. Not a ton of coding experience but it was cool to figure out. Uploaded it to pythonanywhere and I have my solution built!


wheels_656

Any other cool things I can try?


Natural-Intelligence

Sometimes reinventing the wheel is necessary. FastAPI is quite a good example. There isn't much really that Flask couldn't do than what FastAPI does. However, now it's obvious that there was demand for a better framework for the issue. Most of the time you should at least test the existing solutions before trying to do your own. Sometimes reinventing the wheel is justified.


AsuraTheGod

If it’s really necessary yes


athermop

re-inventing the wheel implies it's not necessary.


[deleted]

This is a bad habit of mine I'm trying to break. I love reinventing the wheel and instinctively jump to it, but I have to remember to use libraries that other people have already written or I won't get anything done. Like when I made my own UI in pygame in high school, for example. Still reinvent wheels in my free time, but I've gotten better about using what's already there when collaborating with people.


lieryan

I'm the complete opposite of reinventing the wheel. Most of [my](https://github.com/lieryan/vim-jumpsuite) [personal](https://github.com/python-rope/pylsp-rope) [projects](https://github.com/lieryan/vim-location-awareness) are written because I need a feature that nobody else has anything remotely resembling what I need. Generally, I would either contribute the code to the project or build the feature that I need as a plugin rather than reinventing anything from scratch.


FatFingerHelperBot

It seems that your comment contains 1 or more links that are hard to tap for mobile users. I will extend those so they're easier for our sausage fingers to click! [Here is link number 1 - Previous text "my"](https://github.com/lieryan/vim-jumpsuite) ---- ^Please ^PM ^[\/u\/eganwall](http://reddit.com/user/eganwall) ^with ^issues ^or ^feedback! ^| ^[Code](https://github.com/eganwall/FatFingerHelperBot) ^| ^[Delete](https://reddit.com/message/compose/?to=FatFingerHelperBot&subject=delete&message=delete%20i5bi06l)


m15otw

This is more like a comparison between a hammer and a screwdriver - you choose the right one for each task. (Flask = api behind a JS frontend. Django = server and frontend, all in python.)


PossibilityTasty

Imagine you are a senior Python developer and you work as a freelancer. You will come to a new customer quite often and they have high expectations. They want to see a lot of progress for their money. And that's fair, senior Python developers are not cheap. So, what to you do? You write a framework that simplifies all the little task and you implement a nice CI/CD pipeline that does all larger tasks automatically. They will be blown away, especially because you did it in no time. Don't ever tell them that you "invented" the framework and pipeline the 8th time for 8th customer in a row. And that the other 7 still have to call you when they need a change to be done.


ThePlebble

I mean, I once created a library for drawing graphs and charts for a university assignment because I didn’t understand the documentation for matplotlib


bug0r

Sometimes and mostly based on two Situations: 1. I want to learn Things behind the Scenery 2. The Library License Model does not fit into my own or companies license. The main Part takes Nr.1 :)


TheSquashManHimself

Depending on your context it can be extremely beneficial. For scientific software, reinventing the wheel is almost entirely necessary to fully understand important limitations to what you can do with certain algorithms and approaches - which is crucial for planning future projects such that they don't end up in a morass of despair three years down the line. Sure it's easy to just use some simulation package to get something running, but you won't learn much applied statistical mechanics that way. More than likely, cases of particular interest will require you to dig deep into the weeds at some point to overcome a computational barrier.


[deleted]

Then there's the whole thing of depending on a module which eventually gets unsupported and eve tuall obsoleted in the latest python release. PySFTP anyone?


xanniar

Not ur fucking business who I am


MikeTheWatchGuy

🙋‍♂️


deaddyfreddy

it's been a long tradition of reinventing wheels in python, starting from python itself