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 (ok), 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 строк корректность не... весь текст скрыт [показать]
     
     ....нить скрыта, показать (13)

  • 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 [^] [ответить]    [к модератору]  
  • +/
    Ваше заявление не является ложным до тех пор пока углубляешься в детали того как работает gc и схема с recount.
     
  • 1.5, EuPhobos (ok), 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 (ok), 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-intern

    Скоро и у вас


     
  • 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 (ok), 12:00, 20/09/2017 [^] [ответить]     [к модератору]  
  • +1 +/
    Ну так уж получилось, что распространение веба по миру сделало json универсальны... весь текст скрыт [показать]
     
     
  • 4.19, Аноним (-), 12:48, 20/09/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    Не, пихание JSON куда ни попадя — зло. Его возможность ограничены возможностями JS, так что он даже IEEE 754 не поддерживает. И как прикажете флоаты из нормальных языков сеарилизовать?
     
     
  • 5.22, angra (ok), 13:08, 20/09/2017 [^] [ответить]     [к модератору]  
  • +/
    JSON ограничен своей спецификацией, а не js Какие проблемы у тебя с флоатами Н... весь текст скрыт [показать]
     
     
  • 6.25, Аноним (-), 13:47, 20/09/2017 [^] [ответить]    [к модератору]  
  • +/
    > всякие NaN и бесконечности в string

    Да? И в каком же стандарте это прописано? Покажи мне хотя бы пару реализаций, делающих это совместимым между собой образом.

     
  • 6.37, freehck (ok), 15:19, 20/09/2017 [^] [ответить]     [к модератору]  
  • +1 +/
    Нормальные числа с плавающей точкой без проблем сериализуются Комплексные и ра... весь текст скрыт [показать]
     
  • 3.42, Kodir (ok), 15:45, 20/09/2017 [^] [ответить]     [к модератору]  
  • –2 +/
    JS - сдохнет, но не JSON У нас NET проекты - ВСЁ в них висит на JSON ах, хотя ... весь текст скрыт [показать]
     
     
  • 4.54, Аноним (-), 17:23, 20/09/2017 [^] [ответить]    [к модератору]  
  • +/
    XML - 98-й год.... Какие-то очень затянувшиеся 70-е....

    А вот json, очевидно, надо чем-то заменять. Никакого автоматического контроля целостности. JSON Schema так и не приняли как стандарт.

     
     
  • 5.92, Аноним (-), 13:12, 25/09/2017 [^] [ответить]     [к модератору]  
  • –1 +/
    а что её мешает использовать у нас в проекте реализована, правда с кое-какой св... весь текст скрыт [показать]
     
  • 4.65, Аноним (-), 19:39, 20/09/2017 [^] [ответить]     [к модератору]  
  • –1 +/
    Ну не надо, YAML очень даже приятен, но с двумя оговорками во-первых, версии 1 ... весь текст скрыт [показать]
     
  • 3.76, annualslayer (ok), 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 там с первых дней и получше чем где бы то ни было Над чем ломали голову... весь текст скрыт [показать]
     
     ....нить скрыта, показать (19)

  • 1.12, Аноним (-), 11:16, 20/09/2017 [ответить] [показать ветку] [···]     [к модератору]  
  • +1 +/
    А еще он предлагает создавать алиасы всего и вся и половина встроенных методов с... весь текст скрыт [показать]
     
     
  • 2.16, Степаныч (?), 12:15, 20/09/2017 [^] [ответить]    [к модератору]  
  • +/
    Какие 25 слов? Вы о чём?
     
     
  • 3.41, leap42 (ok), 15:44, 20/09/2017 [^] [ответить]    [к модератору]  
  • +2 +/
    https://golang.org/ref/spec#Keywords

    в golang 25 зарезервированных слов, в swift, судя по всему, их ~95

     
     
  • 4.43, Kodir (ok), 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 virtual static friend void
    > Боже какая чушь..

    public static const Borscht borscht = new Borscht()

     
  • 5.66, Аноним (-), 19:49, 20/09/2017 [^] [ответить]    [к модератору]  
  • +/
    > Как прогер, я не против 95 слов

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

     
  • 4.57, rshadow (ok), 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/then/dup/cr/emit -- разве это всё не ключевые слова языка, оверрайдить которые не надо или невозможно?
     
  • 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. стандартов хоть жопой жуй. ни одного сервера на ассемблере. зато есть на erlang и java.
     
  • 2.35, Мяут (ok), 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 (ok), 19:23, 20/09/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А графовая база данных на этом языке есть?
     
  • 1.67, nc (ok), 20:06, 20/09/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    То есть никаких новых языковых фишечек не представлено?
     
  • 1.69, Аноним (-), 21:05, 20/09/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Самое лучшее в Swift 4 - наконец-то можно посчитать количество символов в строке, без влезания в characters.
     
  • 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 (ok), 09:31, 21/09/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • –3 +/
    Правильно ли я понимаю, что swift позволяет писать кросплатформенные приложения mac<->linux ?
     
     
  • 2.86, Аноним (-), 17:01, 21/09/2017 [^] [ответить]     [к модератору]  
  • +/
    Не в том смысле, в котором ты подумал Под Linux доступен только компилятор язык... весь текст скрыт [показать]
     

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


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