4 ms·
I love Python for many things: scripts, data science, prototypes, etc. But I would never use it to build a large backend system. I just can't handle all the war
by hpen 5y ago
I love Python for many things: scripts, data science, prototypes, etc. But I would never use it to build a large backend system. I just can't handle all the warts. Yes it has been used by large companies, but not without their problems.
- bshipp 5y agoYou use Python to rapidly build a small backend system and then, if any warts appear that need to be smoothed over, you carve that function off to a more robust solution. Python is great for programming at the speed of inspiration.
- hpen 5y agoTo me Python is fast just like not writing tests is fast.
- syngrog66 5y agofor prototypes and MVPs time-to-learning and time-to-market are king, and programmer time is the most expensive thing. in that niche Python is helpful and tests just slow you down tests are super helpful and wise in any sort of long term or safety-critical software, obviously so, tests (and Python) are not inherently a win or a loss. they just give you different trade-offs times to write testless Python and times to write test-heavy Go, Rust etc.
- hpen 5y agoGenerally I believe in engineering tradeoffs but I think some tests are always important. Even with MVPs. Writing test might double your time to market, but they will allow you to move faster and make less regressions once in production. The early days are some of the least stable features wise and having tests in place to verify things when massively changing a codebase is nice. Also, it can greatly help add confidence to newcomers who don't know the codebase.
- syngrog66 5y agounderstood. theres def an art to judging when its too early to write tests vs the perfect time. its easy for anyone to recognize once its become "too late" and therefore more painful and costly to add it than otherwise would have been I therefore try to put each situation quickly into 1 of 3 buckets then move forward on that basis: 1. heck no 2. heck yes 3. either way. a gray area I generally see a case 1 and 2 with confidence. therefore by a process of elimination, that also lets me deduce when its case 3. and in those cases you cant go wrong. :) "Impossible to predict, the future is." - Yoda
- hpen 5y agoIt's interesting because even FANG companies can't agree on testing. I've heard Facebook and Google are very different in this regard.
- MichaelMoser123 5y agoWhat do you think about using Python for prototyping of microservices in large backend systems?
- hpen 5y agoSounds reasonable. Especially for a ML group. I just know that many times the prototype turns into the production product.
- MichaelMoser123 5y agoI think that is also reasonable, if the production system does not have to service a heavy load, and does not need to be scalable. Scalability is often assumed to be a requirement, however it is not always required in practice.
- hpen 5y agoGood point about scalability. The first company I worked for was tiny, and this really hits home :)