Re:Tqdm (Python)
by hpen on Thursday December 16, 2021 @06:22PM
(#29585436)
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.
[ Parent
| on HN ]
You 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.
To me Python is fast just like not writing tests is fast.
for 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.
Generally 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.
understood. 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
It's interesting because even FANG companies can't agree on testing. I've heard Facebook and Google are very different in this regard.
Re:Tqdm (Python)
by MichaelMoser123 on Thursday December 16, 2021 @08:51PM
(#29586779)
What do you think about using Python for prototyping of microservices in large backend systems?
Sounds reasonable. Especially for a ML group. I just know that many times the prototype turns into the production product.
Re:Tqdm (Python)
by MichaelMoser123 on Thursday December 16, 2021 @11:29PM
(#29587746)
I 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.