URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 113971
[ Назад ]

Исходное сообщение
"Компания Apple выпустила язык программирования Swift 4.1"

Отправлено opennews , 30-Мрт-18 09:20 
Компания Apple опубликовала (https://swift.org/blog/swift-4-1-released/) релиз языка программирования Swift 4.1 (https://swift.org). Официальные сборки подготовлены (https://swift.org/download/#releases) для Linux (Ubuntu 14.04, 16.04, 16.10) и macOS (Xcode). Исходные тексты распространяются (https://github.com/apple/swift) под лицензией Apache 2.0.

В новой версии компилятора представлен (https://swift.org/blog/osize/) новый режим оптимизации "-Osize", позволяющий на 5-30% сократить размера результирующего кода, ценой небольшого снижения производительности. В набор для настройки процесса сборки добавлены (https://github.com/apple/swift-evolution/blob/master/proposa...) функции для проверки возможности импорта определённых модулей (например "#if canImport(UIKit)...") и определения выбранной целевой платформы (например, "#if  targetEnvironment(simulator)..."). В пакетном менеджере обеспечено корректное разрешение зависимостей при использовании различных URL-схем (например, ssh и http). Существенно увеличена производительность обработки графов пакетов, содержащих общие зависимости.


В языке продолжена реализация идей связанных с поддержкой
обобщений (https://github.com/apple/swift/blob/master/docs/GenericsMani...) (generic). Например, добавлена поддержка условных соответствий (https://swift.org/blog/conditional-conformance/), при которых типы Optional, Array и Dictionary, в которых хранятся другие типы, могут использоваться в операциях, требующих соответствия протоколам Equatable и Hashable. Например, 'let a = ["1","2","x"].map(Int.init); a == [1,2,nil]'; Из новых возможностей языка также отмечается возможность (https://github.com/apple/swift-evolution/blob/master/proposa...) определения ограничений для ассоциированных типов с рекурсивными ссылками на определяемый протокол, синтез (https://github.com/apple/swift-evolution/blob/master/proposa...) соответствия типов протоколам Equatable и Hashable, реализация (https://github.com/apple/swift-evolution/blob/master/proposa...)  метода "Sequence.compactMap(_:)", приведение (https://github.com/apple/swift-evolution/blob/master/proposa...) индексируемых типов стандартной библиотеки к соответствию протоколу Hashable, исключение (https://github.com/apple/swift-evolution/blob/master/proposa...) ассоциированного типа IndexDistance из протокола  Collection. В классы
JSONEncoder и JSONDecoder добавлено (https://forums.swift.org/t/jsonencoder-key-strategies/6958) свойство для определения стратегии преобразования ключей в процессе кодирования или декодирования.

Напомним, что язык 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 (https://swift.org/package-manager/), предоставляющий средства для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.


URL: https://swift.org/blog/swift-4-1-released/
Новость: https://www.opennet.ru/opennews/art.shtml?num=48358


Содержание

Сообщения в этом обсуждении
"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 09:20 
Кто - нибудь объяснит: для чего официальные сборки подготавливают для Linux?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено A.Stahl , 30-Мрт-18 09:23 
Реклама. "Какие мы открытые и вы, сраные прыщавые очкарики, тоже можете приобщиться к прекрасному и подумать иначе". А технически, вероятно, поддержка двух платформ почти ничего не стоит. Поэтому под Винду и нет версии.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Солнышко , 30-Мрт-18 09:39 
Основа потому что nix.

А кто-нибудь скажет компетентный, есть хоть какие-то преимущества использования этого поделия на Linux? Как язык? Как Python?

Я вот на Clojure пишу для бытовых задач и небольших личных проектов и все тип-топ. Зачем еще и Swift?


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено rscx64_ , 30-Мрт-18 09:55 
может вдруг его не для целей "заменить твой clojure" делали? может для своих яблочных задач?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Солнышко , 30-Мрт-18 11:19 
Вы лично какие-такие яблочные задачи на Linux собираетесь решать?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 14:35 
Не знаю как он, но разработчики homebrew поголовно сидят на линуксе. Мак не готов для разработчика.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Anin , 30-Мрт-18 15:32 
Вас не смущает что homebrew на линуксе это порт от маковской версии?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 15:57 
homebrew как раз оригинал на маке. Для линукса linuxbrew. Под консольку на лине разрабатывать проще для любой платформы, а на маках пишут только приложения с графическим интерфейсом для iOS и macOS. На других платформах это или невозможно или очень сложно.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 31-Мрт-18 03:29 
Да ну вон там уже зашкаливает версия в .NET и я слышал окна можно вращать в WPF ;)

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 31-Мрт-18 04:03 
Хм, а чем консолька в линуксе отличается от консольки в маке?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 31-Мрт-18 11:18 
Ничем, но утилит для работы с консолькой больше в линуксе и проще развернуть среду разработки на линуксе.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 31-Мрт-18 05:53 
>Мак не готов для разработчика

Ну да, ну да. Все коллеги сидят на таком не готовом маке, успешно кодят веб, и вообще тащатся.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Alexey , 30-Мрт-18 09:59 
Вам он скорей всего никогда не понадобится. Его ниша - приложения для iOS, macOS и всего остального от эппл. Можно писать консольные и серверные приложения для Linux, но здесь наверно не взлетит т.к. много конкурентов. Как язык для бекенда его IBM пытается двигать: https://developer.ibm.com/swift/

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено bOOster , 30-Мрт-18 14:28 
Похожая разновидность ООЯП используется для программирования контроллеров XMOS. Даже можно сказать брат близнец, но с интересными доработками полного параллелизма многоядерной аппаратной реализации этих контроллеров.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено _hide_ , 30-Мрт-18 10:27 
Вам бы в википедию заглянуть :-)
А то Ваш вопрос обескураживает.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 11:55 
Если у Вас последний гном, то есть преимущество. На этом языке можно писать смайлами!

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Солнышко , 30-Мрт-18 12:07 
Вы это про стрижа?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено anonymous , 30-Мрт-18 09:34 
Потому что могут?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 12:09 
Ничего не стоит портировать программу с макоси на линух, потому что оба никсы.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 12:20 
Вы заблуждаетесь. POSIX - да, nix - нет.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 13:10 
В чём собственно разница? Это очередной дистрибутив с нескучными обоями, только закрытый.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено kk , 30-Мрт-18 15:37 
Как вы считаете *BSD сильно от линукса отличается или нет? А солярка? А HP-UX?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 17:09 
Почему нет порта Adobe под FreeBSD если всё так просто?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено kk , 30-Мрт-18 20:05 
потомучто нет коммерческого смысла?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 20:48 
Линуксоиды пересядут на бздю по такому поводу и от systemd избавятся.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено papa Ken , 30-Мрт-18 13:05 
Swift часть Google Fuchsia...

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 09:37 
чтобы на swift  backend ы пилить

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Солнышко , 30-Мрт-18 09:40 
> чтобы на swift  backend ы пилить

В чем преимущества языка по сравнению с Pyhon/Java/Ruby и т.п.?


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 09:54 
Он нативный, быстрее и вообще был написан для iOS, где на вот этих ваших Python/Java/Ruby без костылей не попишешь

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 10:21 
Это когда через LLVM, то нативный? Это сейчас такое у хипстеров нативным называется?
А вот Python - да, нативный.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Ordu , 30-Мрт-18 11:37 
Ну вот сами и жрите своё нативное интерпретируемое гно с утиной типизацией и GIL. Хотя, java тут несколько выбивается -- там всё же многое можно решить статической типизацией, а если и динамической, то хотя бы доступ к полю не через хештабличку по имени. Но интерпретируемость тем не менее остаётся.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимусис , 30-Мрт-18 14:55 
Тсс, obj-c runtime тоже с утиной типизацией ;)

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 14:18 
> Это когда через LLVM, то нативный?

Да

>А вот Python - да, нативный.

Нет, интерпертируемый


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено bOOster , 30-Мрт-18 14:30 
> А вот Python - да, нативный.

Охренненно в лужу пернул...


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено trdm , 30-Мрт-18 11:03 
> Он нативный

нативные языки для компьютера - только машинные коды.
Остальные языки требуют обработки для упаковки в машинные коды.
Т.о. чистых нативных популярных языков просто нет в природе.
Как и нативных контролов - они все популисткие допущения.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 11:08 
Ну значит моё допущение, я имел ввиду компилируемый, как собственно написали чуть ниже

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено rscx64_ , 30-Мрт-18 09:56 
swift это компилируемый язык а не интерпретируемый, почему ты вообще его сравниваешь с ruby/python/остальными? просто игнорируй факт того что он существует

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено bOOster , 30-Мрт-18 14:33 
>> чтобы на swift  backend ы пилить
> В чем преимущества языка по сравнению с Pyhon/Java/Ruby и т.п.?

Вообще отличное сравнение. Язык уровня С++ который практически напрямую ложиться в машинные коды, сравнивать с интерпретаторами и виртуальными машинами. Все в кучу...
-"Вы уж либо трусы наденьте, либо крестик сымите"


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено ДяДя , 30-Мрт-18 09:43 
> Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты.

Это оксюморон!!!
Формально с точки зрения теории сборки мусора подсчёта ссылок на объекты является сборкой мусора.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 09:50 
Хер там, циклические зависимости подсчет ссылок не разрулит.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено angra , 30-Мрт-18 09:59 
Погугли weak reference
У каждого сборщика мусора есть свои проблемы. Но наличие проблем не превращает их в другие сущности. Другое дело, что большинство технически безграмотно и считает трассирующие сборщики мусора их единственным вариантом.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 23:29 
>Погугли weak reference

Я прекрасно знаю что такое weak reference. И то что их ставить надо руками. В отличие от сборщика мусора где просто все работает само и ничего делать не надо.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Alexey , 30-Мрт-18 09:55 
в Swift подсчет ссылок выполняется на этапе компиляции а не выполнения как в Java. На мобилках отсутствие GC визуально заметно.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено angra , 30-Мрт-18 10:04 
В java вообще не выполняется подсчет ссылок, там принципиально другой сборщик мусора. Ну и задача тебе на каникулы, напиши программу, которая примет от пользователя число, а потом создаст массив с количеством объектов, равным введенному числу, а потом по очереди их из массива уберет. Помедитируй над подсчетом ссылок во время компиляции в этом случае.



"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Alexey , 30-Мрт-18 10:31 
А в чем проблема? Код arc не читал, но документация утверждает что после прекращения использования объекта он зарелизится (уменьшится количество ссылок на 1), если количество сылок будет равно 0 то объект удалится. Это раньше надо было делать руками в Objective-C, с появлением arc просто пропала необходимость писать [object release].

> В java вообще не выполняется подсчет ссылок, там принципиально другой сборщик мусора.

возможно я ошибся, на java не пишу


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Очередной аноним , 30-Мрт-18 11:59 
Что-то от Ваших слов в моих слабых ограниченных мозгах просто какой-то аццкий лютый диссонанс происходит.

> в Swift подсчет ссылок выполняется на этапе компиляции

Вам указали, что в общем случае компилятор не может знать сколько объектов будет создано в процессе работы программы, которая ещё только компилируется в данный момент, ибо как минимум (компилятор) не знает, какие данные придут извне для обработки (какой будет пользовательский ввод, или что придет с файловой системы или по сети). Но Вы тут же:

> Код arc не читал, но документация утверждает что после прекращения использования
> объекта он зарелизится (уменьшится количество ссылок на 1), если количество сылок
> будет равно 0 то объект удалится.

В Вашем Swift-мирке компилятор (то самое, что компилирует исходный код) в процессе своей работы ещё и выполняет компилируемую программу? И даже входные данные для обработки тут же откуда-то получает?


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Crazy Alex , 30-Мрт-18 12:13 
Вы путаете автоматический подсчёт ссылок (который делается в рантайме, разумеется, но не требует явных указаний со стороны программиста) с "подсчётом на этапе компиляции" что, разумеется, невозможно кроме совсем уж частных случаев или введения очень жёстких правил доступа и контроля времени жизни, как в Rust.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Alexey , 30-Мрт-18 13:51 
абсолютно верно, я был неаккуратен в формулировках

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено ДяДя , 30-Мрт-18 10:27 
> в Swift подсчет ссылок выполняется на этапе компиляции

Это невозможно.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено ДяДя , 30-Мрт-18 10:29 
>в Swift подсчет ссылок выполняется на этапе компиляци

Это невозможно в нашей Вселенной.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Alexey , 30-Мрт-18 10:38 
имел ввиду добавление retain/release методов в код делает компилятор

https://developer.apple.com/library/content/releasenotes/Obj...


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено _hide_ , 30-Мрт-18 10:31 
Не является. Потому что подсчет ссылок приводит к перманентному удалению объекта, а не к отложенной очистке.
Так что подсчет ссылок и сборка мусора является способами управления жизненным циклом объектов, просто частенько их используют вместе.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено ДяДя , 30-Мрт-18 12:03 
См. первоисточники.
Чисто формально в OpenJDK вообще не сборка мусора, а поиск живых объектов.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимусис , 30-Мрт-18 14:58 
autorelease pool --- это не отложенная очистка?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним84701 , 30-Мрт-18 13:02 
>> Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты.
> Это оксюморон!!! Формально с точки зрения теории сборки мусора подсчёта ссылок на объекты является
> сборкой мусора.

Это маркетология.
Да и вообще, ARC звучит круче и солидней, чем "банальный и медленный счетчик ссылок, как в том же CPython, но без разруливания циклических зависимостей".


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимусис , 30-Мрт-18 15:00 
> Да и вообще, ARC звучит круче и солидней, чем "банальный и медленный счетчик ссылок, как в том же CPython, но без разруливания циклических зависимостей".

во-первых arc = automatic reference counting, перевод нужен?

во-вторых в питоне все же другой алгоритм


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Andrey Mitrofanov , 30-Мрт-18 15:08 
>> Да и вообще, ARC звучит круче и солидней, чем "банальный и медленный счетчик ссылок, как в том же CPython, но без разруливания циклических зависимостей".
> во-первых arc = automatic reference counting, перевод нужен?

Так вот вы про какой http://www.arclanguage.org/ "arc".

Что ж вы сразу-то молчали? :7

> во-вторых в питоне все же другой алгоритм


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним84701 , 30-Мрт-18 15:17 
>> Да и вообще, ARC звучит круче и солидней, чем "банальный и медленный счетчик ссылок, как в том же CPython, но без разруливания циклических зависимостей".
> во-первых arc = automatic reference counting, перевод нужен?

Ох уж эти фанаты.
С чего это вы взяли, что аббревиатура мне не знакома или требует перевода?

А фигурирует оно везде почему-то как "ARC", хотя вне ябла обычно ограничиваются "ref(erence) count(ing)", т.к. всем причастным ясно, что оно, в этом контексте, обычно таки всегда автоматическое. Потому что при неавтоматическом можно и сразу ручками проставлять free, вместо заботливого выписывания "inc(refX);dec(refY)" для тормозной обертки.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимусис , 30-Мрт-18 18:10 
>С чего это вы взяли, что аббревиатура мне не знакома или требует перевода?

а потому что вы так свои комменты формулируете

>Потому что при неавтоматическом можно и сразу ручками проставлять free, вместо заботливого выписывания "inc(refX);dec(refY)" для тормозной обертки.

молодой человек, вы таки хотите сказать, что kobject_put в этом вашем л-нуксе тормозной? (я надеюсь, вы сможете нагуглить что оно делает без сторонней помощи)


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним84701 , 30-Мрт-18 18:33 
>>С чего это вы взяли, что аббревиатура мне не знакома или требует перевода?
> а потому что вы так свои комменты формулируете

В общем, из серии "сам додумал, сам оспорил" …

>>Потому что при неавтоматическом можно и сразу ручками проставлять free, вместо заботливого выписывания "inc(refX);dec(refY)" для тормозной обертки.
> молодой человек, вы таки хотите сказать, что kobject_put в этом вашем л-нуксе

Дедуля, про контекст, см "оно, в этом контексте"  в предыдущем предложении было не ради красного словца написано. А то ведь ref. counting много где еще применяется - см. тот же гткшный gobject или ФС.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимусис , 30-Мрт-18 19:08 
>Дедуля, про контекст, см "оно, в этом контексте" (т.е. – ЯП) в предыдущем предложении было не ради красного словца написано.

внучек, контекст заключается в том, что "подсчет ссылок" и "использование malloc/free" --- это ни разу не антонимы, это во-первых.

во-вторых, можно ручками (как в л-нуксе) прописывать вызовы к манипуляторам рефкаунта, а можно сделать так, чтобы компилятор сам это делал. собственно ябл и сделал второе


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним84701 , 30-Мрт-18 19:37 
>>Дедуля, про контекст, см "оно, в этом контексте" (т.е. – ЯП) в предыдущем предложении было не ради красного словца написано.
> внучек, контекст заключается в том, что "подсчет ссылок" и "использование malloc/free"
> --- это ни разу не антонимы, это во-первых.

Дедуля бы меньше додумывал и читал между строк, особенно про какие-то антонимы, а то ведь уже второй раз что-то придумывает и тут же опровергает …

> во-вторых, можно ручками (как в л-нуксе) прописывать вызовы к манипуляторам рефкаунта,
> а можно сделать так, чтобы компилятор сам это делал. собственно ябл и сделал второе

Можно, разрешаю! Все лучше, чем сравнивать ядерное, сишное  API и концепт на уровне ЯП с автоматическим управлением памятью.

Разъясняю:
кроме (и задолго до) Ябла то же самое [ARC, "манипуляция" счетчика на уровне ЯП/компилятора] сделала еще куча разработчиков, в куче ЯП/ЯП-реализаций: начиная скриптухой вроде питона или перла, частично-опционально плюсы с их смартпоинтерами (тот же shared-pointer) и вплоть до такой "маргинальщины", как гнумовские vala или geany, реализованные буквально в одно-два лица, студентами (как минимум, в случае с vala).
Но громко орут, похваляются (и чуть что – оскорбляются), преподнося все как "великое достижение", каждый раз только надкушенные – _вот это_ и есть контекст "про ЯП" и вообще, этой ветки, дедуля ;)



"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимусис , 31-Мрт-18 15:07 
>Но громко орут, похваляются (и чуть что – оскорбляются), преподнося все как "великое достижение", каждый раз только надкушенные – _вот это_ и есть контекст "про ЯП" и вообще, этой ветки, дедуля ;)

