Потенциал swift в backend
Считаю, что swift будет набирать обороты в backend, т. к. он нашел свою нишу и разрешил компромисс в выборе между хардкором (rust/c++) и казуалом (go/c#).
1) Все эти языки строго типизированные, экономичные по вычислительным ресурсам, и быстрые. Swift тоже.
2) Кроссплатформенность. Хоть swift её получил не сразу, но сейчас это факт и production ready.
3) Отсутствие сборщика мусора. В режиме highload go/c# могут увеличивать непредсказуемо задержку ответа, т. к. сборщик мусора не успевает вовремя очищать, и куча временно нарастает как снежный ком, и приложение дает фризы. Поэтому критическую инфраструктуру, где задержки болезнены либо сразу пишут на языке без сборщика мусора либо переписывют на него. И swift тут выигрывает вместе с c++ и rust.
4) Легкость написания кода. На swift писать в разы проще чем на c и rust, практически не теряя в производительности самого языка. Go и c# тоже любят за это, но учитывая пункт 3, они проигрывают. Также в swift меньше нужно думать над памятью, чем в c и rust.
5) От простого к сложному. Несмотря на простоту написания кода язык позволяет заглянуть в дебри (при желании), куда заглядывают только rust и c++: низкоуровневая работа с системой, передача владения, inline оптимизации, последовательный доступ к ресурсу в режиме конкуренции, макросы, ручная аллокация памяти и т. д.
6) Встраиваемость, а не замещение. Нативный интероп с C (без ffi) позволяет импортировать функции и структуры C. В больших и текущих приложениях можно строить мост между существующим C/C++/ python кодом и новым кодом на swift. Никто и не хочет переписывать legacy заново, это контрпродуктивно и очень рисковано. Swift позволяет внедриться в существующую архитектуру без проблем.
7) Надежность. Язык спроектирован до мелочей так, чтобы избежать популярных ошибок или неоднозначности. Гарантии безопасности памяти, проверки на data race, шикарная работа с опциональными данными. С версии 6 swift проверяет код на наличие гонок данных. Что скажешь C++?
8) Практическое удобство языка. Ничего лишнего. Ничего неявного. Нет неявных преобразований. Нет целого веера разного синтаксиса как в rust. Синтаксис в swift максимально однороден, но при этом очень функционален и не уступает rust.
Однако не все это осознали: 1) пока не было такого хайпа как с go, и количество вакансий не так много на backend разработку на swift. 2) язык постоянно улучшался и менялся. Это и плюс и минус, т к постоянно приходилось дорабатывать библиотеки. 3) только недавно он стал кроссплатформенным и начал предоставлять все необходимое для backend разработки. 4) тренд на backend разработку на нём только зарождается, что позволяет себя проявить в его становлении и дальнейшем развитии, при этом сразу получая все плюсы языка. Веб разработка только в emerging стадии. Уже есть production ready веб фреймворки, но они не такие производительные, и это временно. И Apple и я активно развиваем веб направление, и скоро нас ждут большие перемены в игре, когда go и c# нечего будет противопоставить, а rust будет излишне сложным для веб приложений, когда их можно написать на swift.
Поэтому кто захочет, тот поймает волну и будет счастливо разрабатывать, не прыгая между двух огней: хардкора и казуала.
· 15.07
По сравнению с плюсами и rust на swift намного проще писать.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён