Навіщо нам потрібен Rust?

    Rust — системний мова програмування, який виконується чертовски швидко, запобігає майже всі падіння, а також усуває невизначеності спільного доступу до даних. Він розробляється Mozilla як інструмент для створення оглядача нового покоління — Servo .
 
 
Пункти дотику
Дане визначення мови здається казкою, бо доступні нам перш інструменти завжди балансували між швидкістю і надійністю. З одного боку — С + +, в якому величезні можливості і швидкість компенсуються постійними помилками доступу поза виділеної пам'яті, до віддаленої пам'яті, або несподівані результати читання даних, які в цей час пише інший потік. З іншого боку є Haskell, такий собі мову-фортеця (за принципом «раз воно компілюється, значить працює»), хоч і не який може похвалитися швидкістю. Десь посередині балансують Java, Python, C # і інші популярні (в силу своєї практичності) мови. Rust ж для мене виступає вдалим схрещенням кращих властивостей С + + і Haskell, при цьому зберігаючи практичність на рівні конкурентів.
 
Що об'єднує Rust з С + +:
 
     
  • Ви не платите за те, що не використовуєте. Краса коду не вимагає жертв продуктивності.
  •  
  • Передбачуване виділення і звільнення пам'яті (RAII ).
  •  
  • мультипарадигмальной, нехай і з невеликим ухилом в функціоналки.
  •  
  • Співжиття з написаними на С / C + + бібліотеками: можливість викликати З код і бути викликаним.
  •  
  • Мінімальні вимоги до середовища (runtime), можливість написати код будь-якого рівня і масштабу.
  •  
Що спільного з Haskell:
  
 
Через терни до зірок
Вся магія Rust стає можливою завдяки знанню компілятором про те, хто володіє певною сутністю (owner), хто лише тимчасово позичає її (mutable borrow), а хто просто прийшов подивитися (immutable borrow). Програмуючи на С + + або Java, Ви все одно тримайте в голові цю інформацію, нехай і в дещо іншому вигляді. У Rust це виражається мовними конструкціями, що дозволяє компілятору перевірити правильність Вашої моделі, а також гарантувати її безпроблемне виконання. Для такого програмування потрібно трохи інший підхід, ніж ми звикли. Спробую пройтися по основних моментах, які можуть занести Вас в ступор при початковому вивченні:
 
1. Ні спадкування, зате є структури і здібності (traits ).
2. Покажчики є тільки в незахищеному коді (unsafe {} ). Замість них у безпечному коді є посилання, які гарантовано вказують на існуючі об'єкти.
3. Якщо у Вас неизменяемая посилання на щось (immutable borrow = & Object ), то ніхто не може змінити значення, поки посилання жива.
4. Якщо у Вас змінна посилання (mutable borrow = & mut Object ), то ніхто інший не може читати вміст об'єкта, поки посилання жива.
5. Розробники мови воліють Mac і * nix, так що для роботи під Windows потрібна GNU середу .
 
У Rust дуже веселе і активна спільнота, Вам завжди будуть раді на каналі IRC і в Reddit . Вже написано пристойну кількість всякого добра , багато з проектів активно розвиваються на GitHub . Особливою популярністю мову користується у розробників ігор та графіки . Є зачатки операційних систем . У перспективі також маячить можливість виконання на веб-серверах і клієнтах . Rust підходить для будь-яких завдань!
 
Єдина на сьогодні, мабуть, серйозна проблема мови — це його бурхливий розвиток. Від версії до версії може змінюватися синтаксис, часом доводиться переосмислювати логіку, підлаштовуючись під нові можливості мови. Така ситуація триватиме ще якийсь час в цьому році, поки не з'явиться Rust-1.0. А тим часом журнал Rust 'n Stuffs у щотижневій рубриці This Week in Rust сповіщає нас про всі минулі і підготовлювані зміни, про нові статтях і перспективних проектах.
 
 
Трохи про мене
Скоро буде вже 2 роки, як я перейшов на Rust, залишивши позаду Boo, Dart, Haskell і, звичайно, С + +. Першим проектом була гра , яку вирішив відкласти до виходу стабільної версії мови. Зараз активно працюю над rust-compress і своїм компресором даних. Вірю у світле майбутнє Rust і запрошую всіх взяти участь!
 
 
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.