უკან დაბრუნება
რატომ დაკარგა NeoVim-მა კომპიუტერული მეცნიერის ნდობა vim-ის undo ისტორიის წაშლის გამო
SiTech AI Team2 წთ. საკითხავი

რატომ დაკარგა NeoVim-მა კომპიუტერული მეცნიერის ნდობა vim-ის undo ისტორიის წაშლის გამო

Marcin Wichary-ის ბლოგ Unsung-მა 28 აგვისტოს გამოაქვეყნა პოსტი, რომელიც კომპიუტერული მეცნიერის David Chisnall-ის Mastodon შეტყობინებას ეყრდნობა: როგორ წაშალა NeoVim-მა vim-ის undo ისტორია და რატომ დასრულდა ეს ნდობის დაკარგვით.

28 აგვისტოს, Marcin Wichary-მა ბლოგ Unsung-ზე გამოაქვეყნა პოსტი, რომელიც თითქმის მთლიანად კომპიუტერული მეცნიერის David Chisnall-ის Mastodon შეტყობინებას ეყრდნობა. პოსტის თემა vim-ის მუდმივი undo და ისაა, თუ რა ვალი აქვს პროგრამას მომხმარებლის მონაცემების წინაშე; სათაურიც მისივე ფრაზაა: „მათ წარმოდგენა არ ჰქონდათ, რომ მომხმარებლების მიმართ ზრუნვის ვალდებულება არსებობს“.

Chisnall-ის თქმით, vim-ს დაახლოებით 2000 წლიდან იყენებს და ამ რედაქტორით ხუთი წიგნი, სადოქტორო დისერტაცია, რამდენიმე ათეული ნაშრომი და 150-ზე მეტი სტატია დაწერა. ჩვეული ბრძანებები ისე ავტომატურად სრულდება, რომ ფიქრს აღარ საჭიროებს; სხვა პროგრამით დაწერილ დოკუმენტებში კი შუაში შემთხვევით ჩარჩენილი vim-ის ბრძანებები რჩება.

რისგან იცავს მუდმივი undo

მუდმივი undo (persistent undo) Chisnall-ის ერთ-ერთი საყვარელი ფუნქციაა. ხშირად არ სჭირდება, მაგრამ როცა სჭირდება, შეუცვლელია: მაგალითად, ფაილიდან წაშლილი რაღაცის დაბრუნება, თუნდაც „გასულ კვირას და ერთი გადატვირთვის წინ“ წაშლილი, ან კომიტამდე კოდის გაფუჭების მიზეზის გარკვევა. vim ამას ვერსიების განახლებების მიუხედავად უკვე დაახლოებით 20 წელია ინარჩუნებს: თუნდაც კომპიუტერი ჩავარდეს ან ფაილი ექვსი თვის შემდეგ გაიხსნას, undo-ს ისტორია ადგილზეა. ამას Chisnall Raskin-ის პირველი კანონის ნაწილად თვლის.

რა მოხდა NeoVim-თან

NeoVim vim-ის განშტოებაა. Chisnall-მა ის ახლად გამოსული სცადა, პირველივე, რაც შენიშნა, undo-ს უმუშევრობა იყო, ფაილის vim-ში გახსნამაც ვერ უშველა. NeoVim-ს undo-ს ფაილების ფორმატი შეეცვალა: ძველი ფაილი არ განუახლებია და საკუთარს ახალი სახელი არც მიუცია, უბრალოდ წაშალა არსებული vim-ის undo ფაილი მთელი შიგთავსით და ჩაანაცვლა ფაილით, რომლის წაკითხვაც vim-ს აღარ შეეძლო.

issue-ს გახსნის შემდეგ მას უთხრეს, რომ persistent undo-ს ფორმატი არასტაბილურია: მომხმარებლებმა მონაცემების შენარჩუნებას იმ ფუნქციისგან არ უნდა მოელოდნენ, რომელსაც პირდაპირ „მუდმივი“ ჰქვია; ფორმატი ერთხელ უკვე შეიცვალა და ალბათ კიდევ შეიცვლება. ამით დასრულდა მისი გამოცდილება NeoVim-თან. „ავტორებმა მაშინვე აჩვენეს, რომ ჩემი მონაცემების ნდობა არ შეიძლებოდა“, წერს Chisnall და დასძენს, რომ undo-ს გატეხვას შეცდომად აპატიებდა, მაგრამ არა იმ დამოკიდებულებას, როცა მომხმარებლის ფაილი თავისუფლად იშლება.

Raskin-ის სამი კანონი

Wichary შეტყობინებას თითქმის სრულად ციტირებს: ადამიანებს ახსოვთ მომენტები, როცა პროგრამამ მათი შრომა დაკარგა ან მათ უპატივცემულოდ მოექცა, ფრაზა „ერთხელ შეიცვალა და ალბათ კიდევ შეიცვლება“ კი ხსნის, რატომ არის დაკარგული ნდობის აღდგენა ძნელი. პოსტმა Unsung-ზე პირველად შემოიტანა Jef Raskin-ის სამი კანონი 2000 წლის წიგნიდან The Humane Interface: კომპიუტერმა შენი ნაშრომი არ უნდა დააზიანოს ან უმოქმედობით დაუშვას მისი დაზიანება; არ უნდა დახარჯოს შენი დრო ან მოითხოვოს ზედმეტი შრომა; ინტერფეისი ჰუმანურია, თუ ადამიანის საჭიროებებზე რეაგირებს და მის სისუსტეებს ითვალისწინებს. Wichary-სთვის ეს წიგნი დიზაინერობისას განმსაზღვრელი აღმოჩნდა.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.