внучек, ты же в курсе, что в старых версия gcc (там где еще был obj-c), нет ARC? потому что реализовать ARC в терминах gcc было нереальной задачей и именно поэтому ябл переехала на шланг.

а про достижение - во времена java/go/python/js/c#, использование ARC вместо тормозного gc можно и нужно считать достижением


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним84701 , 31-Мрт-18 17:41 
> внучек, ты же в курсе, что в старых версия gcc (там где
> еще был obj-c), нет ARC? потому что реализовать ARC в терминах gcc было нереальной задачей и именно поэтому ябл переехала на шланг.

О как? Причина, оказывается, уже не пробно-успешное коммерческое (закрытое) использование LLVM Яблом и одновременный переход GCC на GPLv3, а "неосиляние", тьху, "нереальность" решения задачи, с которой справились два студня (см. vala)
Ясно. Понятно . *ищет вилку, чтобы снять лапшу с ушей*

> а про достижение - во времена java/go/python/js/c#, использование ARC вместо тормозного gc можно и нужно считать достижением
> использование ARC вместо тормозного gc

Достижением маркетолугов Ябла – безусловно.  Именно об этом и речь - ARC оказывается уже  совсем не тормозит (повторять перед зеркалом каждое утро) и вообще,  не является одной из разновидностей GC.
В общем,
/0


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Crazy Alex , 30-Мрт-18 18:17 
Оно ARC потому что до 2013-го, кажется, года оно именно ручным и было (плюс костыль NSAutoreleasePool), а потом эппл таки сподобилась сделать автомат и обозвала это дело ARC.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено ктота , 30-Мрт-18 09:50 
исправьте: не сборки языка, а сборки компилятора.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено A.Stahl , 30-Мрт-18 09:53 
А ведь там наверное не только компилятор, но и стандартная либа, линковщик, дебаггер, профайлер...
Так что это проще назвать "язык" и не заниматься излишним буквоедством.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 13:37 
Там не только компилятор, но и стандартная библиотека и спецификации на сам язык.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 13:40 
> Там не только компилятор, но и стандартная библиотека и спецификации на сам
> язык.

