Very interesting – the Skip language was written based on their experience of making the Hack type checker incremental!
To preserve PHP-like interactivity, you have to respond in milliseconds, and a normal type checker will take tens of seconds on a big codebase. So they made it incremental, but this introduced a ton of bugs.
It seems like the bugs also only showed up in certain commits with particular diffs! So he told a story about having to randomly test the type checker with many different diffs, and a bug that took up to a year to get rid of.
I try to avoid “inverted” code like that, so I can imagine.
I always thought Skip was a major piece of work that hasn’t received enough attention! I pored through it a lot of it back in 2019 – looks great, but he also admits in the interview that it’s hard to use if you don’t know him …
Very interesting – the Skip language was written based on their experience of making the Hack type checker incremental!
To preserve PHP-like interactivity, you have to respond in milliseconds, and a normal type checker will take tens of seconds on a big codebase. So they made it incremental, but this introduced a ton of bugs.
It seems like the bugs also only showed up in certain commits with particular diffs! So he told a story about having to randomly test the type checker with many different diffs, and a bug that took up to a year to get rid of.
I try to avoid “inverted” code like that, so I can imagine.
I always thought Skip was a major piece of work that hasn’t received enough attention! I pored through it a lot of it back in 2019 – looks great, but he also admits in the interview that it’s hard to use if you don’t know him …
http://skiplang.com/
(copy of comment from /r/ProgrammingLanguages)