Третій випуск навчальної групи з Rust

Усі статті, обговорення, новини для початківців — в одному місці. Підписуйтеся на телеграм-канал!

Привіт, другий випуск навчального потоку з Rust відбувся ще в грудні 2023 року, третій тільки завершив навчання, а зараз відбувається набір у четвертий потік.

Розповім, що таке буткемп та чому варто подаватись на навчання, про результати випуску другого та третього потоку, про важливі новини зі світу Rust, які допоможуть вам вибрати Rust, а також про досягнення української спільноти.

Що таке буткемп та чому варто подаватись на навчання

Bootcamp — це інтенсивний навчальний табір, метою якого є занурення в професію; кожен вивчений матеріал закріплюється практикою.
Є детальніше пояснення українською мовою: «Що таке буткемп: як влаштоване навчання і кому підходить» (час читання: 4 хв.).

Ви можете почати самостійно вивчати Rust та пошукати менторів у телеграм-чаті: «Українська Rust Спільнота» або ж можете записатись на «Rustcamp — Summer 2024», де також будуть ментори.
Навчальна програма розрахована на залученість у 20 годин на тиждень впродовж 4 місяців.
Навіть, якщо ви сумніваєтесь у своїх силах то все одно подавайтесь бо учасникам, які відчували приреченість, все одно вдавалось завершити буткемп та отримати сертифікат, завдяки особистим вольовим якостям та підтримці менторів.

Ще трохи про навчання

Навчання безкоштовне, всі переваги описані в календарі DOU в події «Rustcamp — Summer 2024», реєстрація доступна до 15-го червня.
Про набір в четвертий потік було оголошено ще 15 березня в телеграм-чаті спільноти, за три місяці, цього часу достатньо для підготовки у комфортному темпі, прочитати «Rust Book» та переглянути «Learn Rust Programming».

Результати

Успішним результатом я вважаю працевлаштування, про це писав у попередній статті, але в мене ці дані відсутні, тому порівняємо успішність випусків.
Rustcamp results
Rustcamp certificates

Відгуки випускників другого потоку:

Важливі новини зі світу Rust

Раніше вже писав, чому великі технологічні компанії вибирають Rust, ця тенденція лише посилюється.
По-перше, «Команди з Rust в Google такі ж продуктивні, як і ті, що використовують Go», ця інформація з цьогорічної конференції «Rust Nation UK»
По-друге, Cloudflare переросли Nginx та розробили заміну, власний HTTP proxy, Pingora, який використовує лише третину ресурсів попередньої інфраструктури, щоб обробляти 1 трильйон запитів на день.
По-третє, RustRover — нова IDE від JetBrains для Rust-розробників, а також:
Дуже багато інструментів для веб-розробки вже на Rust, прикладу github.com/vercel/turbo, github.com/rolldown/rolldown.

Досягнення української спільноти

Одна з цілей спільноти — це інтеграція Rust в українські університети, вже вдалось провести курс з вивчення Rust в Києво-Могилянській академії.
Зараз спільнота готується до вже другої конференції з Rust, на попередній, в 2023 році, вдалось задонатити $8230 на ЗСУ.

Епілог

Очікую, що «Rust teams at Google are as productive as ones using Go» значно повпливає на вибір мови програмування для проєктів, а тому практичний досвід з Rust буде суттєвою перевагою для подальшого працевлаштування.
👍ПодобаєтьсяСподобалось10
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Взагалі, судячи зі статистики попереднього опитування Stack Overflow Developer Survey 2023 та бурхливої реакції на ці результати, Rust став великою несподіванкою для (принаймні американського) ІТ-ком’юніті.

ніби Rust кілька років підряд «самий няшний», і внєзапно «велика насподіванка для комюніті»

Не стільки сама мова, скільки % показник використання

Ну тут таке скажімо за TIOBE index www.tiobe.com/tiobe-index RUST 19 хоча це вже перша двадцятка. С та С++ проти котрих він затіявся відповідно друга та третя позиції.
За Stack Overflow survey.stackoverflow.co/2023
C та С++ 7 та 6 позиція, тоді як Rust 10 (хоча дивлячись більша частина з тих хто проходив опитування сайту це frontend з США, Німеччини та Індії).
По PYPL pypl.github.io/PYPL.html Rust десятий С та С++ під загальним рейтингом (що як на мене вірно, більшість програмістів які працюють із технологією знаються на обох мовах) — п’яті.
В DOU dou.ua/...​les/language-rating-2024 Rust взагалі 0.5%

Десь пару рочків тому бачив, що індуси активно пропонували Rust на проектах повʼязаних з точками доступу, Edge девайсами та тому подібне.... але дійсно C++ там рулить, тим паче що нові версії вже полікували більшість проблем

У мови насправді той самий сет проблем, що і у скажімо D. А так тут скажімо от зібрали порівняння youtu.be/LZflL44SVVY?t=913

можеш написати, той самий сет проблем?

Проблема перша — галузь застосування. Мови які зроблені «замість С++» і при цьому не мають зворотної сумісності не з С не з існуючим кодом на С++ мають ключову проблему з трудомісткістю написання ПЗ. Це далеко не скажімо PHP який свого часу було зроблено буквально на коліні і нашвидкоруч, але технологія потрапила у точку потреб галузі — розробку web додатків. Проблема друга — мало документації та навчальних матеріалів, відносно С та С++. Відносно молоді мови — тобто і погано відомі головні проблеми, відповідно просто ще не відомо що треба додати в санітайзер і оптимізація коду компіляторами теж не розвивається з 70-х років минулого сторіччя. Потім — засоби розробки, в Rust тут в цілому діло доволі добре, усе зроблено відносно сучасно. З іншого боку для С та С++ ці питання також є відносно вирішеними, щоправда калейдоскопом технологій скажімо пакетних менеджерів відомих одразу два vcpkg та Conan, на відміну від єдиного Cargo. Далі — такі мови не вводять жодної нової парадигми, сенс яких був би у суттєвому зменшені трудомісткості програмування скажімо Rust не додає до С ООП з Simula 67 як це робив С++ Усе, що толком надають як Rust так і D — це певним чином чимось інший синтаксис, та автоматичне керування пам’яттю,через контроль часом життя об’єктів за допомогою компілятора під час компіляції та збору сміття відповідно. Та справа якраз в тому — що автоматичне керування пам’яттю це як плюс особливо для розробки прикладного софту, так і мінус особливо для системного софту. І четверте і не існує і не існуватиме мов які захищають від помилок програмування і не ефективного програмування, не базі існуючих парадигм. Умовно в цілому не можливо зробити «кращій Algol 68», вийде просто ще одна імперативна мова. Якщо програміст пише не той алгоритм, що відповідає бізнес лозіці, або реалізує якийсь не ефективний алгоритм — ніякий Go lang, Rust, D тощо цьому не допоможе жодним чином. Тобто для зменшення трудомісткості програмування потрібен перехід на інші рівні абстракцій, умовно оперувати не окремими класами та об’єктами — а тим що зараз називають промптами.

от тому D не взелтів, але при чому тут Rust який досить таки взлетів?

У Nestscape/Mozilla значно кращій маркетинг за Digital Mars. Це треба визнати. Як і скажімо із Go lang якщо би його випустили скажімо IBM або Oracle він би мало кому був би цікавим. А якщо Microsoft — то мова би мала популярність на рівні C# та TypeScript. А от коли Google, в яких історично бізнес не пов’язаний із засобами розробки, вони роблять продукти для кінцевого споживача — то рівень той який є.
Власне народ із JetBrains про це так і написав, розкрутка мови програмування не має різниці від розкрутки будь якого іншого програмного продукту, це маркетинг в першу чергу. Власне тому їх Kotlin зараз зайняв долю ринку більшу за Rust.

допустим, в тому відео все вірно, і маркетинг в Мозілли на рівні, тільки вакансій на Rust на порядки більше чим вакансій на D
якщо порівнювати в такому ракурсі то не з D а з Go
І до чого тут Kotln, в нього інша ніша? Чому не Флуттер/Дарт?
Або чому не Паскаль/Дельфі?

