У 2000-х роках застосунок для обміну повідомленнями ejabberd привернув багатьох IT-фахівців до мови програмування Erlang. Одну з перших версій свого чату Facebook побудував саме на ejabberd.
Тоді програміст Сергій Костюшкін теж захопився Erlang. Сьогодні він очолює напрям Erlang-розробки в BetInvest. Вона робить платформу для букмекерської компанії Favbet.
У партнерському матеріалі з Favbet Сергій розповів MC.today про те, у чому Erlang перевершує інші мови, як її вивчити і заробляти більше ніж $6 тис. на місяць.
Як я став Erlang-євангелістом
Комп’ютери і програмування зацікавили мене ще у школі. Я закінчив технікум у Дніпрі, поступив на вечірнє відділення у виш і паралельно займався своїм стартапом – районним інтернет-провайдером. Тоді я багато думав про технології і мало про прибуток, тому стартап не вигорів. Зате я отримав досвід програмування на Bash, Ruby, Perl.
Сергій Костюшкін
Коли я працював в аутсорсингової компанії, мені хотілося добитися максимальної особистої ефективності. Я хотів знайти таку мову, якою одним рядком коду можна написати те, що зазвичай займає десять, щоб передавати свої думки лаконічно.
Одного разу я дізнався про «проблему 10 тисяч з’єднань». Це коли комп’ютер, що в теорії може обслужити 500 тис. з’єднань, насправді витримує всього 10 тис.
Одним з небагатьох застосунків, шо розв’язували цю проблему, був jabber-сервер ejabberd. І він був написаний на Erlang. ejabberd 2001 року почав розробляти українець Олексій Щепин.
Я вивчив основи Erlang за прикладами коду на офіційному сайті мови. Без книг і посібників опанував мову на 30%. 2009 року вийшов перший посібник творця мови Джона Армстронга Programming Erlang. З його допомогою вивчив інші 70%.
Першим місцем роботи з Erlang для мене став «ПриватБанк». Там на початку 2010-х теж зіткнулися з «проблемою 10 тисяч з’єднань», коли розробляли чат для клієнтів «Приват24». Побачили, як легко з проблемою впорався ejabberd, і вирішили використовувати Erlang в інших проєктах.
Коли я відгукнувся на вакансію «ПриватБанку», був упевнений, що в компанії багато крутих ерлангістів. Але виявилося, що я став першим, кого взяли на позицію Erlang-розробника.
Я зрозумів, що цієї мови потрібно навчати інших. Подумав, що в рідному Дніпрі – місті, де робили космічні ракети, – має бути сильна школа програмування. Попервах ідею Erlang-курсів у «ПриватБанку» не підтримали. Але я зняв офіс сам і почав вести безкоштовні уроки. У результаті за десять років курси закінчили понад 500 осіб.
Сергій Костюшкін
Викладання зробило мене відомим, і я отримав запрошення провести курси в BetInvest. А за два з половиною роки мені запропонували очолити напрям Erlang-розробки.
Навіщо Erlang потрібен букмекерській компанії
У 2000-х Favbet був невеликою букмекерської компанією, що працювала із клієнтами тільки через каси. А на початку 2010-х вона почала розробляти онлайн-платформу.
Спочатку платформа була написана мовою PHP. А коли навантаження стали зростати, команда перейшла на Erlang. Ми знали, що в популярної британської компанії Bet-365 найбільші навантаження серед букмекерів. І вона переписала свою платформу на Erlang. BetInvest зробили так само.
Завдяки Erlang букмекерська платформа, яку розробили в BetInvest, може обслуговувати в рази більше користувачів, ніж конкуренти, на однаковому числі серверів. Це працює і навпаки: при однаковому з конкурентами числі користувачів платформі потрібно менше серверів. А ще потрібно менше інженерів, щоб обслуговувати платформу.
Платформа Favbet складається з різних сервісів, що працюють як одне ціле. Один з найбільш завантажених сервісів – система обліку грошей клієнтів. Люди вносять гроші на особисті рахунки, роблять з них ставки. І система повинна вести облік коштів на рахунку кожної людини.
Цей сервіс витримує навантаження в кілька тисяч операцій на секунду. А розробляють і підтримують його всього п’ять ерлангістів.
Сергій Баснін, лідер однієї з команд ерлангістів BetInvest
2019 року я закінчив курс Сергія Костюшкіна і прийшов у компанію. Керівник відразу направив мене в команду, яка займалася сервісом для обробки платежів.
Через пів року її лідер перейшов на іншу роль і місце запропонували мені, тому що я був у курсі всіх проєктів команди. Так швидко я обійняв посаду тимліда.
Сергій Баснін
Цікаві властивості Erlang
- Процеси Erlang вміють «спілкуватися» один з одним. Якщо щось «полетить», один процес повідомить іншому: «Я зламався». І тоді інші процеси перезапустять його. Розробник може вносити зміни у програму, не відключаючи користувачів. Вони навіть не помітять збій у системі.
- Захищає системні дані від злому. Проблеми з безпекою найчастіше виникають у тих мовах, де програмісти працюють з оперативною пам’яттю безпосередньо. Наприклад, у C, C ++, Java. В Erlang є віртуальна машина (віртуальний комп’ютер, що працює всередині іншого комп’ютера. – Прим. ред.), і вона бере цю роботу на себе. Тому Erlang-розробник не працює з оперативкою. І у зловмисника до неї теж немає доступу, а отже, немає доступу до даних.
Що в Erlang може здивувати
- Синтаксис дуже відрізняється від синтаксису інших мов. Він не схожий на синтаксис Java, Python або Ruby. У цих мовах операції, які потрібно виконувати багато разів, зациклюються. В Erlang замість цього потрібно написати маленьку програму, що запускає сама себе. Це називається рекурсією, і новачкам вона дається важко.
- Це мова тільки для backend-розробки (внутрішня архітектура програми, яка прихована від користувача. – Прим. ред.). Це означає, що результат роботи не видно на екрані: це не кнопки, не меню.
- Не підходить для складних математичних обчислень. Математика в цій мові працює повільніше, ніж в інших мовах. Тому Erlang – не найкращий варіант для криптографії: блокчейну, майнінгу криптовалют.
Мова, про яку мало хто знає
Erlang усе ще рідкісна мова програмування, хоча їй більше ніж 30 років. Її створили в 80-х роках у компанії Ericsson спеціально для телекому. У 2010-х роках вона пережила нове народження: тоді її почали використовувати великі компанії, такі як Facebook і WhatsApp.
Сьогодні мовою Erlang пишуть месенджери, чати, у тому числі в комп’ютерних іграх, стримінгові сервіси (сервіси потокової відеотрансляції. – Прим. ред.), банківські сервіси та сервіси для букмекерських компаній.
Erlang-розробників в Україні небагато – десь 300 фахівців. Тому їм важливо ділитися досвідом роботи з рідкісним мовою. BetInvest підтримує незалежне співтовариство ерлангістів, влаштовує для них професійні зустрічі.
В української спільноти ерлангістів є Telegram-канал. У ньому новачки можуть поставити запитання досвідченим розробникам.
Де можна вивчити Erlang
Зараз опанувати Erlang простіше, ніж 13 років тому: є підручники, онлайн-курси. Але, на мій погляд, краще вивчати її в аудиторії з викладачем. Так швидше розберетеся зі складнощами.
Курси з Erlang я веду досьогодні, але зараз тільки для компанії BetInvest. Ми плануємо поекспериментувати з форматом: людина зможе приходити в офіс BetInvest, отримувати відеолекції, домашні завдання, віддавати їх на перевірку і ставити уточнювальні запитання. Найкращих компанія братиме на роботу.
Яна Рибальченко, Erlang-розробниця в BetInvest
Яна Рибальченко
Колись я використовувала мови програмування як гімнастику для мозку. Я працювала DevOps-інженеркою – встановлювала та налаштовувала застосунки на серверах. Вправи у програмуванні на рідкісних мовах не допомагали в робочих обов’язках. Зате допомогли усвідомити, що мені хочеться змінити професію з DevOps на розробницю.
Чоловік-ерлангіст порадив вивчити Erlang, і я записалася на курси Костюшкіна. Жінці, яка тільки починає кар’єру розробника, важко отримати роботу. А після курсів можна було претендувати на місце розробниці в BetInvest. Досвід у DevOps мені допоміг: я вже знала, як влаштована внутрішня, невидима користувачеві, частина інтернет-магазину, а зараз сама розробляю цю частину.
Скільки може заробляти ерлангіст
В Україні ерлангісти заробляють до $6,5 тис. Фахівці з досвідом від п’яти років в інших країнах отримують до $10 тис. Вакансій на DOU, Djinni, Work.ua не так вже й багато, але хорошого Erlang-розробника робота знайде сама. А шукати, швидше за все, будуть у LinkedIn.
Я бачу перевагу в тому, що ерлангістов не дуже багато. Людей, які пишуть на популярних мовах, наприклад Java, більше, ніж вакансій. А за ерлангістів компанії змушені боротися. До того ж, знаючи рідкісну мову програмування, можна швидко просунутися кар’єрними сходами.
Світлини: Олександр Козаченко, Марина Оверчук
УЧАСТЬ В АЗАРТНИХ ІГРАХ МОЖЕ ВИКЛИКАТИ ІГРОВУ ЗАЛЕЖНІСТЬ. ДОТРИМУЙТЕСЯ ПРАВИЛ (ПРИНЦИПІВ) ВІДПОВІДАЛЬНОЇ ГРИ.
Ліцензія на провадження діяльності з організації та проведення азартних ігор казино в мережі Інтернет від 20.04.2021 року, видана ТОВ «БК “ФАВБЕТ”» на підставі Рішення КРАІЛ від 05.04.2021 року за №137 із змінами та Ліцензія на провадження діяльності з організації та проведення букмекерської діяльності від 28.12.2022 року, видана ТОВ «БК “ФАВБЕТ”» на підставі Рішення КРАІЛ від 13.12.2022 року за №433.
Повідомити про помилку
Текст, який буде надіслано нашим редакторам: