Joy کامپایلری اپنسورس است که دیزاین و ابزارهای منحصر به فرد زبان برنامهنویسی Go را وارد حوزهٔ فرانتاند کرده است.
پیش از پرداختن به قابلیتهای کامپایلر Joy، بهتر است کمی با قابلیتهای زبان برنامهنویسی Go آشنا شویم:
- زبان گو با شعار «یک بار بنویس، چندین بار بخوان» عرضه شده است.
- سینتکس گو بسیار باثبات است.
- چک کردن دیتاتایپها در زبان گو بسیار سریع است.
- زبان گو حاوی لایبرری استاندارد و ابزارهای متنوعی است.
- قابلیت پیادهسازی اپلیکیشنهای به اصطلاح Asynchronous را با زبان گو خواهید داشت.
Joy با هدف راحتتر کردن کار علاقمندان به زبانهای Go و JS به بازار عرضه شده است. برخی از مهمترین قابلیتهای این ابزار عبارتند از:
- کامپایل سریع Go به JS
- استفاده از ابزارهای تحلیل کد زبان گو به منظور حذف کدهای غیرضروری
- امکان پشتیبانی از فریمورک React
- اپنسورس
به طور مثال، برنامهٔ معروف Hello World که به زبان Go نوشته شده است را مد نظر قرار دهید:
package main
func main() {
println("hi world!")
}
حال این برنامه به شکل زیر به کدهای JavaScript کامپایل شده است:
;(function() {
var pkg = {};
pkg["01-hello-world"] = (function() {
function main () {
console.log("hi world!")
};
return {
main: main
};
})();
return pkg["01-hello-world"].main();
})()
لازم به ذکر است که ریپازیتوری Joy در گیتهاب به صورت آزاد و اپنسورس در اختیار دولوپرهای گو و جاوااسکریپت قرار گرفته است.