Как стать автором
Обновить

Комментарии 13

А где же исходный код компилятора? Обещали же.
Вот вот. Зная страсть Apple к эффективному маркетингу…
Автор статьи к Apple никакого отношения не имеет, она сугубо теоретическая. Хотя в конце вот есть ссылка на бенчмарк.
Всё ок со Свифтом.
Я не очень хорошо знаком с работой Objective-C кода. Подскажите: objc_msgSend производит поиск метода по таблице виртуальных методов?
Не совсем, там все сложнее. Есть два варианта:

1. Быстрый, метод уже есть в кэше (это, по сути, хэшмап selector -> method implementation)
2. Медленный, метода в кэше нет, нужно пробегаться снизу вверх по иерархии наследования и искать реализацию метода по селектору
Распространенность этой проблемы вынудила добавить в стандарт C99 новое ключевое слово restrict. Можно считать, что проблема решена? Но… как часто вы использовали это ключевое слово в своем коде? Чувствую, что ответом большинства читателей будет «ни разу».


Простите, но говорить что язык А быстрее языка Б только потому, что многие программисты на Б не знают его спецификаций… Это какой-то совсем уж эффективный маркетинг. С таким же успехом можно сказать что язык Ассемблера — один из самых медленных просто потому что большинство выучивших mov ax, dx просто не умеют писать на нем эффективно.
В общем, преимущества строгой типизации над нестрогой + еще пара фокусов, 99.999% не заметят быстроты swift. Я бы не на этом акцентировал внимание (пользователям вообще пофиг, на чем написана их любимая игра — хоть на Javascript в WebView), а на более лаконичном синтаксисе что, возможно, ускорит разработку ПО (а вот это уже очень важно заказчикам).
Посмотрите замеры производительности по ссылке в примечании переводчика. Тесты, конечно, довольно синтетические — но прирост скорости от 5 до 35 раз, так что о «99.999% не заметят улучшений» я бы говорить не стал.
За всех не скажу, а в бизнес-приложениях хватает и джаво-андроидной производительности; игры же в основном пишут на кросс-платформенных движках, где особенности что Obj-c, что Java, что Swift до лампочки. Не могу даже придумать пример, скажем, обработки больших массивов нативными средствами на iOS. А на дорогие стандартные операции типа конвертации видео и т.п. мы все равно вызываем библиотечные методы…
Если у вас не телефоне нет ни одного приложения, которое не хотелось бы ускорить, могу только позавидовать :) У меня на iPhone 4, к сожалению, приложения вроде Skype, клиента для Facebook и даже банального expense-tracker'а ощутимо подлагивают, хотя никаких ресурсно-интенсивных операций явно не выполняют. Если авторы решат переписать их с ObjC на Swift, хотя бы для облегчений поддержки, а заодно получат бесплатные оптимизации со стороны компилятора — я буду совсем не против.
У меня старая Nokia на Symbian, хотя я с 2009 года iOS-разработчик :) А iPhone 4 — однопроцессорный, и как только вышла iOS, которая была переписана под 2 core — она сама начал тормозить на одноядерном iPhone 4. Ну и iOS 8 же не вышло для iPhone 4, так что лучше купить новый телефон…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации