В индустрии разработки сложилось почти религиозное правило: дублирование кода - это абсолютное зло. Нам с первых дней твердят о принципе DRY (Don't Repeat Yourself), и любое повторение воспринимается как признак плохого дизайна.
Существует инструмент, который ежедневно определяет границы возможного для миллионов разработчиков. И часто эти границы оказываются не там, где мы ожидаем.
Многие годы разработчики iOS испытывали смешанные чувства при виде таких интерфейсов, как мини-плеер в приложении Apple Music или постоянная панель действий в Podcasts.
Каждый, кто следит за ИТ, регулярно сталкивается с мрачными прогнозами: «рынок умер», «вакансий нет», «ИИ всех заменит». Подобные заявления рождают тревогу и сомнения, особенно у тех, кто только начинает свой путь в разработке.
Иногда самые полезные изменения в языке - не громкие нововведения, а устранение небольших, но раздражающих неудобств. Те, что заставляют писать лишний код, нарушать логику или искать обходные пути.
В мире Rust есть несколько популярных инструментов для асинхронности. Самый известный - Tokio. Но есть и альтернатива: smol. Это простой и легковесный рантайм, который подходит не для всех, но решает свои задачи элегантно.
В начале 2022 года я решил разработать приложение TaskFocus - планировщик задач со встроенным фокусированием. Мне нужен был единый инструмент, который бы работал на всех моих устройствах.
С появлением Swift Concurrency многие разработчики стали добавлять actor везде, где видят асинхронность. Это как использовать танк для поездки в магазин за хлебом: мощно, но бессмысленно и создает больше проблем, чем решает.
Сравнение языков программирования часто сводится к спискам синтаксических возможностей, но настоящая разница между Rust, Go и Zig лежит глубже: в их фундаментальной философии и тех компромиссах, которые создатели заложили в их дизайн.
С появлением Swift Concurrency многие разработчики стали добавлять actor везде, где видят асинхронность. Это как использовать танк для поездки в магазин за хлебом: мощно, но бессмысленно и создает больше проблем, чем решает.