إعادة كتابة Bun بلغة Rust إنجاز مذهل
MMaximilian Schwarzmüller
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00تم نقل BUN من SIG إلى Rust.
00:00:02ربما سمعت عن ذلك بالفعل،
00:00:04ولكن هناك الكثير لنكشفه هنا.
00:00:06كان هناك الكثير من الدراما الأسبوع الماضي،
00:00:08ولكن هناك الكثير من الأشياء المثيرة للاهتمام التي تحدث.
00:00:10وبغض النظر عما إذا كنت مهتماً بـ BUN أو SIG أو Rust،
00:00:14فإن هذا مثير للاهتمام حقاً.
00:00:15وأيضاً فيما يتعلق بكيفية الاستفادة من الذكاء الاصطناعي
00:00:18وما قد يعنيه ذلك للمشاريع المماثلة
00:00:20في صناعتنا بشكل عام.
00:00:22والآن، كملاحظة جانبية بسيطة،
00:00:24أنا شخصياً أحب BUN كثيراً.
00:00:26إنه وقت تشغيل JavaScript الافتراضي الذي أستخدمه
00:00:29في معظم مشاريعي.
00:00:30وفي الواقع، ومن باب المصادفة الجميلة،
00:00:32لقد نشرت دورة تدريبية جديدة تماماً حول BUN الأسبوع الماضي.
00:00:35وهي تعمل بالطبع مع إصدار Rust
00:00:37كما هو الحال مع إصدار SIG.
00:00:39لذا إذا كنت ترغب في التعمق أكثر في BUN
00:00:41والتعرف على جميع واجهات برمجة التطبيقات الأساسية التي يقدمها،
00:00:44لأن هذه إحدى أكبر مزايا BUN
00:00:46أنه يحتوي على الكثير من الأشياء المضمنة.
00:00:48بعض الناس لا يحبون ذلك، أنا أحبه.
00:00:50إذا كنت ترغب في معرفة المزيد عن ذلك،
00:00:51قد تكون تلك الدورة مثيرة للاهتمام.
00:00:53لكن دعونا الآن نلقي نظرة فاحصة
00:00:54على الجدول الزمني العام للنقل، هل نفعل ذلك؟
00:00:58لقد حدث ذلك في الواقع قبل شهرين.
00:01:01لذا تم إصدار منشور المدونة الأسبوع الماضي في يوليو،
00:01:04لكن النقل نفسه حدث في مايو.
00:01:08وقد بدأ في أوائل شهر مايو
00:01:10عندما تم اكتشاف فرع CloudFaserPort
00:01:13في مستودع BUN الرسمي على GitHub.
00:01:15كان ذلك الفرع يحتوي على ملف MD للنقل،
00:01:18ملف ماركداون يحتوي على تعليمات
00:01:21حول كيفية تحويل كود SIG إلى كود Rust،
00:01:23كيفية نقل هذا الكود، وجداول الترجمة،
00:01:27وتعليمات عامة.
00:01:28وسنعود إلى كيفية إنشاء هذا الملف،
00:01:30لأنه بالطبع كان هناك ذكاء اصطناعي،
00:01:32كما قد تخمن، بعد قليل.
00:01:34تم اكتشاف ذلك.
00:01:36لذا بشكل طبيعي، نشأت نقاشات على Hacker News و X.
00:01:40وكان هناك أشخاص متحمسون لذلك.
00:01:43وكان هناك أشخاص ينتقدونه بشدة.
00:01:46ولكن في تلك اللحظة، لم نكن نعرف الكثير.
00:01:47من الواضح أن هناك الكثير من الاستقطاب حول Rust.
00:01:52هناك أشخاص يحبون Rust، مثلي.
00:01:55وهناك أشخاص يكرهون Rust.
00:01:57وهناك أشخاص يكرهون
00:01:58فكرة أنه يجب إعادة كتابة كل شيء بلغة Rust،
00:02:00لأنك تقرأ في كثير من الأحيان
00:02:03أن الناس يريدون إعادة كتابة البرنامج XYZ بلغة Rust.
00:02:06وأنا أتفهم أن هذا مزعج.
00:02:08ولكن بشكل طبيعي، وبالتالي،
00:02:09كان هناك الكثير من الاستقطاب يحدث هناك.
00:02:11لكن النقل لم يحدث بعد.
00:02:15تغير ذلك لاحقاً في مايو.
00:02:16وفي 14 مايو، تم فتح طلب سحب رسمي،
00:02:22ثم تم دمجه أيضاً،
00:02:24والذي قام بالفعل بترحيل قاعدة كود BUN،
00:02:28كلها، من SIG إلى Rust.
00:02:30الآن، كما ترون، إنه طلب سحب ضخم.
00:02:32تمت إضافة أكثر من مليون سطر من الكود.
00:02:35وتمت إزالة كود SIG
00:02:39في مرحلة مختلفة.
00:02:40لذا نعم، لهذا السبب ليست عملية تبديل.
00:02:42لكنه تغيير ضخم، كما ترون،
00:02:44مع ما يقرب من 7000 عملية التزام (commit).
00:02:46الآن، بشكل طبيعي، لم يتم مراجعة ذلك الكود بشرياً،
00:02:51على الأقل ليس بالكامل.
00:02:52لقد تمت مراجعته بواسطة الذكاء الاصطناعي.
00:02:54كانت هناك اختبارات اجتياز، لكن لم تتم مراجعته بشرياً.
00:02:59وسنعود إلى كيفية استخدام الذكاء الاصطناعي بعد ثانية واحدة.
00:03:02ولكن تم نشر ذلك أو دمجه.
00:03:06وبالطبع، تلا ذلك المزيد من النقاش الآن.
00:03:08كما ذكرت للتو، لم يتم مراجعته من قبل البشر.
00:03:10من المستحيل القيام بذلك في هذا الإطار الزمني، بالطبع.
00:03:14لكن المجتمع تعمق وألقى نظرة
00:03:17وقام بتحليل أجزاء منه.
00:03:19ثم كان هناك منشور مدونة آخر، أو أول منشور مدونة،
00:03:23ليس المنشور الرسمي حول كل التفاصيل،
00:03:25ولكن أول منشور مدونة أو بيان أصدره فريق Buntine
00:03:29حول استخدام “غير آمن” (unsafe).
00:03:32لأن أحد الانتقادات الكبيرة التي ظهرت بعد طلب السحب هذا
00:03:37هو أن كود Rust الموجود هناك لم يكن Rust اصطلاحياً.
00:03:41لم يكن ذلك النوع من كود Rust الذي قد تكتبه أو يجب أن تكتبه
00:03:44إذا كنت تبني هذا من الصفر.
00:03:46بدلاً من ذلك، كان في الحقيقة ترجمة من SIG إلى Rust.
00:03:50وهذا يعني أنه لم يتم استخدام جميع أفضل ممارسات
00:03:54وأنماط Rust.
00:03:55وبشكل خاص، كانت هناك كمية معقولة
00:03:58من استخدام “غير آمن” (unsafe) هناك.
00:04:00الآن، لفهم “غير آمن”، يجب أن تفهم
00:04:03كيف تدير Rust الذاكرة.
00:04:05لأن هذه إحدى أكبر مزاياها،
00:04:08وهي مختلفة تماماً عن اللغات الأخرى.
00:04:10لأنه في معظم اللغات، لديك إما جامع قمامة (garbage collector)،
00:04:14وهو عملية تكتشف بشكل أساسي
00:04:16عندما لا يتم استخدام قيمة في أي مكان في البرنامج
00:04:19ثم تحرر الذاكرة، وهو أمر مريح،
00:04:21ولكنه يستهلك موارد إضافية.
00:04:24أو عليك القيام بذلك بنفسك.
00:04:26في لغات مثل C، على سبيل المثال،
00:04:28يجب عليك تخصيص وتحرير الذاكرة يدوياً.
00:04:31وهو نفس الشيء في SIG.
00:04:33يمكنك تخصيص الذاكرة هناك، ولكن يجب عليك أيضاً استدعاء free
00:04:37أو يجب عليك تحريرها عندما لا تعود بحاجة إليها.
00:04:40يمكنك استخدام defer، وهو أمر لطيف.
00:04:43هذا يعني أساساً أنه يمكنك استدعاؤها
00:04:47قبل تنفيذها فعلياً.
00:04:49يتم تأجيلها وسيتم استدعاؤها تلقائياً
00:04:52عندما ينتهي هذا النطاق، بشكل أساسي.
00:04:55وهذا جيد لأن هناك مواقف مختلفة
00:04:58حيث قد لا تعود هناك حاجة إلى قيمة ما.
00:05:00ولكن مع ذلك، عندما تضطر إلى تنظيف الذاكرة يدوياً،
00:05:04هناك العديد من المواقف
00:05:05حيث يمكنك إيذاء نفسك.
00:05:07لديك تحكم أكثر دقة
00:05:09ويمكن أن يكون ذلك مفيداً جداً، وفعالاً جداً،
00:05:11ولكن من السهل أيضاً نسيان مواقف
00:05:15في البرامج الأكثر تعقيداً
00:05:16حيث قد لا تقوم بتنظيف الذاكرة،
00:05:19وبالتالي التسبب في تسريب ذاكرة،
00:05:20أو حيث قد تقوم بالتنظيف مرتين،
00:05:23وهو ما سيسبب خطأ أيضاً.
00:05:25ولذلك هناك مقايضة.
00:05:27ولدى Rust نهج مختلف.
00:05:30في Rust، لديك مفهوم يسمى الملكية (ownership)،
00:05:32مما يعني أن كل قيمة لها مالك واحد فقط،
00:05:36وهي مرتبطة بالنطاق (scope).
00:05:38لذا إذا كان لديك نطاق،
00:05:39ويمكنك إنشاء نطاق باستخدام الأقواس المتعرجة،
00:05:41أو أن الوظيفة سيكون لها نطاقها الخاص أيضاً.
00:05:43قد تعرف هذا المفهوم من JavaScript.
00:05:46إذا كان لديك نطاق،
00:05:47فعند إنشاء قيمة هناك،
00:05:49تكون مملوكة لهذا النطاق.
00:05:51وإذا انتهى النطاق، يتم تحريرها.
00:05:53وهذا بالطبع مريح جداً
00:05:55لأنك لا تضطر إلى الاهتمام بتحريرها.
00:05:58كما أنه ليس لديك جامع قمامة.
00:06:00بدلاً من ذلك، لديك تلك القاعدة الواضحة.
00:06:02يمكن أن يؤدي ذلك إلى التعقيد في البرامج الأكثر تعقيداً
00:06:05حيث تحتاج إلى تمرير القيم.
00:06:07يمكنك القيام بذلك في Rust،
00:06:08لكنه يتطلب طريقة تفكير مختلفة.
00:06:11لكنه بالطبع يمنحك أمان الذاكرة،
00:06:14ما لم تستخدم الكلمة المفتاحية “غير آمن” (unsafe).
00:06:19إذا استخدمتها، يمكنك إنشاء نطاق غير آمن.
00:06:22وهناك، لم تعد تلك القواعد سارية.
00:06:24ومن ثم تصبح مهمتك التأكد
00:06:26من إدارة الذاكرة بشكل مناسب.
00:06:28الآن، لماذا تفعل ذلك؟
00:06:29حسناً، على سبيل المثال،
00:06:31إذا كنت تقوم باستدعاء مكتبة C،
00:06:33وهو ما يمكنك فعله في Rust،
00:06:34يمكنك مزج بعض كود C، إذا جاز التعبير،
00:06:37أو استدعاء بعض أساليب ووظائف مكتبة C،
00:06:40ثم بما أن C غير آمنة بطبيعتها،
00:06:44فإن الكود الذي تصل فيه إلى كود C هذا غير آمن أيضاً.
00:06:48لذا تحتاج إلى تلك الميزة للتفاعل مع كود غير آمن.
00:06:52وهذا أيضاً شيء لاحظوه
00:06:54في ذلك البيان الرسمي،
00:06:56بأن كل تلك الاستخدامات غير الآمنة في قاعدة الكود
00:07:00بجزء جيد منها كانت مرتبطة فعلياً باستدعاءات،
00:07:04لمكتبات أخرى، مكتبات C، وما إلى ذلك،
00:07:07والتي لن تتغير.
00:07:08لكنهم حددوا أيضاً مجالات
00:07:10يمكنهم فيها فعلياً تحسين الكود
00:07:13والتخلص من غير الآمن.
00:07:14وذكروا أنهم سيفعلون ذلك
00:07:15في طلبات سحب لاحقة.
00:07:18وقد فعلوا ذلك وما زالوا يفعلون ذلك.
00:07:20لذا يمكنك التفكير في هذا النقل الأولي
00:07:22كنقطة بداية،
00:07:24التي تم تنقيحها بمرور الوقت.
00:07:26لا يزال من الجدير بالذكر أن طلب السحب الأولي هذا،
00:07:28أو طلب السحب الضخم ذلك،
00:07:30كانت لديه بالفعل اختبارات اجتياز.
00:07:32لذا كان مستقراً، وكانت الاختبارات تجتاز،
00:07:35لكن الكود لم يكن بجودة الكود
00:07:37التي قد تتوقعها إذا تمت كتابته بـ Rust
00:07:40من البداية، لأن هذا لم يكن الهدف.
00:07:43لذا كان ذلك في 21 مايو.
00:07:45ثم كان هناك صمت.
00:07:46ومن الجدير بالذكر أيضاً أن هذا الإصدار من BUN
00:07:49لم يتم إصداره بعد.
00:07:50وعندما أقوم بتسجيل هذا، لا يزال غير مباشر.
00:07:52عندما تقوم بتثبيت BUN الآن،
00:07:54لا تزال تحصل على إصدار SIG،
00:07:56لكن ذلك يجب أن يتغير في أي يوم الآن.
00:07:58ولكن بعد ذلك في 8 يوليو،
00:07:59تم إصدار منشور المدونة الرسمي
00:08:02حيث نجد الكثير من التفاصيل المثيرة للاهتمام
00:08:04حول هذا النقل.
00:08:06وهو يستحق القراءة حقاً.
00:08:07سأقوم بربطه أدناه
00:08:08لأنه هناك الكثير لتتعلمه هنا.
00:08:11هذا النقل بالكامل، وهذا ليس سراً،
00:08:13تمت بمساعدة الذكاء الاصطناعي.
00:08:15من الجدير بالذكر أن BUN مملوكة لشركة Anthropic.
00:08:18لذا فقد كان لديهم وصول مجاني إلى كل تلك الرموز
00:08:22وخاصةً إلى Fable 5 أيضًا
00:08:24قبل طرحها للجمهور.
00:08:26تم هذا النقل باستخدام Fable 5.
00:08:29وبالمناسبة، إذا كنت تثبت Cloud Code الآن،
00:08:32على الرغم من أن BUN 1.4، نسخة Rust، لم تُطرح بعد،
00:08:36فإن Cloud Code يعمل بالفعل فوق
00:08:39نسخة BUN غير مطروحة بعد، إذا جاز التعبير،
00:08:42وهي نسخة Rust.
00:08:44هذا هو الوضع.
00:08:45لكن نعم، تم هذا النقل باستخدام Cloud Code
00:08:48بناءً على Fable 5 مع رموز مجانية بالطبع،
00:08:52بشكل أساسي، بما أن BUN جزء من Anthropic.
00:08:54وهذا أمر مهم يجب وضعه في الاعتبار
00:08:56لأنه في تلك التدوينة،
00:08:58نعلم أنه إذا قمت بجمع كل الرموز،
00:09:03أو إذا قمت بحساب إجمالي كل الرموز
00:09:04التي تم إنفاقها واحتساب أسعار واجهة برمجة التطبيقات،
00:09:08كانت تكلفة هذا النقل بالكامل ستصل إلى حوالي 160 ألف دولار.
00:09:13هذا رقم مذهل، ولكن في الواقع،
00:09:18إذا فكرت في نطاق هذا المشروع،
00:09:20ونطاقه هو أن BUN كانت تتكون من 535 ألف سطر من كود SIG،
00:09:26إذا فكرت في هذا النطاق
00:09:28وكم سيستغرق البشر من وقت لنقل ذلك إلى Rust،
00:09:32فإن مبلغ 160 ألف دولار قد لا يبدو سيئًا للغاية،
00:09:36اعتمادًا على مكان تواجدك.
00:09:38ومع ذلك، فمن الواضح أنه لا يوجد مشروع مفتوح المصدر
00:09:43سيكون قادرًا على القيام بذلك.
00:09:44ومعظم الشركات ربما لن تكون قادرة
00:09:47أو راغبة في إنفاق هذا المبلغ من المال على عملية نقل.
00:09:50هذا ممكن لأن BUN جزء من Anthropic.
00:09:54وبالطبع، هذه أيضًا حيلة تسويقية لطيفة
00:09:58لشركة Anthropic.
00:09:59قد لا يكون ذلك هو القصد الرئيسي.
00:10:03أنا لا أعرف ذلك.
00:10:04لكن بالطبع، إنه تسويق جيد.
00:10:06كل هذا مهم وضعه في الاعتبار.
00:10:08ومع ذلك، في هذه التدوينة،
00:10:10يمكننا معرفة كيف قام جاريد بعملية النقل تلك
00:10:14أو كيف جعل عملية النقل تلك تنجح.
00:10:18وقد بدأ كل ذلك بملف النقل MD،
00:10:21الذي أنشأه في نقاش مع Claude،
00:10:25في نقاش استمر ثلاث ساعات،
00:10:26كما ذكر في التدوينة،
00:10:28حيث قرر بشكل أساسي بالتعاون مع Claude Code
00:10:32ونماذج Anthropic،
00:10:35كيف ينبغي أن يبدو ملف النقل MD
00:10:37لكي يكون قادرًا على ترجمة SIG إلى كود Rust.
00:10:40ثم بمجرد أن تكرر العمل عليه وكان راضيًا عنه،
00:10:44قام باختباره على ثلاثة ملفات في البداية.
00:10:46وبمجرد أن كان راضيًا عن ذلك،
00:10:48أطلق العنان لـ Claude على قاعدة كود BUN بأكملها.
00:10:53الآن في هذه التدوينة،
00:10:54يوضح أنه لم يكتفِ بطلب من Claude
00:10:57إعادة كتابة BUN بـ Rust، لا تخطئوا،
00:11:00بل إنه أنشأ نظامًا متقنًا
00:11:03حيث كان لديه وكيل رئيسي واحد،
00:11:07يقوم بتشغيل وكلاء فرعيين أيضًا، بالطبع،
00:11:09لإجراء النقل وفقًا لملف النقل MD.
00:11:13ثم كان لديه وكيلان للمراجعة التنافسية
00:11:16قاما بمراجعة عمل ذلك الوكيل الرئيسي بمجرد الانتهاء
00:11:19وتقديم ملاحظات،
00:11:21ثم وكيل إصلاح لتطبيق تلك الملاحظات.
00:11:24وكان كل ذلك يعمل في حلقة
00:11:25وبالطبع موزعًا عبر أشجار عمل متعددة
00:11:30لمعالجة قاعدة الكود بأكملها
00:11:33والعمل من خلالها.
00:11:35في التدوينة،
00:11:35ذكر أنه أعاد كتابة BUN بـ Rust
00:11:38باستخدام 50 سير عمل ديناميكي في Claude Code،
00:11:40وهي سير العمل التي تشغل الكثير من الوكلاء الفرعيين
00:11:43على مدار 11 يومًا.
00:11:46وهو يحتوي أيضًا على مخطط جيد هناك.
00:11:48بشكل عام، في التدوينة،
00:11:49هناك رسومات جيدة هناك
00:11:51تجعل الأمر أسهل قليلًا في الاستيعاب،
00:11:53والتي تظهر عدد الالتزامات (commits) التي تم إنشاؤها
00:11:56ثم دفعها في الأيام المختلفة
00:11:58ثم أوقات اليوم.
00:12:00إذًا حدث كل ذلك بمساعدة الحلقات في Claude Code،
00:12:04بمساعدة الكثير من الوكلاء الفرعيين
00:12:05والعملية الواضحة لوكيل رئيسي واحد،
00:12:08ووكلات المراجعة ووكيل الإصلاح.
00:12:10ثم قام أيضًا بمسار منفصل آخر
00:12:15لجعل كل تلك الاختبارات تعمل، إذا جاز التعبير.
00:12:20وقد جلب ذلك تحدياته الخاصة
00:12:22لأن مجموعة الاختبار كبيرة ومعقدة للغاية
00:12:25لدرجة أنه واجه قيودًا مختلفة في البنية التحتية
00:12:29لأن بعض الاختبارات تستهلك الكثير من الذاكرة
00:12:31وتشغيل العديد من الاختبارات بالتوازي،
00:12:33وبالتالي فهو لا يعمل.
00:12:34لكنه في النهاية جعل كل ذلك يعمل أيضًا بمساعدة الذكاء الاصطناعي،
00:12:39تشغيل الاختبارات، إصلاح الكود،
00:12:42إعادة تشغيل الاختبارات وما إلى ذلك.
00:12:43إذًا الكثير من الحلقات، الكثير من الوكلاء والوكلاء الفرعيين المشاركين،
00:12:47بطبيعة الحال، والكثير من الرموز التي تم استهلاكها.
00:12:49165 ألف دولار من الرموز المستهلكة.
00:12:53مرة أخرى، يمكنك الغوص بشكل أعمق،
00:12:55وهذا ما أوصي بالقيام به
00:12:57إذا كنت مهتمًا بكل التفاصيل الدقيقة.
00:12:59إنها تدوينة رائعة حقًا توثق الرحلة للوصول إلى هناك.
00:13:03لكن هذا باختصار كيف حدث النقل على مدار 11 يومًا
00:13:08مع كل هؤلاء الوكلاء والوكلاء الفرعيين الموزعين عبر سير عمل متعددة،
00:13:1250 سير عمل كهذه، كما تعلمنا على مدار 11 يومًا،
00:13:17تم إنفاق 165 ألف دولار على الرموز بأسعار واجهة برمجة التطبيقات.
00:13:24الآن، أخيرًا، بمجرد انتهائه في التدوينة،
00:13:29ذكر أن Bun 1.4 يصلح العديد من الأخطاء الموجودة في نسخة SICK الأخيرة،
00:13:35وأنه أكثر كفاءة في الذاكرة، وأنه أصغر حجمًا.
00:13:38وكما تعلمنا من رد أندرو كيلي، مبتكر SICK،
00:13:43بعض هذه التحسينات كان من الممكن تحقيقها على الأرجح باستخدام SICK أيضًا.
00:13:47لكن تلك التدوينة مثيرة للاهتمام للغاية لأنها خضعت للتحرير.
00:13:53إنها أقل غضبًا الآن مما كانت عليه في البداية.
00:13:57كانت النسخة الأولى مليئة بالهجمات الشخصية،
00:14:00فقط ليقول بعد ذلك أنها لم تكن مقصودة كـ هجوم شخصي،
00:14:03لكنها كانت مليئة بالهجمات الشخصية.
00:14:05أحدث نسخة، والتي سأضع رابطها أيضًا أدناه، لا تزال قوية جدًا.
00:14:11في النهاية، يمكنك بوضوح أن تعرف من قراءة النسخة الأولى،
00:14:14ولكن أيضًا هذه النسخة،
00:14:16أن أندرو، مبتكر SICK، وجاريد، مبتكر Bun،
00:14:21لن يصبحا أفضل أصدقاء بعد الآن أو مرة أخرى.
00:14:26الآن، هو يشكر Bun لدعمها لـ SICK، ماليًا أيضًا،
00:14:31فقط ليغضب أساسًا من عملية النقل هذه بأكملها وكيف أنها لم تكن ضرورية
00:14:41لو كان كود Bun مكتوبًا بلغة SICK مناسبة.
00:14:44هو يوضح بجلاء أنه لا يشعر بأن مستودع Bun،
00:14:48نسخة SICK، كان يتمتع بجودة كود عالية وأن ذلك أدى إلى العديد من المشاكل.
00:14:53وقد يكون ذلك صحيحًا أو غير صحيح.
00:14:56أعتقد أنه من الممكن تمامًا في مشروع بحجم Bun،
00:15:01التحرك بالسرعة التي يتحرك بها Bun،
00:15:06أن جودة الكود قد لا تكون ترقى لمعايير مبتكر SICK.
00:15:12يمكنك بالتأكيد القول بأن معظم مشاريع الكود
00:15:15لا تتمتع بالضرورة بأعلى جودة كود، على الرغم من ذلك.
00:15:18لذا يمكنك افتراض ما تريد من ذلك.
00:15:21الآن، سأترك الأمر عند هذا الحد.
00:15:24أشعر أن تدوينة الرد الشاملة ضعيفة نوعًا ما
00:15:29لأنها مليئة بالغضب.
00:15:33تحتوي على بعض النقاط الصحيحة.
00:15:35مثل، على سبيل المثال، في التدوينة التي صنعها جاريد،
00:15:40يذكر أن النقل من SICK إلى Rust قد تم التحقق منه،
00:15:46بالطبع، مع كل وكلاء المراجعة هؤلاء،
00:15:48ولكن أيضًا من خلال تشغيل مجموعة الاختبار وجعل ذلك يعمل.
00:15:51ويذكر أندرو بشكل صحيح أنه، بالطبع، تلك المجموعة نفسها من الاختبارات
00:15:56كان ينبغي أو لم يكن ينبغي أن تكون كافية لإثبات أن نسخة SICK رائعة.
00:16:00ربما كان ينبغي تحسين مجموعة الاختبار أيضًا.
00:16:04على أية حال، بالتأكيد لن يصبح هذان أفضل أصدقاء.
00:16:09وليس لدي رأي حول ما إذا كانت SICK أو Rust هي اللغة الأفضل بشكل عام أو لـ Bun.
00:16:17ومع ذلك، أعتقد أنه مع الذكاء الاصطناعي، تعد لغة Rust ونموذج الذاكرة الخاص بها وحقيقة
00:16:23أنك تحصل على أخطاء في وقت التحويل (compile-time) للعديد من المشكلات المتعلقة بالذاكرة ميزة هائلة،
00:16:30خاصة في عصر الذكاء الاصطناعي، لأنه، بالطبع، عملية النقل هذه بأكملها مثيرة للإعجاب حقًا
00:16:38عندما يتعلق الأمر باستخدام الذكاء الاصطناعي.
00:16:41وبالتأكيد، إنها طريقة لاستخدام الذكاء الاصطناعي لن يستطيع معظمنا تحمل تكلفتها
00:16:45أو لن نكون راغبين في تحمل تكلفتها في الشركات.
00:16:48لكن من المثير للإعجاب أن الذكاء الاصطناعي كان قادرًا على القيام بذلك.
00:16:52وهي ليست برمجة عشوائية (Vibe coding) أو مجرد مطالبة عشوائية (YOLO prompting).
00:16:56هناك عملية واضحة وراء كل ذلك.
00:16:59الكثير من التفكير تم وضعه في هذا، وهو ما أوضحته، والذي يصبح واضحًا بالتأكيد أيضًا
00:17:05إذا غصت في التفاصيل التقنية الدقيقة.
00:17:08ولكن مع كل التخطيط، كل التكرار مع الإعداد، مع الطريقة التي تم بها التعامل مع هذا،
00:17:13من الواضح أن هذا لم يكن مجرد مطالبة واحدة ألقيت عليه.
00:17:17ثم سنرى إلى أين سنصل، يظهر هذا ما يمكنك القيام به بالذكاء الاصطناعي.
00:17:21وبالطبع، نقل قاعدة كود من لغة إلى أخرى هو حالة استخدام جيدة للذكاء الاصطناعي.
00:17:27إذا فكرت في الأمر، فإن الذكاء الاصطناعي يمكنه، بالطبع، أن يكافح في كتابة كود جديد.
00:17:32قد لا يكتب الكود الذي أردت كتابته، أو لا يتبع اصطلاحات الكود
00:17:36أو الأنماط التي أردت اتباعها، وقد يفسد الأمور أيضًا.
00:17:40الآن، الذكاء الاصطناعي رائع بالتأكيد لبناء برامج جديدة أيضًا.
00:17:43لكنك تواجه مجموعة مختلفة من المشاكل هناك في عملية النقل.
00:17:47الميزة الهائلة هي أن لديك قاعدة كود للذكاء الاصطناعي لينظر إليها ويترجمها فقط،
00:17:53وهو شيء يمكن للذكاء الاصطناعي القيام به، ولديك مجموعة اختبار هناك.
00:17:57لذا هناك الكثير للبناء عليه.
00:17:59إنها حالة استخدام جيدة للذكاء الاصطناعي، كما يبدو، وكما يثبت هذا النقل بوضوح.
00:18:04وأعتقد أن هذا هو أهم استنتاج هنا.
00:18:08أيضًا أنه يمكنك معالجة المشاريع التي كان من المستحيل
00:18:12معالجتها من قبل.
00:18:13مرة أخرى، ليس للجميع، ولكن لشركات معينة بأحجام معينة.
00:18:18قد يكون هذا مثيرًا للاهتمام.
00:18:19تحديث البرامج القديمة بمساعدة الذكاء الاصطناعي يمكن أو قد يكون حالة استخدام رائعة.
00:18:26وهذا يوضح ويثبت أنه يمكن القيام بذلك.
00:18:30الآن، بالطبع، BUN 1.4 لم يصدر بعد.
00:18:32سنرى ما إذا كان كل شيء سينهار وسيتعين عليهم التراجع في غضون شهر من الآن.
00:18:36لا يمكنك استبعاد ذلك تمامًا، لكنني شخصيًا لا أعتقد أن ذلك سيحدث.
00:18:40يتم استخدامه في الإنتاج من قبل بعض المتبنين الأوائل بالفعل، مثل Cloud Code CLI.
00:18:47لقد تم اختباره ومراجعته على نطاق واسع، على الرغم من ذلك، بالطبع، من قبل الذكاء الاصطناعي، وليس المراجعين البشر.
00:18:54لكنني واثق تمامًا من أن هذا سينجح وأجده إنجازًا مثيرًا للإعجاب للغاية وكذلك استخدامًا مثيرًا للإعجاب للذكاء الاصطناعي.
00:19:03ولكن كما هو الحال دائمًا، أنا مهتم أيضًا بسماع أفكارك حول كل ذلك.