واخيراً Bun نزل بنسخة 1.0 بحالة stable 🤩 بقيادة Jarred Sumner ،
راح يكون البديل القادم ل_ nodejs بلا شك بحكم المشاكل والتحديات الكثيرة يلي يحلها😎 ،
خلينا نتكلم اليوم عن ابرز المشاكل يلي يحلها و كيف تقدر تستفيد منه 👌
التيم والشركة يلي خلف bunjs هي شركة Oven في سان فرانسيسكو ،
الشركة تعتبر صغيراً نسبياِ قامو ب تجميع ما يقارب 7M$ بقيادة Kleiner Perkins و Guillermo Rauch و YCombinator’s Continuity Fund
قصة قصيرة عن تاريخ JS و NodeJS 🌟 ،
خلال السنوات الأخيرة ظهر NodeJS كمحرك رئيسيي يسمح لك بإستخدام JS بشكل أساسي خارج المتصفح ومن هنا تكون عالم كبير وواسع من الادوات ومن السوق يلي بدأو بإستخدام JS بشكل غير مألوف عن العقد الماضي صار يتم إستخدام اللغة البرمجية JS في إماكان عدة لا حصر لها بدءاً من الباك إند و تطبيقات الهواتف المحمولة و تطبيق أجهزة الحاسب إلى برامج Enterprise فائٍقة الأداء ... إلى آخره.
لكن كان Node JS بشكل عام نوعاً ما محدود بحكم طبقة APIs مع إنظمة التشغيل ليس محكومة الأداء أي نعم سريعة لكن كان في مجال كبير جداً ممكن تصبح أسرع وأكثر optimization مع إنظمة التشغيل ..
خلونا في المهم 🌟 ،
نبدء نتكلم عن الأداء وقد ايش فرق الموضوع بين Node JS و Bun
هنا يظهر لنا بنش مارك تشغيل خادم بروتوكول HTTP وكمية الـطلبات يلي يقدر يعالجها في الثانية الواحد !
نتكلم عن 6X اضعاف الnode JS
وضعفي Deno JS
طيب ايش أبرز الـمميزات القاتلة يلي يوفرها ويلي أذهلتني ! وحكمت انه راح يغطي على nodejs 🤔 ؟
إنها تجربة المطور إيها السادة !! 🤯
[1/7] أولاً Bun ليس مجرد قادر على تشغيل أكوادك لكن كمان هو بديل رسمي واساسي لكل مشاكل الـJS package manager !! هو بديل لكل من pnpm , npm , yarn ويدعم اي حزمة برمجية من NPM بدون ما تعدل اي سطر واحد .🤩
[2/7] ثانياً Bun كمان يعتبر Test Runner بديل لـJest و Karma ! ويحل اغلب مشاكل البطئ يلي تعانيه هذه الأدوات.🙏🏻
[3/7] ثالثاً Bun متوافق بشكل 99% مع جميع مكتبات الداخلية لـ NodeJS تعرف ايش معنى هذا الكلام ؟ معناه أي ادة أو كود معمول لـ NodeJS هو متوافق كلياً مع Bun ويقدر Bun يشغله بدون ما تغير ولا سطر برمجي واحد !🙏🏻
[4/7] رابعاً Bun يوفر Bulit in مكتبات داخلية APIs تفوق بسرعتها اضعاف التي يوفرها NodeJS .😌
[5/7] خامساً Bun مصمم ليدعم TypeScript بشكل تلقائي بدون اي إضافة أي مكتبات او حزم برمجية او زحمة إعدادات أو تغييرات ! 😌
[6/7] ساداساً Bun يدعم من .js, .ts, .cjs, .mjs, .jsx, and .tsx في مكان واحد مافي آدة على وجه الارض تدعم هالكم من ملفات JS المختلفة 😆
[7/7] سابعاً bun يخليك تكتب كود كل المبرمجين كانو يتمنون يكتبونه بدون اي تعقيدات أو مشاكل
يلي هو ESM و CommonJS في سطر واحد !!! وداعاً لـآلام يلي عشناها أيام عشان نحول بين هذول الاثنين تخيل معي تكتب هذا الكود في مشروعك وبكل بساطة بس يشتغل يشتغل !! 🤩
شي عظيم !!!
السر خلف سرعة Bun ؟
آحد الفروقات بين Bun و الفريق الاخر deno , node js. هم انهم يعتمدون على محرك V8 يلي مستخدم في كروم ، في مقابل Bun يعتمد على محرك Webkit المستخدمة من Safari واليلي بطبعه تم تصميمه من الصفر لتكون أسرع باضعاف و أكثر optimization مع أنظمة التشغيل
بالإضافة إنه Bun تم تصميمة وبرمجته بلغة ZIg إحدى لغات أنظمة التشغيل المعروفة بسرعتها و أداءها .
😌 ختاماً قد ايش سعيد إني أشوف التطور الكبير يلي قاعد يصير في عالم JS ويخلينا أكثر تعصباً و فخراً إني إستخدم هذه اللغة العظيمة في كل مشاريعي التقنية 🙏🏻
تقدر تبدء تسخدم Bun من اليوم 👇
من هنا تجد رابط الموقع الرسمي لهم https://bun.sh/