קבלת מסגרות וספריות חדשות כל הזמן זה משהו ש-JavaScript מפורסם בו. ביולי 2022 קיבלה המערכת האקולוגית חבר חדש: Bun.js. כאן, נסקור את Bun.js ונראה כיצד הוא משפיע על מערכת האקולוגית הרחבה יותר של JavaScript.

מה זה Bun.js?

לַחמָנִיָה מוגדר כ"זמן ריצה מהיר של הכל-באחד של JavaScript". זה השלישי מסוגו אחרי Node.js ו-Deno.js, שנוצר על ידי Jarred Sumner באמצעות שפת התכנות Zig.

המטרה העיקרית שלו היא לספק פלטפורמה להפעלת JavaScript מחוץ לדפדפן בדיוק כמו Node.js ו-Deno.js, אבל Bun מתקדמת לספק רמות חדשות של מהירות ומורכבות משופרת.

איך JavaScript התפתח

JavaScript נבנה במקור לרוץ רק בתוך דפדפנים, המופעלים על ידי מנועים כמו SpiderMonkey ו-V8. בשנת 2009, ריאן דאל הטמיע את מנוע ה-V8 בתוכנית C++ שאותה כינה Node.js. JavaScript, מאז הפך לרלוונטי לשימושים שונים כמו צד שרת ויישומים בזמן אמת.

הבטחות ומודול ES הם דוגמאות לתכונות JavaScript מודרניות שלא היו קיימות כאשר Node.js נוצר. ראיין גם נשא הרצאה ב-2018 על דברים שהוא התחרט עליהם לגבי Node.js. חרטותיו היוו השראה ליצירת Deno.js שהוא הוציא ב-2020.

Deno הוא קובץ הפעלה שנבנה עם Rust שמטרתו להתמודד עם כל הפגמים של Node כמו אבטחה, ביצועים ותמיכה מקורית ב-TypeScript. הוא מהיר ומאובטח יותר משמעותית מ-Node, והוא מגיע עם כלים נעדרים ב-Node.js.

instagram viewer

עם זאת, Deno לא זכתה לאימוץ המסיבי שצפוי אפילו לאחר ארבע שנים של שחרור, מכיוון שרוב המערכות המודרניות כבר מבוססות Node ושינוי יכול להיות כאב עבור מפתחים. צריך לשכתב את רוב npm גם חבילות לתמיכה ב-Deno מאתגרות את האימוץ שלה.

ביולי 2022, זמן ריצה חדש הופיע בגרסת בטא -- "Bun.js" -- שהיה נושא מגמתי בקהילת JavaScript ומחוצה לה. יכולת הפעולה ההדדית עם Node.js והביצועים המהירים שהיא מתיימרת להציע היו נקודת הראווה. זה גם העלה דיונים על כך שסוף סוף יש "משמיד צמתים" בסביבה.

איך Bun.js משתווה ל-Node.js ו-Deno.js?

Node, Deno ו-Bun הם כולם זמני ריצה עבור JavaScript מחוץ לדפדפן, זה לא מנטרל את ההבדלים ביניהם.

Node.js נכתב ב-C++, Deno ב-Rust, ובן ב-Zig. "השליטה ברמה נמוכה על הזיכרון והיעדר זרימת שליטה נסתרת ב-Zig מקלים על כתיבת תוכנה מהירה", נכתב באתר האינטרנט של Bun.

בעוד ש-Node ודנו מריצים שניהם את מנוע ה-V8 של גוגל, Bun ממנפת את ביצועי "ההתחלה המהירה" של Webkit JavaScriptCore מנוע שבו משתמש ספארי של אפל. תוצאות בנצ'מרק מהאתר מראות כיצד Bun מנצח את הביצועים של Node ו-Deno, ופועל לפחות פי 3 מהר יותר משני זמני הריצה.

ל-Bun יש npm (מנהל חבילות צומת) מובנה מה שהופך את התקנת החבילות מ-npm לקלה ומהירה (פי 20 מהמהירות ב-Node), הוא גם תומך ב-TypeScript ומעביר אוטומטית קבצי TS ו-JSX. תכונות מרגשות נוספות של Bun כוללות לקוח SQLite3 מובנה, ממשקי API לאינטרנט כמו אחזור ו-WebSocket, טעינה אוטומטית של משתני סביבה ורץ מבחן.

מכל השלושה, באן לוקח את העוגה להופעה. Node נשאר היציב ביותר עם קהילה גדולה מאוד, בעוד Deno הוא כרגע המאובטח ביותר.

האם Bun.js באמת ישפיע על המערכת האקולוגית?

המערכת האקולוגית נרגשת מהשחרור של Bun. זה נעים שההייפ סביב באן היה עצום מאז ההכרזה. זה בהחלט עניין כל כך גדול. מפתחי JavaScript מאוד יאהבו את זה בהתחשב במהירות ה"בוהקת" והכלים החזקים שלו לפרודוקטיביות.

יתר על כן, שרת הדיסקורד של Bun יש כבר למעלה מ-2000 חברים מה שמוכיח את ההתרגשות בקהילה מהטכנולוגיה החדשה הזו.

מהו העתיד של Node.js, Deno.js ו-Bun.js?

JavaScript לא ייעלם בקרוב. במציאות, זו אחת הטכנולוגיות שאנחנו בטוחים שעדיין יהיו בסביבה בעוד 10 שנים מהיום. גם ל-Node, Deno ובאן יש עתיד.

צומת עדיין מתעדכן באופן שוטף, גרסה 18.0 שוחררה זה עתה לאחרונה, ולכן עתידו נותר ללא פגע אפילו עם דנו ובן בסביבה. חברות רבות כמו PayPal משתמשות ב-Node בתשתיות שלהן, ואפילו סטארטאפים חדשים הולכים בעקבותיה.

המקרה דומה עבור Deno, שפותח באופן פעיל והולך וגדל. Deno גם מתקדמת לפתרון SaaS למתן שירותי ריצה מנוהלים של JavaScript.

Bun.js עדיין לא יציב ויש לו תמיכה מוגבלת (אתה צריך מערכת המשנה של Windows עבור לינוקס כדי להפעיל אותו ב-Windows). למרות שיש לו כל כך הרבה יכולות, זה לא יכול להיות אופציה עבור תוכנה מוכנה לייצור עכשיו, כי יש עדיין הרבה עבודה לעשות על זה.

בעוד שהעתיד בהחלט מבטיח עבור Bun, זה הגיוני להאמין ששלושת הטכנולוגיות הללו ככל הנראה יתקיימו ביחד במערכת האקולוגית, לא אחת תחליף את השנייה.

Bun.js עשוי להיות מחליף משחק

עם Bun, הרבה דברים עשויים להשתפר ב-JavaScript. כנראה שהגיע הזמן ש-JavaScript יקבל אימוץ טוב יותר בתחומים קריטיים לביצועים כמו AI/ML, פיתוח משחקים וכו'. פנה אל ה Bun.sh אתר כדי ללמוד כיצד להתקין ולהתחיל לפתח עם Bun.