
Babel, Tapi 20x Lebih Cepat
Produk lain sih, bukan babel.
Apa itu Babel
Babel adalah library untuk transpile JavaScript yang lebih modern seperti ES6 ke versi JavaScript yang lebih lama. Babel bahkan bisa juga transpile TypeScript dengan plugin yang tepat.
20x Lebih Cepat
SWC juga merupakan transpiler untuk JavaScript, dibuat dengan Rust dan jauh lebih cepat daripada Babel. Rust dikenal dengan performance-nya yang bagus. Telah banyak perusahaan yang menulis ulang program mereka menggunakan Rust. Contohnya:
- Firefox menulis ulang renderer CSS-nya yang bernama Quantum CSS.
- Tilde menulis ulang sebagian API Java mereka dengan Rust dan memperoleh performance yang luar biasa dengan mengurangi penggunaan RAM dari 5GB menjadi 50MB.
**Baca Juga : ** Menjelajahi Perbedaan JavaScript dan TypeScript
Kenapa Kita Perlu Transpiler?
Ada beberapa pengecualian:
- Jika hanya aplikasi sederhana yang menggunakan versi JavaScript yang didukung semua browser seperti ES3. Misalnya:
function saySomething(something) { console.log(`${something}. But don't tell anyone.`) } saySomething("I don't like Javascript!")
- Jika aplikasinya tidak perlu support browser jadul.
Selain 2 pengecualian di atas, 99.99% kamu perlu Transpiler. Browser menggunakan JavaScript engine yang berbeda, seperti V8 (Chrome), SpiderMonkey (Firefox), dan Chakra (IE). Walaupun JavaScript mempunyai standard specification, setiap engine akan mempunyai sedikit perbedaan.
Cepatnya SWC
SWC sendiri mengklaim bahwa SWC dua pluh kali lebih cepat daripada Babel di Single thread dan 70x lebih cepat di Multi Thread.
Contoh baru-baru ini yang bisa kita lihat yaitu Deno yang sekarang menggunakan SWC sebagai compiler-nya.
Dikutip dari Deno 1.5 Release Notes
"Since the last release we have been hard at work to refactor our entire TypeScript compiler infrastructure. Because of this we were able to replace our aging bundling infrastructure with a new bundler based on swc." dan "This has led to a 3x performance improvement when we type-check your code, and up to a 15x improvement if you use the --no-check flag."
So, gimana? Mau cobain?
Sumber: SWC Why you should use SWC (and not Babel) Deno 1.5 Sees 3x Bundling Performance Improvement Due to Rust-Based JavaScript/TypeScript Compiler Deno 1.5 Release Notes
What do you think?
Reactions



