Разработчик Александре Колуччи исследовал использование разных языков программирования внутри iOS, предоставив подробный обзор эволюции различных языков программирования за более чем десятилетний период разработки iOS.
Суть исследования в том, что он проанализировал исполняемые файлы и файлы приложений в разных версиях iOS, все, что находится выше ядра. Ядро XNU и микропрограммы низкого уровня (SecureROM, Baseband,…) не включены в этот анализ. Он подсчитал фреймворки и языки, на которых они написаны и вывел общую статистику по использованию языков.
Всего в iOS 14 нашлось 4173 файла — как видите система усложнилась почти в 20 раз, начиная с iPhone OS 1.0:
Хотя двоичный файл может использовать несколько языков программирования, использование разных языков внутри последней версии примерно такое:
- 88% используют Objective-C
- 17% используют C++
- 8% используют Swift
- 8% полностью написаны на C
- 1% используют SwiftUI
Несколько интересных моментов:
- Objective-C по-прежнему является важным компонентом iOS 14.
- C++ и C также играют важную роль. Эти языки обычно используются двоичными файлами, связанными с аудио, видео, телефонией, Интернетом и другими низкоуровневыми фреймворками.
- Swift был довольно быстро принят и уже используется в 8% двоичных файлов в iOS 14.
О чем это говорит?
- iOS становится все более сложной с каждым релизом.
- iPhone OS 1.0 содержала меньше двоичных файлов, чем количество двоичных файлов в iOS 14.0, написанных на Swift.
- Интересно, что 88% двоичных файлов в iOS 14 прямо или косвенно полагаются на Objective-C. Objective-C, несмотря на прогнозы, продолжает оставаться важным языком программирования в iOS.
- Использование Swift в Apple прогрессирует, и теперь количество двоичных файлов, использующих Swift, больше, чем двоичных файлов, полностью написанных на C. Но развертывание нового языка идет довольно медленно.
- Количество двоичных файлов, использующих Objective-C, продолжает расти с каждым выпуском iOS.
- Использование C++ также постоянно растет с годами — сейчас 17% двоичных файлов в iOS 14 используют C++.
- С другой стороны, количество двоичных файлов, полностью написанных на C, сейчас не растет.
Несмотря на то, что у нас нет доступа к исходному коду iOS, мы можем определить языки программирования, используемые в iOS. У этого подхода, очевидно, есть некоторые ограничения, и хотя гарантировать, что результаты совершенно точны, невозможно, общая картина примерно понятна.