← უკან დაბრუნება
SiTech Team⏱️ 6 წთ. საკითხავი

Bun ტოვებს Zig-ს და გადადის Rust-ზე — Claude Fable 5-მა 11 დღეში 1 მილიონი ხაზი კოდი დაწერა

Bun ტოვებს Zig-ს და გადადის Rust-ზე — Claude Fable 5-მა 11 დღეში 1 მილიონი ხაზი კოდი დაწერა

Jarred Sumner-მა Bun-ის JavaScript რანტაიმი მთლიანად გადაწერა Zig-დან Rust-ზე, Claude Fable 5-ის 64 პარალელური ინსტანციის გამოყენებით. 11 დღეში დაიწერა 1 მილიონზე მეტი ხაზი კოდი, API-ს ბილინგმა $165,000 შეადგინა.

შესავალი: ისტორიული გადაწერა

დეველოპერთა საზოგადოება შოკირებულია — Jarred Sumner-მა, Bun-ის JavaScript რანტაიმის შემქმნელმა, მიიღო გადაწყვეტილება, რომელიც მთლიანად ცვლის პროექტის მომავალს. Bun, რომელიც თავდაპირველად Zig-ზე იყო აგებული, მთლიანად გადაწერილია Rust-ზე. ეს არ არის ჩვეულებრივი რეფაქტორინგი — აქ Claude Fable 5-ის 64 პარალელურმა ინსტანციამ 11 დღეში დაწერა 1 მილიონზე მეტი ხაზი კოდი, რაც ადამიანთა გუნდს დაახლოებით ერთ წელს დასჭირდებოდა.

ეს ამბავი ერთ-ერთი ყველაზე მასშტაბური AI-ასისტირებული კოდის მიგრაციაა, რაც კი ოდესმე განხორციელებულა. ის აჩვენებს, თუ როგორ შეუძლია თანამედროვე ხელოვნურ ინტელექტს მთელი პროგრამული პროექტების გადაწერა დროის მონაკვეთში, რაც აქამდე წარმოუდგენლად ითვლებოდა.

Bun v1.4.0 უკვე ხელმისაწვდომია canary რელიზის სახით. ახალი ვერსია ასწორებს 128 ბაგს და მუშაობს 2-5%-ით უფრო სწრაფად. თუმცა ამ ციფრების მიღმა დგას ბევრად უფრო დიდი ისტორია — როგორ მიიღო ერთმა დეველოპერმა გადაწყვეტილება, რომელმაც შესაძლოა შეცვალოს მთელი ეკოსისტემა.

რატომ Zig? და რატომ წასვლა?

Bun თავდაპირველად Zig-ზე შეიქმნა მიზეზის გამო — Zig გვთავაზობს დაბალდონიან კონტროლს მეხსიერებაზე C-ისგან განსხვავებით, მაგრამ უფრო მარტივი სინტაქსით. Zig-ს არ გააჩნია garbage collector და იდეალური არჩევანი ჩანდა მაღალი ეფექტურობის JavaScript რანტაიმის შესაქმნელად.

თუმცა, როგორც Sumner-მა განმარტა, Zig-თან მუშაობისას მუდმივად ჩნდებოდა მეხსიერების შეცდომები (memory errors) და კრაშები, რომელთა სრულად გამოსწორება ძალიან რთული იყო. ეს არ იყო მხოლოდ ხანდახან წარმოქმნილი პრობლემა — მეხსიერების მართვის ხარვეზები Zig-ში სისტემატურ ხასიათს ატარებდა, რაც Bun-ის სტაბილურობას საფრთხეს უქმნიდა.

ამის საპირისპიროდ, Rust გვთავაზობს ownership მოდელს და borrow checker-ს, რომელიც მეხსიერების შეცდომების დიდ ნაწილს უკვე კომპილაციის დროს აღმოაჩენს. ეს ნიშნავს, რომ ბევრი ისეთი bug, რომელიც Zig-ში მხოლოდ runtime-ში გამოვლინდებოდა, Rust-ში კოდის აკრეფისთანავე ვლინდება.

ეს გადაწყვეტილება განსაკუთრებით საინტერესოა იმ კონტექსტში, რომ Sumner-ის გუნდი Anthropic-მა შეიძინა 2025 წლის დეკემბერში. ანუ, მიუხედავად იმისა, რომ მას ჰქონდა წვდომა Anthropic-ის საუკეთესო AI მოდელებზე, მან მაინც გადაწყვიტა Rust-ზე გადასვლა — ეს იმის ნათელი ნიშანია, რომ Zig-ის პრობლემები ღრმა და ფუნდამენტური იყო.

Claude Fable 5 — 64 ინსტანციის 11-დღიანი მარათონი

პროექტის ყველაზე განსაცვიფრებელი ნაწილი მისი მასშტაბია. Sumner-მა გამოიყენა Anthropic-ის Claude Fable 5-ის pre-release ვერსია. 64 Claude-ის ინსტანცია მუშაობდა პარალელურად 11 დღის განმავლობაში, წერდა კოდს, ახდენდა მის რევიუის და გადაწერდა მთელ Bun-ის კოდბაზას Zig-დან Rust-ზე.