Т.е. обновился именно язык, а в компиляторе лишь обеспечили поддержку изменений.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 10:08 
Нет, ну, конечно, есть надежда, что будет реализована возможность разработки для IOS на Linux дистрах...

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено anonas , 30-Мрт-18 10:27 
писать то можно на чем угодно, вот скомпилировать и залить в стор получается только на маке :(

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 31-Мрт-18 05:59 
> писать то можно на чем угодно, вот скомпилировать и залить в стор
> получается только на маке :(

И правильно, нефиг плодить разработчиков-маргиналов.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 30-Мрт-18 10:17 
как они задолбали со своими новыми версиями. вместо того чтобы код писать, постоянно приходится разруливать результаты преобразования к очередному диалекту.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено A.Stahl , 30-Мрт-18 10:35 
Сишники и плюсовики удивлённо переглядываются и хохмы ради пытаются вспомнить когда в последний раз новый стандарт ломал что-то такое, что к этому моменту не успело безнадёжно устареть и иногда кем-то использовалось.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Crazy Alex , 30-Мрт-18 11:26 
Ну так это ж не эппловская песочница, где разработчиков можно куда угодно загнать. А сишный или плюсовый "стандарт", ломающий совместимость, тупо остался бы на бумаге.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено iPony , 30-Мрт-18 12:12 
> Сишники и плюсовики удивлённо переглядываются и хохмы ради пытаются вспомнить когда в последний раз новый стандарт ломал что-то такое,

А мне вот что-то плакать хочется 😢
Потому что, если ты чисто пишешь Hello World ы то, это дно. А на практике все равно со всеми стыками взаимодействия ломается всё и вся.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено A.Stahl , 30-Мрт-18 12:16 
>ломается

Ну расскажи нам поучительную историю...


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимусис , 30-Мрт-18 15:03 
std::auto_ptr removed in C++17. Не для всех платформ есть компиляторы с C++11



"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Crazy Alex , 30-Мрт-18 18:18 
Для всего хоть как-то актуального есть минимум 14 плюсы. В которых, да, auto_ptr заменили на share_ptr + unique_ptr.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимусис , 31-Мрт-18 14:58 
>Для всего хоть как-то актуального

у вас актуальное только винда да лялекс

для глубокого эмбеддеда не все так однозначно


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено iZEN , 30-Мрт-18 12:15 
Нужно больше языков на разных версиях LLVM. У меня, например, на FreeBSD сейчас два LLVM-5.0.1: системный и прикладной для Mesa3D и Rust и ещё один LLVM-6.0.0 ждёт своего часа для обновлённого порта Rust (который будет использоваться в будущих версиях Firefox, выходящих через неделю). Ждём чего-то полезного на Swift, который к тому времени будет требовать LLVM-7.0.0.

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Moomintroll , 30-Мрт-18 14:16 
> Swift, который к тому времени будет требовать LLVM-7.0.0

Когда я последний раз смотрел на Swift, он требовал патченного LLVM и, соответственно, не мог использовать системный...

С тех пор что-нибудь изменилось?


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним84701 , 30-Мрт-18 14:18 
> будет использоваться в будущих версиях Firefox, выходящих через неделю). Ждём чего-то
> полезного на Swift, который к тому времени будет требовать LLVM-7.0.0.

Могу "посоветовать" pure (" Modern-style functional programming language", в чем-то прикольный ЯП, основывающийся на term-rewriting) - зависит от llvm 3.5, openshadinglanguage (llvm 4.0), ponyc ("Pony language compiler") - llvm 5.0.
Для полноты набора, так сказать :)


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 31-Мрт-18 03:31 
Пока яблойды не портируют свою Какоу или Кокау или каккау под линус толку от всех этих языков просто не будет. А по понятным причинам какуау портировать не будут так как она наследине некста и вообще у линукойдов свой гтк на пару с аляпистым кутэ

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 01-Апр-18 11:36 
Сколько весит hello world! на Swift?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено csdoc , 01-Апр-18 16:26 
> Сколько весит hello world! на Swift?