Pascal/Object Pascal — томущо фірма Borland перестала існувати, зусиллями Microsoft, а конкретно переманили усіх ключових розробників. Як не дивно усе ще існує та випускається, також є lazarus та freepadcal, та вже із мізерною долею ринку. Порівняння з Go lang в цілому напевно релевантне. Тут на Dou співавтор мови Кен Томпсон вже написав, що лише пошуковик Google має десять мільйонів строк коду на С++, тому нема сенсу робити мову яка замінює С++ — краще покращити сам С++ (те що хоче Google — зламати ABI комітет, по факту Microsoft, просто блокує, хоч як на мене його усе таки доведеться одного разу зламати. Та для Microsoft це буде обрив ліній із сапорту коли це зробити одразу — а не поступово ). Мова має мати комерційну нішу, як той Swift наприклад.
Технічно на котлін Kotlin як і на Java можна робити усе те саме, що і на Go lang. У разі потреби можна через той же Graal так само одразу скомпілювати усе в бінарники, або по принципу .NET замість Jit перетворити увесь байткод на нативний код, при чому оптимізований під той процесор на якому запускається софт, а не під універсальний набір інструкцій як це робиться скажімо із С/С++, Rust та Go. Власне у випадку із Android так воно і є.
Вакансій на Kotlin особливо під Android в рази більше ніж на Go lang. Це якраз показник маркетингу (Топці привіт).
Як я вже писав жодна з цих мов насправді не є «поганою», є свої недоліки є свої переваги — принципово це усе імперативні об’єктно орієнтовні мови, з приблизно однаковою трудомісткістю програмування, та науковим підходом до розробки (потрібно тестування).

Наразі мені зрозуміло, що нічого не зрозуміло.
То Rust такий як D тому без перспектив, далі про про байт код (так Rust вміє у web assebly). Залишилося згадати закон Мура, і що нафіг паритися над ресурсо ощадним софтом, якщо можна збільшити HW буквально за рік в квадратичні залежності, сотні нєфті поки що дозволяють

Так зараз мало не усі вміють у webasm.
Kolin вміє kotlinlang.org/docs/wasm-overview.html
TypeScipt вміє www.assemblyscript.org
Go lang dou.ua/forums/topic/39860
Java вміє teavm.orgwiki.dlang.org/...​ting_WebAssembly_with_LDC
Але нормою є Еmscripten emscripten.org та С/C++ томущо здебільшого йдеться про GameDev.
Ясно, що справа йдеться про бізнес, в тому числі для курсорділів.
А тут усе просто, рівня Junior зараз вакансій на : Rust та Go lang, тобто там де низька конкуренція серед самих курсоділів — практично нема. Це так би мовити мови для сініорів. Тобто самим курсоділам в боротьбі за клієнта треба йти в якість, кращій маркетинг, інші бізнес моделі з розряду оплата з проценту від зарплатні наступні три роки і тому подібне. Однією єдиною новомодною мовою і ляп-ляп за три місяці вже не пройде, прийдеться давати комплексну програму та вже йти до рівнів навчальних закладів де той самий Rust може бути одним з курсів, з плюсом в бази даних, операційних систем, алгоритмів та програм тощо.

Звідки беруться сенйори, якщо нема вакансій джунів?
Go мова сійнорів? Рилі?

Світчатся з інших мов, наприклад PHP.

Go мова сійнорів

Без досвіду 0 вакансій Go lang jobs.dou.ua/first-job/?from=exp
5+ років jobs.dou.ua/...​category=Golang&exp=5plus 23 Вакансії (на загал було 300 000 IT-шників). Згоден це певним чином хвороба усіє індустрії, як в нас так і скажімо в США. Менеджери не хочуть ризикувати по максимуму і там де є щось таке нове, віддають перевагу досвідченим людям. І цим певні ушлі користуються, коли хтось стартує проект на Go то робить це якраз, щоб його потім фіг можна було кимось дешевшим замінити, тими же джуніорами з курсів. А не рвати дупу лише би тебе не звільнили, як це зараз у frontend де по півтисяча відгуків на одну вакансію і це тільки в Україні, а конкуренція в усьому світі і проти Індії — Україна крапля в морі. Про старі методи конкуренції, де до вміння швидко вчити мови та технології за рахунок фундаментальних знань — ми забули на мою думку десь року із 15-го, та пішли в гоблинізм.

До чого тут гоблінізм? Чи ти про зелену паросль, ну да, там клініка

Дуже цікаво в яких реальних проектах ця мова класно себе проявляє?

З того що я бачу по вакансіях там один блокчейн та смартконтракти

Найвідоміший FireFox. Насправді мова хоч і цікава делеко не така вже і проста у використанні. Приблизно те саме як увімкнути в C/С++ усі рівні варнінгів які тільки є, і ще заодно натравити cppckeck та ще щонебудь. Десь воно дуже добре, а десь воно лізе туди куди не треба. І сказати компілятору «шановний я тут чудово знаю, що роблю і в мене є тести, руки геть» не можна кине помилку і далі не пустить. Тобто якусь вже зовсім низькорівневу штуку пиши на С та під’єднуй.
Ну і з рештою таке, вирішив написати десктопний хелоу ворд, так щоб кросс-платформено по типу : QT, GTK, FLTK чи wxWidgets. Узяв GTK і от вжє тривіальний хеллоу ворлд, для вінди не працює. Хочеш Python з wxWidgets, або С++ працює. Java — що Swing, що GWT, що Java FX — працює.

Dropbox has a thriving community of developers building Rust into our products. Rust is at the heart of our desktop client’s recently re-written sync engine, which is what makes the Dropbox folder on your computer work like magic. We also use it for file compression, in our crash reporting infrastructure, and in Magic Pocket—our exabyte scale custom storage infrastructure—to optimize the storage of file data.

dropbox.tech/...​-rust-library-for-capture

Почему автор топика работает как Go developer, а не как Rust developer?

мабуть тому що rust вакансії поки що хіба для криптошіткойн старапів

Вдень працюю з Go, а вночі з Rust

Треба ж якось Go та Rust зв’язувати

Треба ж якось Go та Rust зв’язувати

Так вдень, через github.com/...​mediremi/rust-plus-golang
А вночі те саме, але з lua

Як зрозуміти найперший графік? Зі 100% відсотків поданих заявок зарахували усі 100% кандидатів? Якщо ні то нащо він?

Поданих заявок більше за число зарахованих
Перші 100% то для наглядності

Успішним результатом я вважаю працевлаштування, про це писав у попередній статті, але в мене ці дані відсутні

Але це самий головний показник.

Статистики по працевлаштуванню я не дам зараз, але на скільки мені відомо, що серед випускників є лише декілька непрацевлаштованих ( за власним бажанням ) індивіда. Переважна більшість знаходять роботу ще до завершення Расткемпу.

а на який тип проектів растистів взагалі беруть? по расту мало вакансій, на скільки я можу судити

Гадаю це може бути Embedded, зараз буде дуже популярно у зв’язку з ШІ та коптерами

З Rust у ембеддеді експериментують або заради фану в пет-проектах, або корпорації калібру Google/Cisco/Amazon для переписування великих підсистем з нуля під себе. Більш хардварні компанії типу автомотіву на Rust переходити не поспішають, виробники мікроконтролерів і SoC свої BSP релізять на C і С++, в основні дистрибутиви лінуксу модулі ядра написані на расті не заходять.
Можливо у майбутньому ситуація зміниться, але поки що є сумніви, більш імовірно що Rust займе нішу middleware, типу переписування частини демонів Android:
security.googleblog.com/...​guages-in-android-13.html

навіщо переписувати те що працює? нема більше куда бабло всунути? який вихлоп? кому це потрібно? скоріше повірю в ШІ на Rust на ембедедед, чим переписування Коболу

Так не переписувати:

As we noted in the original announcement, our goal is not to convert existing C/C++ to Rust, but rather to shift development of new code to memory safe languages over time. In Android 13, about 21% of all new native code (C/C++/Rust) is in Rust."

скільки того нового натіве коду у % від старого?

А це не важливо. Якщо у них план — збільшувати відсоток расту в кожному наступному релізі, то рано чи пізно весь старий код буде замінено. Просто тому, що застарілі модулі будуть вибувати і замінюватися новими.

Підписатись на коментарі