It was not feasible to stop the entire organization from writing new code to do a migration, which is why most migrations like this happen slowly over time. However, we got a lot of benefits by doing a "big bang translation" like not having to link two different module systems (Google closure and TS)
The hackathon was an ideal time to attempt something like this and we knew the scale of the project was huge. Once the project was complete we each got a couple of extra personal days.
It was really cool tackling a project that many thought was impossible and succeeding. We all had the vision that we were doing something that had the potential to significantly improve our satisfaction and productivity on the daily basis for the long term.
This kind of thing is completely voluntary and everyone who participated really wanted to do it. I think we have a really good work-life balance at lucid.
It's awesome having leadership that supports us in moving forward with a project like this.
I've started writing small scripts using the TypeScript parser as a library to make meaningful improvements in our codebase. Since JavaScript is valid TypeScript syntax the scripts work on both.
For example, I wrote a small script to change var to let or const when possible. It uses the AST to check scoping rules and to check if a variable is ever reassigned.
Writing scripts like this is way more effective than doing it by hand.
We use Google Closure at Lucid Software for Lucidchart and Lucidpress. It has been a great tool for us, especially for sharing code across a huge javascript codebase. Compile time type checking and dead code removal have also been great.
It is unfortunate that it isn't used more widely.
It's nice that you can see some of Google's open source projects built using closure
It's funny because it's true