Hello.swift:

print("Hello, World!")

бинарник с отладочной информацией получается 14808 байт,
если сделать strip - будет 11408 байт.

$ swift -version
Swift version 4.1 (swift-4.1-RELEASE)
Target: x86_64-unknown-linux-gnu

P.S.

Swift можно поставить на убунту и самому попробовать, https://swift.org/download/


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено 1 , 03-Апр-18 09:15 
А рантайм сколько?

"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено csdoc , 01-Апр-18 16:51 
подробное объяснение, почему в Swift сделали ARC
и не сделали полноценный GC, как например, в Java:

https://lists.swift.org/pipermail/swift-evolution/Week-of-Mo...
[swift-evolution] What about garbage collection?

[...]

> Has a GC been considered at all?

GC also has several *huge* disadvantages that are usually glossed over: while it is true that modern GC's can provide high performance, they can only do that when they are granted *much* more memory than the process is actually using.  Generally, unless you give the GC 3-4x more memory than is needed, you’ll get thrashing and incredibly poor performance.  Additionally, since the sweep pass touches almost all RAM in the process, they tend to be very power inefficient (leading to reduced battery life).

I’m personally not interested in requiring a model that requires us to throw away a ton of perfectly good RAM to get an “simpler" programming model - particularly on that adds so many tradeoffs.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Анонимный аноним , 01-Апр-18 20:43 
> подробное объяснение, почему в Swift сделали ARC и не сделали полноценный GC, как например, в Java:
> https://lists.swift.org/pipermail/swift-evolution/Week-of-Mo...

Оттуда же, для танкистов:
> Technically speaking, reference counting is a form of garbage collection,
> Since there are multiple forms of GC, I'll assume that you mean a generational mark and sweep algorithm like you’d see in a Java implementation.


"Компания Apple выпустила язык программирования Swift 4.1"
Отправлено Аноним , 03-Апр-18 20:10 
Судя по списку зависимостей с Арча https://aur.archlinux.org/packages/swift/
swift 4.1 живет на llvm 4.1