API-ს ბილინგმა შეადგინა დაახლოებით $165,000 — ეს არის სერიოზული თანხა, მაგრამ შედარებისთვის, ადამიანთა გუნდის ერთწლიანი ანაზღაურება მინიმუმ $500,000-ზე მეტი იქნებოდა (და სავარაუდოდ $1-2 მილიონამდეც). AI-ით გადაწერამ არა მხოლოდ დროის 95% დაზოგა, არამედ ფინანსურადაც ბევრად უფრო ეფექტიანი აღმოჩნდა.

ამ ტიპის მასშტაბური AI-ასისტირებული გადაწერა პირველია თავისი სახის — მანამდე AI-ს ძირითადად მცირე ფრაგმენტების დასაწერად ან ბაგების გამოსასწორებლად იყენებდნენ. Bun-ის გადაწერა კი აჩვენებს, რომ AI-ს უკვე შეუძლია მთელი პროექტების სტრუქტურული მიგრაცია ერთ ენაზე მეორეზე.

მიგრაციის ტექნიკური გამოწვევები

Zig-დან Rust-ზე გადასვლა ტექნიკურად რთული პროცესია. მიუხედავად იმისა, რომ ორივე ენა დაბალდონიანია და მეხსიერების მართვის მსგავს მიდგომებს იყენებს, მათ შორის არსებობს ფუნდამენტური განსხვავებები:

  • Memory Model: Zig იყენებს მეხსიერების მართვის უფრო თავისუფალ მოდელს, Rust კი — ownership/borrowing-ს, რაც მნიშვნელოვნად ზრდის უსაფრთხოებას, მაგრამ მეტ ყურადღებას მოითხოვს კოდის წერისას.
  • Ecosystem: Rust-ს აქვს ბევრად უფრო დიდი და მომწიფებული ეკოსისტემა, მათ შორის Cargo (პაკეტების მენეჯერი), crates.io (რეგისტრი) და ინსტრუმენტების ფართო არსენალი.
  • Concurrency: Rust-ის async/await-ის მოდელი უფრო მოწინავეა, რაც განსაკუთრებით მნიშვნელოვანია JavaScript რანტაიმისთვის, რომელიც მუდმივად I/O-ზე მუშაობს.
  • FFI (Foreign Function Interface): Bun-ს სჭირდებოდა JavaScript-ის ძრავთან (ძირითადად WebKit-ის JavaScriptCore) მჭიდრო ინტეგრაცია, რაც FFI-ს მეშვეობით ხდება. Rust-ის FFI ინსტრუმენტები, როგორიცაა bindgen, ამ პროცესს აადვილებს.

Claude Fable 5-ს მოუწია არა მხოლოდ კოდის პირდაპირი თარგმნა Zig-დან Rust-ზე, არამედ იმის უზრუნველყოფაც, რომ Rust-ის იდიომატური პრაქტიკები დაცულიყო, რათა მიღებული კოდი იყოს არა მხოლოდ ფუნქციონალური, არამედ მარტივი შესანარჩუნებლად და განსავითარებლად.

Bun v1.4.0 — 128 ბაგი გამოსწორებული, 2-5% უფრო სწრაფი

ახალი Rust-ზე დაფუძნებული Bun v1.4.0 უკვე ხელმისაწვდომია canary რელიზის სახით. მიუხედავად იმისა, რომ ეს არის სრული გადაწერა, ვერსიის ნომერი განაგრძობს ძველ ნუმერაციას, რაც მიუთითებს იმაზე, რომ API-ს დონეზე ცვლილებები მინიმალურია — მომხმარებლებისთვის ყველაფერი ისე უნდა მუშაობდეს, როგორც ადრე, მაგრამ უფრო სტაბილურად.

128 გამოსწორებული ბაგი მეტყველებს იმაზე, რომ Zig-ის ვერსიაში მეხსიერებასთან დაკავშირებული პრობლემები ნამდვილად სერიოზული იყო. Rust-ის კომპილატორმა ბევრი მათგანი აღმოაჩინა მშენებლობის პროცესში, მაგრამ 128 ბაგი მაინც მოახერხა runtime-ში მოხვედრა — ანუ იმდენად ღრმა იყო პრობლემები, რომ Rust-ის უსაფრთხოების გარანტიებმაც კი ვერ აღმოფხვრა ყველა.

2-5%-იანი შესრულების გაუმჯობესება არ არის დრამატული, მაგრამ გასათვალისწინებელია, რომ ეს არის პირველი Rust ვერსია. როგორც გუნდი Rust-ის ეკოსისტემაში ჩაერთვება და კოდის ოპტიმიზაციას დაიწყებს, სავსებით რეალურია 10-20% ან მეტი შესრულების ზრდა.

რას ნიშნავს ეს ქართველი დეველოპერებისთვის?

