Figma reports on its own code migration process, transitioning from using Skew language that has been in use since the company’s inception (releasing the initial versions in 2016) with a key condition being the ability to compile code for both web and mobile phone usage. At that time, TypeScript language did not offer much support, leading to continued use of Skew, but ultimately encountering difficulties in using external tools and code, as well as wasting time training new employees.
Figma states that the reason for the delayed switch to TypeScript was because Skew itself had an inefficient optimization process. Previously, when testing TypeScript as a replacement for Skew, performance in Safari significantly decreased, which was unacceptable as iOS only supports Safari.
The current conditions have changed as various browsers now support WebAssembly more, allowing for efficient optimization parts to be written in C++ and compiled into WebAssembly, while the remaining code can be written in TypeScript without compromising overall performance significantly.
The code migration process relies on creating a transpiler to convert the original Skew code to TypeScript first, then building from both Skew and TypeScript sides together, gradually transitioning users to the Skew side and ultimately reaching a point where programmers will stop writing Skew and focus on correcting the transpiled TypeScript.
Source – Figma
TLDR: Figma shifted from Skew to TypeScript due to Skew’s optimization issues, finding more efficient solutions with WebAssembly support. The code migration process involved creating a transpiler to convert Skew code to TypeScript, gradually transitioning users to TypeScript.
Leave a Comment