ვფიქრობ ფორუმზე ძალიან ცოტა თემაა ახალ აქტუალურ პროგრამირების ენებზე, სულ ერთი და იგივე განიხილება, ამიტომ გავხსნი Rust-ზე და იმედია მერე შეგვემატება GoLang და ა.შ
რას წარმოადგენს Rust? Rust არის სისტემური პროგრამირების ენა, რომელსაც ქმნის კომპანია Mozilla.
რატომ Rust?1. ენა პოზიციონირდება როგორც C/C++ ანალოგი და პერსპექტივაში მათი ჩამნაცვლებელი
2. Rust არის memory safe, ე.ი როცა მასზე წერთ, იმის შანსი რომ მეხსიერების არასწორი მანიპულაციის გამო თქვენი პროგრამა რანთაიმში დაიქრეშოს არის ძალიან მცირე და შესაძლებელია მხოლოდ unsafe კოდში, ისიც რთულად.
3. Rust არის უფრო თანამედროვე ვიდრე C++, მაგალითად მას გააჩნია ძალიან მძლავრი პაკეტების მენეჯერი Cargo რომელიც ნებისმიერ საჭირო ბიბლიოთეკას ერთი ბრძანებით გადმოწერს/პროექტში ჩააინტეგრირებს, იგივეს გაკეთება C++-ზე ბევრად უფრო რთულია და ასე ვთქვათ ტყნაურს მოითხოვს
4. Rust პოზიციონირდება როგორც C/C++-ზე უფრო სწრაფი ენა (მინიმუმ ამბიცია მაინც აქვს)
ამ ეტაპზე ის LLVM-თი კომპილირდება, ზოგიერთ ტესტებში C++-ს ბევრად სჯობს, C-ს იმდენად ვერა მაგრამ სიტუაცია სულ უფრო უკეთესი ხდება. რა თქმა უნდა გააჩნია რა სახის ტესტებია და როგორი კოდი იწერება ორივე ენაზე.
5. Rust არ იყენებს garbage collector-ს და სადაც C/C++ ეჭიდავება სისწრაფეში, იქ Java/C#-ს და სხვა managed ენებს საერთოდ პირში ახტება
6. Rust-ში არის ყველა საჭირო მძლავრი ფუნქციონალის out of box მხარდაჭერა (ჯენერიქები, ასინქრონული პროგრამირება და ა.შ), იგივე Go-ში მაგალითად ჯენერიკები საერთოდ არ არის
7.
ერთ-ერთი ყველაზე მნიშვნელოვანი ფაქტორი. C++ უკვე იმდენად დიდი და ძველი ენაა, რომ ახალი სტანდარტების მიუხედავად ძალიან ბევრი დაავადება მაინც ვერ გამოასწორეს. 20 წლის წინანდელი design შეცდომები ისევ მოჰყვება, legacy კოდის მხარდაჭერის გამო აშკარად აბლაბუდა ხდება სტანდარტში, ნელა ვითარდება და ა.შ, ბევრი პრობლემაა. Rust ითვალისწინებს ყველა პრობლემას და თავიდანვე დიზაინში დევს ის რომ ეს პრობლემები არ იყოს და სწორი გზით წავიდეს ენის განვითარება.
რაც შეეხება პროგრამირების პარადიგმებს, ცოტა უცნაურია. კლასიკური OOP, inheritance და მსგავსი მექანიზმები არ აქვს. თავისებური სისტემაა და მე ამ პოსტში მოკლედ ვერ დავწერ რა და როგორ, ვისაც დაგაინტერესებთ გადახედეთ, საკმაოდ საინტერესო გამოცდილება იქნება.
Rust-ზე ამ ეტაპზე იწერება უკვე უამრავი პროექტი, მათ შორის
ვებ ფრეიმვორკები/ვებ-საიტებიც კი. მაღალი დატვირთვის მქონე სისტემები და ა.შ
უამრავი დიდი კომპანია წერს უკვე კოდს ამ ენაზე.
Rust შესასწავლად საჭირო რესურსები და სხვა ინფორმაცია1. წიგნი Rust programming language (second edition) -
https://doc.rust-lang.org/book/second-edition/2. IDE - რეკომენდირებულია JetBrains-ის Rust პლაგინი (Intellij Rust) , გადმოსაწერად :
https://intellij-rust.github.io/3. ოფიციალური საიტი :
https://www.rust-lang.org/en-US/ აქ ყველანაირი ინფორმაციაა
4. დიდი კომპანიები რომლებიც უკვე იყენებენ Rust-ს
https://www.rust-lang.org/en-US/friends.html 5. Open-source web ფრეიმვორკი Iron :
https://github.com/iron/iron6. Reddit განყოფილება -
https://www.reddit.com/r/rust/აუცილებლად გაითვალისწინეთ რომ ეს არის ახალი პროგრამრიების ენა და მუდმივად ვითარდება, ჯერ არ არსებობს სტაბილური ეკოსისტემა რომელშიც ათასობით ბიბლიოთეკაა უკვე დაწერილი, თუმცა თანდათან სულ ემატება ეს ყველაფერი. ყოველ 6 კვირაში ახალი რელიზია და ენის გაუმჯობესება მიმდინარეობს.
პირადად მე ძალიან დამაინტერესა და ვაპირებ აქტიურად შევისწავლო Rust, თუ სურვილი გექნებათ და დაიწყებთ, ამ თემაში გავარჩიოთ ყველაფერი და ერთმანეთს დავეხმაროთ.
2016 და 2017 წლის Stackoverflow გამოკითხვებით ეს ენა ხალხს ყველაზე მეტად შეუყვარდა.
მოკლედ ეს იყო FAQ რაც შევძელი და ჩემს მიერ მოძიებული ინფორმაციის მიხედვით დავწერე. ამ კვირაში უკვე აქტიურ სწავლას ვიწყებ თავისუფალ დროს.