4 ms·
My usecase is mostly side-projects that I want to take to the market. So I stick to Django. Why? * I am already familiar with it's advantages and quirks. So I
by sharmi 9y ago
My usecase is mostly side-projects that I want to take to the market. So I stick to Django.
Why?
* I am already familiar with it's advantages and quirks. So I can get running faster. The knowledge that I have accumulated in my previous projects will be handy to get going. Time to market is important for both validating the product and avoiding a burnout.
* There is a well defined way to do most common stuff. So you need not experiment and reinvent the most basic stuff. All those get out of the way and I can concentrate on the meat of the problem.
* Many libraries like auth, rest framework are battle tested and most likely tested for security vulnerabilities. if you are taking something to market, it is in everybody's best interest to ensure security is taken care of by the pros. Django is solid in that aspect.
* Though python may not be the most performant language (I have been bit by that a lot in data processing) it is still fast enough for websites with normal loads (which is 99.999% of today's websites).
* If I do have a performance bottleneck, there are lessons from pioneers on how to optimize it.
For me, django fits all these needs. For you it might be Rails, Node, Play or Phoenix. I used to want to learn Phoenix and Play.
But I realized it is a no-win situation when you mix a brand new tech with brand new product.
Now I reach out to new tech only if it fixes a sore need that my existing toolkit cannot handle.
For example, I am looking into webpack and purifycss, because django does not have the necessary functionality to trim the fat in bloated CSS, while Node stack excels.
If I work on a interaction heavy front-end, I might reach for vue or react, and that too only if I really need it.
Else, I am quite happy with django/vanilla-javascript/sass/bootstrap(for prototyping)
- sjellis 9y agoThis is really solid advice, I think. Either you are building something for learning, or you are building something to ship it, and it's better not to mix the two. If you are building something to learn new technology, then use whatever that excites you to make something that you won't feel guilty throwing away. If you are building something to ship, then you should preferably use nothing that you haven't already used before. You'll still improve as a developer, because you will get better at technology that you have already invested in.