4 ms·
I mean if you care about perf you can do it in one step. It’s not that huge of an ask, and engineering wise “compile some typed code” is a hell of a lot more st
by rtpg 5y ago
I mean if you care about perf you can do it in one step. It’s not that huge of an ask, and engineering wise “compile some typed code” is a hell of a lot more straightforward than “try to guess what I should speculatively compile at runtime”
There was a piece by v8 devs a while back where they ended up turning down JIT aggressiveness cuz it ended up making normal web pages slower (except for like Google Docs).
This is just me backseat-BDFLing “why do the hard thing when we could do the easy thing” tho
- nine_k 5y agoTyping a large legacy codebase written in a highly dynamic language is not as easy. Instagram is pretty large. I have seen a very large codebase in a dynamic language at [redacted] that has been mostly converted to use a sophisticated type system. Certain core things have not been converted so far, though, but just marked with a lot of "proceed with caution" and "TODO" red flags. Making them typesafe in any conceivable way would break compatibility for large subsystems. Sometimes a rewrite is the only way out of such a situation, but very few can afford it.
- huac 5y agoInstagram wrote https://github.com/Instagram/MonkeyType https://github.com/Instagram/MonkeyType to help type their Python code
- kingmaker 5y agoA couple of the folks who wrote MonkeyType (me and _carljm) also work on Cinder :)
- friendzis 5y ago> Typing a large legacy codebase written in a highly dynamic language is not as easy. > very few can afford it. Starting a project in a highly dynamic language is a conscious choice with well-known properties. The second part is interesting, however. Essentially you are saying that gains from development velocity do not offset losses from technical debt, which is a strange observation. I would say it sort of hints at time to MVP being irrelevant business metric (startup runway/survivability aside) at best. This is contrary to typical startup truths.
- nine_k 5y agoAt a certain scale, they do. Case in point: Twitter. They went through a painful transition but they did not have much choice. But sometimes they don't. Case in point: YouTube, Instagram. Both of them are slowly migrating more and more Python code to different languages, but the amount of Python is still large, and AFAIK neither has plans to eschew it completely. Time to MVP is a very relevant business metric. But the same thing that speeds you up in the beginning slows you down later on. If you architect your code past MVP to help replace the implementations of critical paths, it may help you down the line. (Micro)service architecture is one way to do that.