Bun-ის ეს გადაწერა რამდენიმე მნიშვნელოვან გაკვეთილს შეიცავს ქართველი დეველოპერებისა და ტექნოლოგიური კომპანიებისთვის:

  • Rust-ის მნიშვნელობა იზრდება: თუ Bun-ის მსგავსი მსხვილი პროექტი გადადის Rust-ზე, ეს ნიშნავს, რომ Rust-ის ცოდნა სულ უფრო ღირებული გახდება ბაზარზე. ქართველი დეველოპერებისთვის Rust-ის სწავლა შესაძლოა იყოს კარიერული ინვესტიცია.
  • AI-ს შეუძლია მასშტაბური მიგრაცია: Claude Fable 5-ის მიერ 11 დღეში 1 მილიონი ხაზის გადაწერა ნიშნავს, რომ AI-ს უკვე შეუძლია მთელი პროექტების მიგრაცია ერთი ენიდან მეორეზე. ეს განსაკუთრებით მნიშვნელოვანია ქართული ბიზნესებისთვის, რომლებსაც legacy კოდბაზები აქვთ.
  • ენის არჩევანი კვლავ კრიტიკულია: Jarred Sumner-ის გადაწყვეტილება აჩვენებს, რომ ენის არჩევანი გრძელვადიან პროექტში გადამწყვეტია. Zig-ის შემთხვევაში, მიუხედავად მისი თეორიული უპირატესობებისა, პრაქტიკულმა გამოცდილებამ აჩვენა მისი შეზღუდვები.
  • Cloud-ზე AI მუშაობა უფრო იაფია, ვიდრე ადამიანური შრომა: $165,000 API-ს ხარჯი შეიძლება დიდი ჩანდეს, მაგრამ ეს მხოლოდ მცირე ნაწილია იმისა, რაც ადამიანთა გუნდი დაჯდებოდა.

გავლენა JavaScript-ის ეკოსისტემაზე

Bun არის ერთ-ერთი ყველაზე პოპულარული თანამედროვე JavaScript რანტაიმი, რომელიც Node.js-ის ნაცვლად გამოიყენება. ის გვთავაზობს ჩაშენებულ package manager-ს (bun install), bundler-ს, test runner-ს და TypeScript-ის მხარდაჭერას — ყველაფერი ერთი ბინარში.

Rust-ზე გადასვლა შესაძლოა ნიშნავდეს, რომ Bun-ის განვითარება დაჩქარდება. Rust-ის უფრო დიდი კონტრიბუტორების საზოგადოება ნიშნავს მეტ შესაძლო კონტრიბუციას, ხოლო Cargo-სა და crates.io-ს ეკოსისტემა ბევრ პრობლემას აგვარებს, რისთვისაც Zig-ში საკუთარი გადაწყვეტილებების შექმნა იყო საჭირო.

ეს ასევე მნიშვნელოვანია Deno-სა და Node.js-ის კონტექსტში — Bun უკვე პოზიციონირებულია, როგორც ყველაზე სწრაფი JavaScript რანტაიმი, ხოლო Rust-ზე მიგრაცია შესაძლოა მის უპირატესობას კიდევ უფრო გაზრდის. Deno, სხვათა შორის, თავიდანვე Rust-სა და Tokio-ზეა აგებული, რაც იმას ნიშნავს, რომ Bun-სა და Deno-ს შორის "იარაღის რბოლა" შესაძლოა გააქტიურდეს.

დასკვნა — AI-სა და ადამიანის თანამშრომლობის ახალი ერა

Bun-ის გადაწერა Zig-დან Rust-ზე Claude Fable 5-ის გამოყენებით არის ისტორიული მომენტი პროგრამული ინჟინერიის ისტორიაში. ეს არ არის მხოლოდ ტექნიკური მიგრაცია — ეს არის დემონსტრაცია იმისა, თუ როგორ შეუძლია AI-ს შეცვალოს მთელი ინდუსტრია.

64 Claude-ის ინსტანციამ, რომელმაც 11 დღეში $165,000-ად გადაწერა 1 მილიონი ხაზი, დაამტკიცა, რომ AI-ს შეუძლია ისეთი ამოცანების შესრულება, რაც აქამდე ექსკლუზიურად ადამიანთა გუნდების პრეროგატივად ითვლებოდა. ეს არ ნიშნავს, რომ დეველოპერები აღარ არიან საჭირო — პირიქით, AI-ს მართვა, ხელმძღვანელობა და კონტროლი კვლავ ადამიანებს ევალებათ. თუმცა, ისეთი ამოცანები, როგორიცაა კოდის ერთი ენიდან მეორეზე გადაწერა, უკვე AI-ის კომპეტენციაში გადადის.

ქართველი დეველოპერებისთვის და ტექნოლოგიური ბიზნესებისთვის, Bun-ის ეს ისტორია არის გაფრთხილება და შესაძლებლობა ერთდროულად. გაფრთხილება — იმისა, რომ ტექნოლოგიური არჩევანი, რომელსაც დღეს ვაკეთებთ, გრძელვადიან გავლენას ახდენს ჩვენს პროდუქტზე. შესაძლებლობა — იმისა, რომ AI-ს ინსტრუმენტები უკვე მზად არიან მასშტაბური ამოცანების შესასრულებლად, რაც ქართულ ბაზარზე კონკურენტუნარიანობის ახალ დონეს ქმნის.