The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

20.09.2017 08:05  Компания Apple выпустила язык программирования Swift 4.0

После года разработки компания Apple представила релиз языка программирования Swift 4.0, второй значительный выпуск после открытия исходных текстов проекта. Официальные сборки подготовлены для Linux (Ubuntu 16.04, 16.10) и macOS (Xcode). Исходные тексты распространяются под лицензией Apache 2.0.

В отличие от прошлых выпусков в Swift 4.0 сохранена полная обратная совместимость с исходными текстами ветки Swift 3. Изменения в Swift 4.0 сосредоточены на расширении возможностей стандартной библиотеки и реализации таких возможностей, как архивирование/сериализация структур и перечисляемых типов (например, теперь поддерживается сериализация в JSON и plist). В состав включена новая реализация типа String, которая отличается более высокой производительностью, обеспечением корректности Unicode и предоставлением инструментов для создания, использования и манипуляций подстроками (substring, многострочные литералы). Расширены возможности словарей и коллекций (тип Collection).

Представлена новая команда "swift run" для сборки и запуска исполняемых файлов, определённых в текущем пакете. Реализована идея эксклюзивного доступа к памяти, предотвращающая ситуации, когда может быть произведено изменение переменой, которая в данный момент используется или изменяется в другой части программы. Расширены возможности пакетного менеджера, в который добавлена функциональность, упрощающая одновременную разработку нескольких пакетов (несколько пакетов одновременно могут помечаться для релиза), представлен новый Package API, позволяющий управлять настройками сборки.

