Комментарии 17
Во-первых, 2007, и я не понимаю, как этого можно было не заметить.
Во-вторых, все поголовно пишут на Си. Драйверы, СУБД, системные вещи, серверные приложения.
В-третьих, ниша С++ — это небольшая доля клиентских приложений, небольшая доля серверных приложений, геймдев и всякого рода компиляторы.
Но ты прав, за последнее время действительно все поменялось.
Серверные и веб приложения сейчас уходят в функциональную парадигму, среди мобильных приложений тренд на react-native + native extensions, у десктопных — в Electron.
Я закончил писать на С++ 5 лет назад и с тех пор он мне был нужен только для спортивного программирования, хотя я писал и десктоп, и серверные, и веб, и мобильные приложения. То есть, для чего угодно C++ — это не first choice.
В спортивном программировании от всего C++ мне нужно только STL.
Я лишь хотел обратить внимание, что в контексте статьи не имеет никакой разницы, на чем написан язык. С++ здесь не является конкурентным преимуществом. "Серьезнее и взрослее" тоже очень спорное утверждение, по крайней мере в статье я не нашел аргументов, которые бы подкрепляли эти слова.
Swift принес синтаксический сахар, который дал JS'никами и C-шарперам более простой вход в нативную iOS разработку. Примерно тоже самое сделал Elixir с Erlang'ом в вебе. Сейчас Swift постепенно выбирается из своей ниши и становится языком общего назначения. Станет ли — большой вопрос. Apple планирует на него переходить только через два года, что говорит о многом.
Сам контент статьи весьма годный, но своим введением ты сильно подрываешь к себе доверие. Иметь свое мнение это хорошо и здорово, но его либо нужно чем-то подкреплять, либо публиковаться в собственном бложике.
Anyway, добро пожаловать на хабр. Надеюсь мои комментарии не обидели, и помогут сделать следующие статьи лучше :-)
Ззаметил в статье несколько неточностей как по мне:
Формально конечно базовый класс остался и только для IOS платформы
все классы Swift которые явно не наследуются от NSObject теперь неявно наследуются от SwiftObject класса. Сразу сделаю поправку, что это имеет место только для IOS платформы. На non-IOS платформах (Linux например) такого нет так как нет необходимости.
А как же тогда macOS, watchOS, tvOS? Под них тоже вполне можно использовать Objective-C с тем же Foundation и NSObject. Писали бы тогда что это справедливо для платформ, в которых есть необходимость взаимодействовать с Objective-C рантаймом.
все классы Swift которые явно не наследуются от NSObject теперь неявно наследуются от SwiftObject класса
Разве? Больше похоже, что это класс, который представляет Swift классы которые наследуются от NSObject в Objective-C рантайме.
На сколько мне известно, не NSObject классы в рантайме Objective-C вообще не могут быть представлены. Пробовали ли Вы посмотреть во что компилится чистый Swift класс есть ли в нем все эти методы? Может у свифтовых структур и енамов они тоже есть?
Зачем эпплу ко всем свифт классам привязывать NSObject методы, если в рантайме Objective-C эти классы представлены быть не могут и в будущем, возможно, свифт будет жить без наследия objc? Как то недальновидно ведь.
Начало было захватывающее и не поверхностное, а вот концовки нет. Была хорошая завязка, сюжет, но нет конца…
… жаждущей новых выделений
Э-э-э, ну да, каждый, конечно, воспринимает в меру своей испорченности, но лучше бы вы писали сухо и по делу — к цветистым «литературным» оборотам (особенно на фоне ужасающей грамматики) вам прибегать еще рановато.
Немного о Swift runtime или куда пропал NSObject