На протяжении более четырех десятилетий языки C и C ++ были основой современного программного обеспечения. Операционные системы, базы данных, веб-браузеры и облачные платформы были построены на основе миллионов строк кода, написанных на этих языках, которые ценятся за их близость к оборудованию и производительность, но также вызывают опасения из-за их сложности и хрупкости.
В этом контексте идея постепенного отказа от C и C++ (продвигаемая даже Белым домом) — это не просто техническое решение: это прямой вызов самим основам индустрии программного обеспечения.
Однако этот вопрос больше не является теоретическим. В Microsoft, одной из компаний с наибольшим объемом устаревшего кода на C и C ++ на планете, начинает консолидироваться четкая ставка на замену поколений: Rust.
Язык, относительно молодой по сравнению со своими предшественниками, завоевал репутацию за то, что предлагает труднодоступный баланс: низкоуровневую производительность, сопоставимую с C/C++, но с гарантиями безопасности памяти и параллелизма, встроенными в сам дизайн языка.
И все это вызывает споры из-за публикации в LinkedIn Галена Ханта, выдающегося инженера Microsoft и ветерана, проработавшего в компании почти три десятилетия:
«Моя цель — к 2030 году исключить каждую строку C и C ++ из Microsoft».
Так прямо и сказал Хант в своем посте, где он также объявил о поиске ведущего инженера, специализирующегося на Rust, для своей команды. Предложенная стратегия сочетает в себе два ключевых элемента:
- Алгоритмы крупномасштабного анализа кода, способные строить сложные графы, представляющие зависимости, потоки и структуры огромных кодовых баз.
- Агенты искусственного интеллекта, руководствуясь этими алгоритмами, которые могут понимать, преобразовывать и переписывать код в автоматическом режиме.
Rust как язык будущего Microsoft
Выбор Rust не случаен. В последние годы Microsoft активно продвигает использование языков с защитой памяти в качестве альтернативы историческому C и C ++. Мотивация очевидна: десятилетия критических уязвимостей (переполнение буфера, использование освобожденной памяти, ошибки параллелизма) напрямую связаны со свободами (и опасностями) этих языков.
Его внедрение, от драйверов в Windows до критически важных компонентов Azure, набирает обороты, что публично поддерживается ключевыми фигурами, такими как Марк Руссинович, технический директор Azure, который заявил, что компания «на пределе возможностей» с Rust.
Корпоративное видение или личные амбиции?
Один из наиболее обсуждаемых вопросов заключается в том, представляет ли эта инициатива формальный корпоративный план или видение — амбициозное, но индивидуальное — единой команды разработчиков в Microsoft. Конечно, на данный момент нет официального объявления, обязывающего всю компанию переписать весь свой устаревший код.
Тем не менее, многие идеи, которые зародились в Microsoft как исследовательские проекты, в конечном итоге воплотились в реальные продукты: в этом смысле граница между «экспериментальным проектом» и «будущей дорожной картой» намеренно размыта. В любом случае опубликованное Хантом предложение о работе предназначено для личной работы в Редмонде, в собственном офисе Microsoft.
Задача многолетней истории
Масштаб проблемы впечатляет: Microsoft поддерживает одни из крупнейших и старейших в мире хранилищ кода. Такие компоненты, как ядро Windows, Office или SQL Server, содержат миллионы строк C и C ++, усовершенствованных десятилетиями, с поведением, которое во многих случаях уже является частью ожидаемой совместимости. приложениями и пользователями.
Переписывание этого наследия сопряжено с очевидными рисками: от потенциально астрономических затрат на проверку и тестирование до необходимости иметь дело с техническими сложностями, которые трудно выразить в «безопасном» Rust, особенно в низкоуровневых структурах данных, распространенных в операционных системах.
Разработка с использованием искусственного интеллекта или просто «кодирование vibe» в масштабе?
Еще одна тема дебатов вращается вокруг реальной роли искусственного интеллекта. В то время как Microsoft заявляет, что ежемесячно проверяет сотни тысяч запросов на перенос с помощью искусственного интеллекта, многие разработчики сомневаются, что современные модели готовы переписывать критически важные системы без тщательного надзора человека.
Более осторожные отмечают, что ИИ может быть чрезвычайно полезен для понимания устаревшего кода, его документирования и предложения рефакторинга. Но делегирование ему полномочий по массовому переписыванию сложных систем по-прежнему многим кажется экспериментом с высокими ставками.
Помимо Microsoft: сигнал для отрасли
Независимо от того, достигнута ли цель «нулевого уровня C / C ++ к 2030 году», идея является убедительной. Microsoft указывает направление: меньшая терпимость к структурным рискам со стороны традиционного программного обеспечения и больше инвестиций в языки, инструменты и процессы, которые обеспечивают безопасность с самого начала. дизайн.
Для отрасли в целом эта инициатива работает как крупномасштабная лаборатория: если компании размером с Microsoft удастся успешно перевести значительную часть своего наследия на Rust, опираясь на искусственный интеллект, это влияние может изменить подход к решению проблемы технического долга во всем секторе.