Напомним, что язык Swift наследует лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщенное программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования. Версия для Linux не привязана к Objective-C Runtime, что позволяет использовать язык в окружениях, в которых отсутствует поддержка Objective-C.

Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, выполняемый в тестах Apple на 30% быстрее кода на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.

  1. Главная ссылка к новости (https://swift.org/blog/swift-4...)
  2. OpenNews: Создатель LLVM и Swift уходит из компании Apple
  3. OpenNews: Компания Apple представила язык программирования Swift 3.0
  4. OpenNews: В язык Swift добавлена начальная поддержка платформы Android
  5. OpenNews: Компания Apple представила Swift 2.2, первый выпуск с поддержкой Linux
  6. OpenNews: Компания Apple открыла реализацию языка Swift и реализовала поддержку Linux
Лицензия: CC-BY
Тип: Программы
Ключевые слова: swift
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 08:45, 20/09/2017 [ответить] [смотреть все]
  • +3 +/
    Конец Objective-C
     
     
  • 2.2, Аноним, 08:56, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +3 +/
    Так Свифт с блестками и быстрее. Кому нужен несвежий Objective-C?
     
     
  • 3.10, Payday, 10:52, 20/09/2017 [^] [ответить] [смотреть все]
  • –11 +/
    Нормальным разрабам без смузи на столе
     
     
  • 4.11, Аноним, 11:00, 20/09/2017 [^] [ответить] [смотреть все]
  • +13 +/
    Стол - для хипстеров, чтоб подставлять его под смузи. Наши предки жили в пещерах и обедали на голой земле.
     
     
  • 5.20, Аноним, 12:51, 20/09/2017 [^] [ответить] [смотреть все]
  • +/
    PR-менеджер ЕР?
     
  • 5.21, Анонимный Аналитек, 13:02, 20/09/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    А почему это сразу те, кто не догадался подстелить листья, лапник или травку - о... весь текст скрыт [показать]
     
     
  • 6.28, Аноним, 14:01, 20/09/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Сейчас в одном известном новом кампусе лапник и травка одни из самых мягких и са... весь текст скрыт [показать]
     
     
  • 7.33, Анонимный Аналитек, 14:50, 20/09/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    Я правильно понимаю, что акцент тут на травке и прочих галлюциногенах Или в в... весь текст скрыт [показать]
     
     
  • 8.55, rshadow, 17:38, 20/09/2017 [^] [ответить] [смотреть все]  
  • +4 +/
    Походу он передает на частоте анального зонда Там свой язык, понятный только се... весь текст скрыт [показать]
     
     
  • 9.60, Аноним, 18:08, 20/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Я почему-то уверен, что конкретно тут маковод пел дифирамбы своему фетишу класс... весь текст скрыт [показать]
     
  • 3.71, Аноним, 22:49, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Знакомый писал полтора года на свифте, начиная с 2 сколько-то и заканчивая треть... весь текст скрыт [показать]
     
  • 2.31, deb, 14:20, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Неа Вот есть внешняя статическая библиотека a , в objc можно написать exter... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.51, Аноним, 17:13, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    В Swift точно также можно использовать C, нужен только h-файл, все символы будут... весь текст скрыт [показать]
     
  • 3.56, Аноним, 17:43, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    С преобразованиями тоже проблем нет 1 раз написать 10 строк корректность не... весь текст скрыт [показать]
     
  • 1.3, Аноним, 09:04, 20/09/2017 [ответить] [смотреть все]  
  • +8 +/
    >  в Swift 4.0 сохранена полная обратная совместимость с исходными текстами ветки Swift 3

    вот это залог успеха. Бесшовный переход на новый компилятор в существующем проекте рулит. В некотором смысле, это один из столпов успеха C++: несовместимости если и были, то тривиальные

     
  • 1.4, Аноним, 09:17, 20/09/2017 [ответить] [смотреть все]  
  • –2 +/
    подсчет ссылок - медленее gc
     
     
  • 2.6, ДяДя, 09:35, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А конкретно в Boost приводит к false sharing и просадками производительности, ес... весь текст скрыт [показать] [показать ветку]
     
  • 2.7, Аноним, 09:51, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Подсчет ссылок детерминированней, чем ГЦ
     
     
  • 3.17, Аноним, 12:37, 20/09/2017 [^] [ответить] [смотреть все]  
  • –4 +/
    Будущее за "недетерминированными" технологиями, например нейросети.
     
     
  • 4.34, Аноним, 14:53, 20/09/2017 [^] [ответить] [смотреть все]  
  • +8 +/
    у вас смузи убежали
     
     
  • 5.45, Undefined, 16:06, 20/09/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    И лапку не пожали!
     
  • 4.72, й, 23:49, 20/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    ага "недетерминированная" rt os для экзоскелета, например
     
  • 3.23, Аноним, 13:22, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Каким образом?
     
     
  • 4.63, Аноним, 19:26, 20/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Странный вопрос. По определению.
     
  • 2.48, Аноним, 17:08, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ваше заявление не является ложным до тех пор пока углубляешься в детали того как... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, EuPhobos, 09:19, 20/09/2017 [ответить] [смотреть все]  
  • +/
    Швифтанём!
    https://www.youtube.com/watch?v=I1188GO4p1E
     
  • 1.8, Онаним, 10:17, 20/09/2017 [ответить] [смотреть все]  
  • +3 +/
    >  теперь поддерживается сериализация в JSON ... новая реализация типа String, которая отличается более высокой производительностью, обеспечением корректности Unicode и предоставлением инструментов для создания, использования и манипуляций подстроками (substring, многострочные литералы).

    И всего этого не было в языке, который изобрели в 2014-м году и позиционируют как что-то свежее и удобное? Капец. По-моему JSON и UTF8 должны быть в самое ядро языка встроены в наше время.

     
     
  • 2.9, Аноним, 10:36, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Речь про американцев, которым переключать раскладки не нужно, поэтому очевидност... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.40, Kodir, 15:42, 20/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Узко мыслите Юникод - это не только арабская вязь, но и эмоджы, псевдографика, ... весь текст скрыт [показать]
     
     
  • 4.50, Аноним, 17:12, 20/09/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    Да что уж там Супер языка XXI века - это язык поддерживающий исключительно эмод... весь текст скрыт [показать]
     
     
  • 5.64, Аноним, 19:32, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Уже есть http ekd me 2017 09 marsianskij-yazyk-kak-kitajcy-obxodyat-cenzuru-v-... весь текст скрыт [показать]
     
  • 5.80, Andrey Mitrofanov, 09:17, 21/09/2017 [^] [ответить] [смотреть все]  
  • +/
    https ru wikipedia org wiki D0 95 D0 B3 D0 B8 D0 BF D0 B5 D1 82 D1 81 D0 BA D... весь текст скрыт [показать]
     
  • 4.58, Fyjybv2, 18:04, 20/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Вас сейчас неправильно поймут и сделают операторы в виде эмоджи Будете картинка... весь текст скрыт [показать]
     
  • 2.13, anonymous, 11:33, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –4 +/
    Юникод это, конечно, хорошо, но json то зачем Сдохнет этот ваш js и всё, никому... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, freehck, 12:00, 20/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Ну так уж получилось, что распространение веба по миру сделало json универсальны... весь текст скрыт [показать]
     
     
  • 4.19, Аноним, 12:48, 20/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Не, пихание JSON куда ни попадя 8212 зло Его возможность ограничены возможно... весь текст скрыт [показать]
     
     
  • 5.22, angra, 13:08, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    JSON ограничен своей спецификацией, а не js Какие проблемы у тебя с флоатами Н... весь текст скрыт [показать]
     
     
  • 6.25, Аноним, 13:47, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Да И в каком же стандарте это прописано Покажи мне хотя бы пару реализаций, де... весь текст скрыт [показать]
     
  • 6.37, freehck, 15:19, 20/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Нормальные числа с плавающей точкой без проблем сериализуются Комплексные и ра... весь текст скрыт [показать]
     
  • 3.42, Kodir, 15:45, 20/09/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    JS - сдохнет, но не JSON У нас NET проекты - ВСЁ в них висит на JSON ах, хотя ... весь текст скрыт [показать]
     
     
  • 4.54, Аноним, 17:23, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    XML - 98-й год Какие-то очень затянувшиеся 70-е А вот json, очевидно, на... весь текст скрыт [показать]
     
     
  • 5.92, Аноним, 13:12, 25/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    а что её мешает использовать у нас в проекте реализована, правда с кое-какой св... весь текст скрыт [показать]
     
  • 4.65, Аноним, 19:39, 20/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ну не надо, YAML очень даже приятен, но с двумя оговорками во-первых, версии 1 ... весь текст скрыт [показать]
     
  • 3.76, annualslayer, 02:40, 21/09/2017 [^] [ответить] [смотреть все]  
  • +/
    js -- это не perl, php, ruby или python, держащиеся по большому счету лишь на эн... весь текст скрыт [показать]
     
  • 2.14, Аноним, 11:51, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Смайлики нового айфона в старый String не влазят, надо улучшать же.
     
  • 2.59, Аноним, 18:06, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Unicode там с первых дней и получше чем где бы то ни было Над чем ломали голову... весь текст скрыт [показать] [показать ветку]
     
  • 1.12, Аноним, 11:16, 20/09/2017 [ответить] [смотреть все]  
  • +1 +/
    А еще он предлагает создавать алиасы всего и вся и половина встроенных методов с... весь текст скрыт [показать]
     
     
  • 2.16, Степаныч, 12:15, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Какие 25 слов? Вы о чём?
     
     
  • 3.41, leap42, 15:44, 20/09/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    https golang org ref spec Keywords в golang 25 зарезервированных слов, в swift... весь текст скрыт [показать]
     
     
  • 4.43, Kodir, 15:48, 20/09/2017 [^] [ответить] [смотреть все]  
  • –5 +/
    Как прогер, я не против 95 слов, т к всё равно 70 из них вы не увидите в обычн... весь текст скрыт [показать]
     
     
  • 5.52, Аноним, 17:16, 20/09/2017 [^] [ответить] [смотреть все]  
  • +4 +/
    > public virtual static friend void

    Боже какая чушь..

     
     
  • 6.61, Аноним, 18:20, 20/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    public static const Borscht borscht new Borscht ... весь текст скрыт [показать]
     
  • 5.66, Аноним, 19:49, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    > Как прогер, я не против 95 слов

    Хорошо, что ты не "прогер".

     
  • 4.57, rshadow, 17:49, 20/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Lua - 22

    https://www.lua.org/manual/5.3/manual.html

     
     
  • 5.68, nobody, 20:55, 20/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Forth - 0
     
     
  • 6.73, й, 00:00, 21/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    ну, и парсите себе json, yaml и делайте http-запросы из forth дальше хотя нет, ... весь текст скрыт [показать]
     
     
  • 7.84, пох, 15:47, 21/09/2017 [^] [ответить] [смотреть все]  
  • +/
    а в чем проблема-то, кстати Первое - прекрасно ложится, второе неудобно, но впо... весь текст скрыт [показать]
     
     
  • 8.85, й, 16:36, 21/09/2017 [^] [ответить] [смотреть все]  
  • +/
    кстати, выше про 0 зарезервированных слов в forth -- не совсем правда if else... весь текст скрыт [показать]
     
  • 1.24, Аноним, 13:47, 20/09/2017 [ответить] [смотреть все]  
  • +/
    Начем писать на Swift, если есть богоподобная Сишечка?
     
     
  • 2.26, Аноним, 13:57, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Зачем писать на сишечке, когда можно перфокартами Зачем вычислительная техника,... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.53, щи, 17:21, 20/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Смотря что делать Если обговорить правила и протоколы, довольно просто и на асс... весь текст скрыт [показать]
     
     
  • 4.75, й, 00:09, 21/09/2017 [^] [ответить] [смотреть все]  
  • +/
    вот есть jabber стандартов хоть жопой жуй ни одного сервера на ассемблере зат... весь текст скрыт [показать]
     
  • 2.35, Мяут, 14:57, 20/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Богоподобным молятся. Мирским пишут.
     
  • 2.74, й, 00:07, 21/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    на божественной сишечке не осилили написать ни одну очередь общего применения н... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.88, Аноним, 23:54, 21/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Redis же ... весь текст скрыт [показать]
     
     
  • 4.89, й, 00:55, 22/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    ну, во-первых, redis -- это key-value storage, а не message broker как message ... весь текст скрыт [показать]
     
     
  • 5.91, Аноним, 10:33, 22/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Да, давай, доказывай теперь, что очередь на сях вовсе не очередь Слив засчитан ... весь текст скрыт [показать]
     
  • 4.90, й, 00:59, 22/09/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    вы б ещё memcached как пример брокера привели теоретически драйвер под celery е... весь текст скрыт [показать]
     
  • 1.62, YetAnotherOnanym, 19:23, 20/09/2017 [ответить] [смотреть все]  
  • +/
    А графовая база данных на этом языке есть?
     
  • 1.67, nc, 20:06, 20/09/2017 [ответить] [смотреть все]  
  • +/
    То есть никаких новых языковых фишечек не представлено?
     
  • 1.69, Аноним, 21:05, 20/09/2017 [ответить] [смотреть все]  
  • +/
    Самое лучшее в Swift 4 - наконец-то можно посчитать количество символов в строке... весь текст скрыт [показать]
     
  • 1.77, Аноним, 04:24, 21/09/2017 [ответить] [смотреть все]  
  • +/
    А под какую платформу?
     
  • 1.78, Аноним, 05:08, 21/09/2017 [ответить] [смотреть все]  
  • –1 +/
    Подсчет ссылок прямо скажем, очень спорное решение.
     
  • 1.79, Вареник, 07:40, 21/09/2017 [ответить] [смотреть все]  
  • –2 +/
    Почем никто не сравнивает с Хрустом?

    Казалось бы прямой конкурент. Оба типа убийцы С.

     
     
  • 2.83, Аноним, 12:32, 21/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Какой же это убийца С, если он, кроме как для написания софта для девайсов Apple... весь текст скрыт [показать] [показать ветку]
     
  • 1.81, keir, 09:31, 21/09/2017 [ответить] [смотреть все]  
  • –3 +/
    Правильно ли я понимаю, что swift позволяет писать кросплатформенные приложения ... весь текст скрыт [показать]
     
     
  • 2.86, Аноним, 17:01, 21/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Не в том смысле, в котором ты подумал Под Linux доступен только компилятор язык... весь текст скрыт [показать] [показать ветку]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor