Програмування на Python можна використовувати практично для чого завгодно: для створення вебінтерфейсів, аналізу великих даних, розробки ігор, поєднання частин пакетів програмного забезпечення, написаних іншими мовами програмування, або як потужнішу мову сценаріїв оболонки.

Що стосується зручності Python, його простий синтаксис і структура дають інженерам практично з будь-яким рівнем досвіду змогу дуже швидко почати програмувати на Python на рівні індустрії. Python підтримує кілька парадигм, окрім звичних функціональної та об’єктно-орієнтованої, зокрема структуроване, імперативне та аспектно-орієнтоване програмування.

Rust — це мова системного програмування з відкритим вихідним кодом, у якій особливу увагу приділено швидкості, безпеці пам’яті та паралелізму. На відміну від багатьох мов програмування вищого рівня, Rust не має ані збирання сміття, ані віртуальної машини. Натомість Rust розв’язує відомі проблеми давно перевірених низькорівневих мов програмування, таких як C або C++.

Найкращі бібліотеки Python, на які варто звернути увагу

Pandas

Pandas — це бібліотека з відкритим вихідним кодом, ліцензована за BSD (Berkeley Software Distribution). Ця популярна бібліотека широко використовується в галузі науки про дані. Її застосовують переважно для аналізу даних, обробки, очищення тощо. Pandas дає змогу виконувати прості операції моделювання й аналізу даних, не переходячи на іншу мову, наприклад R. Це одна з найкращих бібліотек Python.

NumPy

NumPy — одна з найпоширеніших бібліотек Python з відкритим вихідним кодом, призначених для наукових обчислень. Вона має вбудовані математичні функції для швидких обчислень і підтримує великі матриці та багатовимірні дані. «Числовий Python» — так розшифровується термін «NumPy». Її можна використовувати в лінійній алгебрі, як багатовимірний контейнер для загальних даних і, серед іншого, як генератор випадкових чисел.

Keras

Keras — це бібліотека нейронних мереж із відкритим вихідним кодом на основі Python, яка дає нам змогу швидко експериментувати з глибокими нейронними мережами. Оскільки глибоке навчання стає дедалі поширенішим, Keras стає чудовим варіантом, адже, за словами творців, це API (інтерфейс прикладного програмування), розроблений для людей, а не для машин. У галузі та дослідницькій спільноті Keras застосовують ширше, ніж TensorFlow або Theano. Це одна з найкращих бібліотек Python.

TensorFlow

TensorFlow — це високопродуктивна бібліотека числових обчислень із відкритим вихідним кодом. Її також використовують в алгоритмах глибокого навчання та машинного навчання. Її створили дослідники команди Google Brain в організації Google AI, і нині її широко використовують дослідники в галузях математики, фізики та машинного навчання для складних математичних обчислень.

Scikit Learn

Scikit Learn — це бібліотека алгоритмів машинного навчання з відкритим вихідним кодом, що працює в середовищі Python. Її можна використовувати як із контрольованим, так і з неконтрольованим навчанням. Бібліотека містить популярні алгоритми, а також пакети NumPy, Matplotlib і SciPy. Найвідоміший приклад використання Scikit Learn — музичні рекомендації у Spotify.

Бібліотеки Rust, на які варто звернути увагу

Serde

Serde — це багатофункціональна й високопродуктивна універсальна бібліотека серіалізації. Насправді, якщо ви знайомі з Java та .NET, не намагайтеся самостійно читати з файлів чи записувати у файли — натомість спочатку опишіть свої типи даних і переконайтеся, що виконуєте всю роботу. А бонусом буде можливість вибрати формат даних (YAML, JSON) уже після того, як усе зроблено. Це одна з найкращих бібліотек для Rust.

Rayon

Rayon — це «бібліотека паралельної обробки даних для Rust»; простіше кажучи, передайте їй дані, і вона сама розіб’є їх на незалежні частини та задіє всі ядра вашого процесора. А ще простіше: передайте їй список, і вона, серед іншого, розпаралелить застосування map до нього. Надзвичайно корисна для інструментів CLI; не всі мови добре справляються з паралелізмом через командний рядок.

Slog

Slog — це дуже повний набір засобів журналювання для Rust. Він складається з ядра та багатьох плагінів, як-от term для виведення в термінал, json для виведення JSON та інших. Варто знати, що є також log, який має стати частиною стандартного Rust і є простішою альтернативою.

Hyper

Hyper — це швидка реалізація HTTP, написана на Rust і для Rust (на відміну від тих, що написані на C і забезпечують продуктивність динамічних мов). Ви побачите Hyper майже в кожній високорівневій бібліотеці, якою користуєтеся, а якщо використовуватимете її безпосередньо, це буде трохи схоже на Netty або Finagle.

PyO3

PyO3 — одна з найпопулярніших бібліотек для створення бібліотек Rust у Python (чи то бібліотек Python у Rust?). Якщо хочете побачити результат такого поєднання, ось hyperjson — бібліотека JSON для Python, яку підтримує serde Rust.