3 ms·
> the core is <10k lines of Python with zero dependencies Isn‘t that already a no-go, to write a performance critical system in a slow programming language?
by davnn 4y ago
> the core is <10k lines of Python with zero dependencies
Isn‘t that already a no-go, to write a performance critical system in a slow programming language?
- taeric 4y agoI am no python fan, but find it laughably hard to believe it could be what makes a build coordination system slow.
- Too 4y agoOn clean builds the python tax will be dwarfed be the thousands of calls to clang yes. That’s not the scenario you need to optimize for. What’s more important is that incremental builds are snappy, since that is what developers do 100 times per day. I’ve seen some projects with 100MB+ ninja-files that even ninja itself, proud for being written in optimized c++, takes a second or two to parse on each build invocation. Convert that to python and you likely land in 5-20 sec range instead. Enough to alt-tab and get distracted by something else. Google code base is likely even larger than this. A background daemon that holds the graph in memory would probably handle it. In the big scheme such a design is likely better anyway. But needs a big upfront design and is a lot more complex than just reparsing a file each time. Side note: For some, even the interpreter startup is annoying. Personally I find it negligible, especially after 3.11 you can almost claim it’s snappy.
- taeric 4y agoCode bases that big are strawmen for most companies. Yes, they happen; but as often they should be segmented into smaller things. That don't require monolithic build setups.
- joshuamorton 4y agoThe context for this thread was weather Facebook considered waf in participation, so it is very relevant.
- taeric 4y agoCertainly fair. I had meandered on to "in general" way too quickly.