logoalt Hacker News

nutjob2yesterday at 7:21 PM7 repliesview on HN

> A lot of important and large codebases were grown and maintained in Python

How does this happen? Is it just inertia that cause people to write large systems in a essentially type free, interpreted scripting language?


Replies

hibikiryesterday at 8:05 PM

Small startups end up writing code in whatever gets things working faster, because having too large a codebase with too much load is a champagne problem.

If I told you that we were going to be running a very large payments system, with customers from startups to Amazon, you'd not write it in ruby and put the data in MongoDB, and then using its oplog as a queue... but that's what Stripe looked like. They even hired a compiler team to add type checking to the language, as that made far more sense than porting a giant monorepo to something else.

xboxnolifesyesterday at 7:27 PM

It's very simple. Large systems start as small systems.

show 1 reply
oiveyyesterday at 7:30 PM

It’s a nice and productive language. Why is that incomprehensible?

wiseowiseyesterday at 10:37 PM

Python has types, now even gradual static typing if you want to go further. It's irrelevant whether language is interpreted scripting if it solves your problem.

tjwebbnorfolkyesterday at 10:29 PM

Most large things begin life as small things.

oofbeyyesterday at 7:23 PM

It’s very natural. Python is fantastic for going from 0 to 1 because it’s easy and forgiving. So lots of projects start with it. Especially anything ML focused. And it’s much harder to change tools once a project is underway.

show 1 reply
IshKebabyesterday at 11:43 PM

Someone says "let's write a prototype in Python" and someone else says "are you sure we shouldn't use a a better language that is just as productive but isn't going to lock us into abysmal performance down the line?" but everyone else says "nah we don't need to worry about performance yet, and anyway it's just a prototype - we'll write a proper version when we need to"...

10 years later "ok it's too slow; our options are a) spend $10m more on servers, b) spend $5m writing a faster Python runtime before giving up later because nobody uses it, c) spend 2 years rewriting it and probably failing, during which time we can make no new features. a) it is then."

show 3 replies