The OpenNET Project / Index page

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



"Компания Apple выпустила язык программирования Swift 4.1"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от opennews (??) on 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.dev/opennews/art.shtml?num=48358

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Компания Apple выпустила язык программирования Swift 4.1"  +4 +/
Сообщение от Аноним (??) on 30-Мрт-18, 09:20 
Кто - нибудь объяснит: для чего официальные сборки подготавливают для Linux?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Компания Apple выпустила язык программирования Swift 4.1"  +11 +/
Сообщение от A.Stahl (ok) on 30-Мрт-18, 09:23 
Реклама. "Какие мы открытые и вы, сраные прыщавые очкарики, тоже можете приобщиться к прекрасному и подумать иначе". А технически, вероятно, поддержка двух платформ почти ничего не стоит. Поэтому под Винду и нет версии.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Компания Apple выпустила язык программирования Swift 4.1"  –3 +/
Сообщение от Солнышко (??) on 30-Мрт-18, 09:39 
Основа потому что nix.

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

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

13. "Компания Apple выпустила язык программирования Swift 4.1"  +5 +/
Сообщение от rscx64_ on 30-Мрт-18, 09:55 
может вдруг его не для целей "заменить твой clojure" делали? может для своих яблочных задач?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

34. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Солнышко (??) on 30-Мрт-18, 11:19 
Вы лично какие-такие яблочные задачи на Linux собираетесь решать?
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

64. "Компания Apple выпустила язык программирования Swift 4.1"  –6 +/
Сообщение от Аноним (??) on 30-Мрт-18, 14:35 
Не знаю как он, но разработчики homebrew поголовно сидят на линуксе. Мак не готов для разработчика.
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

71. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от Anin on 30-Мрт-18, 15:32 
Вас не смущает что homebrew на линуксе это порт от маковской версии?
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

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

87. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 31-Мрт-18, 03:29 
Да ну вон там уже зашкаливает версия в .NET и я слышал окна можно вращать в WPF ;)
Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

89. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 31-Мрт-18, 04:03 
Хм, а чем консолька в линуксе отличается от консольки в маке?
Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

92. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 31-Мрт-18, 11:18 
Ничем, но утилит для работы с консолькой больше в линуксе и проще развернуть среду разработки на линуксе.
Ответить | Правка | ^ к родителю #89 | Наверх | Cообщить модератору

90. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от Аноним (??) on 31-Мрт-18, 05:53 
>Мак не готов для разработчика

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

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

15. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от Alexey (??) on 30-Мрт-18, 09:59 
Вам он скорей всего никогда не понадобится. Его ниша - приложения для iOS, macOS и всего остального от эппл. Можно писать консольные и серверные приложения для Linux, но здесь наверно не взлетит т.к. много конкурентов. Как язык для бекенда его IBM пытается двигать: https://developer.ibm.com/swift/
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

61. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от bOOster (ok) on 30-Мрт-18, 14:28 
Похожая разновидность ООЯП используется для программирования контроллеров XMOS. Даже можно сказать брат близнец, но с интересными доработками полного параллелизма многоядерной аппаратной реализации этих контроллеров.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

24. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от _hide_ (ok) on 30-Мрт-18, 10:27 
Вам бы в википедию заглянуть :-)
А то Ваш вопрос обескураживает.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

40. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от Аноним (??) on 30-Мрт-18, 11:55 
Если у Вас последний гном, то есть преимущество. На этом языке можно писать смайлами!
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

43. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Солнышко (??) on 30-Мрт-18, 12:07 
Вы это про стрижа?
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

3. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от anonymous (??) on 30-Мрт-18, 09:34 
Потому что могут?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

44. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Аноним (??) on 30-Мрт-18, 12:09 
Ничего не стоит портировать программу с макоси на линух, потому что оба никсы.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

49. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Аноним (??) on 30-Мрт-18, 12:20 
Вы заблуждаетесь. POSIX - да, nix - нет.
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

53. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Аноним (??) on 30-Мрт-18, 13:10 
В чём собственно разница? Это очередной дистрибутив с нескучными обоями, только закрытый.
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

72. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от kk (??) on 30-Мрт-18, 15:37 
Как вы считаете *BSD сильно от линукса отличается или нет? А солярка? А HP-UX?
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

77. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 30-Мрт-18, 17:09 
Почему нет порта Adobe под FreeBSD если всё так просто?
Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

84. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от kk (??) on 30-Мрт-18, 20:05 
потомучто нет коммерческого смысла?
Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

85. "Компания Apple выпустила язык программирования Swift 4.1"  +3 +/
Сообщение от Аноним (??) on 30-Мрт-18, 20:48 
Линуксоиды пересядут на бздю по такому поводу и от systemd избавятся.
Ответить | Правка | ^ к родителю #84 | Наверх | Cообщить модератору

51. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от papa Ken email on 30-Мрт-18, 13:05 
Swift часть Google Fuchsia...
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 30-Мрт-18, 09:37 
чтобы на swift  backend ы пилить
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Солнышко (??) on 30-Мрт-18, 09:40 
> чтобы на swift  backend ы пилить

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

11. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Аноним (??) on 30-Мрт-18, 09:54 
Он нативный, быстрее и вообще был написан для iOS, где на вот этих ваших Python/Java/Ruby без костылей не попишешь
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

22. "Компания Apple выпустила язык программирования Swift 4.1"  –16 +/
Сообщение от Аноним (??) on 30-Мрт-18, 10:21 
Это когда через LLVM, то нативный? Это сейчас такое у хипстеров нативным называется?
А вот Python - да, нативный.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

37. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Ordu email(ok) on 30-Мрт-18, 11:37 
Ну вот сами и жрите своё нативное интерпретируемое гно с утиной типизацией и GIL. Хотя, java тут несколько выбивается -- там всё же многое можно решить статической типизацией, а если и динамической, то хотя бы доступ к полю не через хештабличку по имени. Но интерпретируемость тем не менее остаётся.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

65. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Анонимусис on 30-Мрт-18, 14:55 
Тсс, obj-c runtime тоже с утиной типизацией ;)
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

59. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от Аноним (??) on 30-Мрт-18, 14:18 
> Это когда через LLVM, то нативный?

Да

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

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

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

62. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от bOOster (ok) on 30-Мрт-18, 14:30 
> А вот Python - да, нативный.

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

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

31. "Компания Apple выпустила язык программирования Swift 4.1"  –4 +/
Сообщение от trdm (ok) on 30-Мрт-18, 11:03 
> Он нативный

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

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

32. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 30-Мрт-18, 11:08 
Ну значит моё допущение, я имел ввиду компилируемый, как собственно написали чуть ниже
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

14. "Компания Apple выпустила язык программирования Swift 4.1"  +7 +/
Сообщение от rscx64_ on 30-Мрт-18, 09:56 
swift это компилируемый язык а не интерпретируемый, почему ты вообще его сравниваешь с ruby/python/остальными? просто игнорируй факт того что он существует
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от Аноним (??) on 30-Мрт-18, 09:50 
Хер там, циклические зависимости подсчет ссылок не разрулит.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

16. "Компания Apple выпустила язык программирования Swift 4.1"  +5 +/
Сообщение от angra (ok) on 30-Мрт-18, 09:59 
Погугли weak reference
У каждого сборщика мусора есть свои проблемы. Но наличие проблем не превращает их в другие сущности. Другое дело, что большинство технически безграмотно и считает трассирующие сборщики мусора их единственным вариантом.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

86. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 30-Мрт-18, 23:29 
>Погугли weak reference

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

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

12. "Компания Apple выпустила язык программирования Swift 4.1"  –6 +/
Сообщение от Alexey (??) on 30-Мрт-18, 09:55 
в Swift подсчет ссылок выполняется на этапе компиляции а не выполнения как в Java. На мобилках отсутствие GC визуально заметно.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

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


Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

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

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

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

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

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

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

46. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Crazy Alex (ok) on 30-Мрт-18, 12:13 
Вы путаете автоматический подсчёт ссылок (который делается в рантайме, разумеется, но не требует явных указаний со стороны программиста) с "подсчётом на этапе компиляции" что, разумеется, невозможно кроме совсем уж частных случаев или введения очень жёстких правил доступа и контроля времени жизни, как в Rust.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

57. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Alexey (??) on 30-Мрт-18, 13:51 
абсолютно верно, я был неаккуратен в формулировках
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

25. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от ДяДя on 30-Мрт-18, 10:27 
> в Swift подсчет ссылок выполняется на этапе компиляции

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

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

27. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от _hide_ (ok) on 30-Мрт-18, 10:31 
Не является. Потому что подсчет ссылок приводит к перманентному удалению объекта, а не к отложенной очистке.
Так что подсчет ссылок и сборка мусора является способами управления жизненным циклом объектов, просто частенько их используют вместе.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

42. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от ДяДя on 30-Мрт-18, 12:03 
См. первоисточники.
Чисто формально в OpenJDK вообще не сборка мусора, а поиск живых объектов.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

66. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Анонимусис on 30-Мрт-18, 14:58 
autorelease pool --- это не отложенная очистка?
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

81. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от Аноним84701 (ok) on 30-Мрт-18, 18:33 
>>С чего это вы взяли, что аббревиатура мне не знакома или требует перевода?
> а потому что вы так свои комменты формулируете

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

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

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

Ответить | Правка | ^ к родителю #78 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #81 | Наверх | Cообщить модератору

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

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

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

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

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


Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

95. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от Аноним84701 (ok) on 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

Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

79. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Crazy Alex (ok) on 30-Мрт-18, 18:17 
Оно ARC потому что до 2013-го, кажется, года оно именно ручным и было (плюс костыль NSAutoreleasePool), а потом эппл таки сподобилась сделать автомат и обозвала это дело ARC.
Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

9. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от ктота on 30-Мрт-18, 09:50 
исправьте: не сборки языка, а сборки компилятора.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Компания Apple выпустила язык программирования Swift 4.1"  +3 +/
Сообщение от A.Stahl (ok) on 30-Мрт-18, 09:53 
А ведь там наверное не только компилятор, но и стандартная либа, линковщик, дебаггер, профайлер...
Так что это проще назвать "язык" и не заниматься излишним буквоедством.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

55. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 30-Мрт-18, 13:37 
Там не только компилятор, но и стандартная библиотека и спецификации на сам язык.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

18. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 30-Мрт-18, 10:08 
Нет, ну, конечно, есть надежда, что будет реализована возможность разработки для IOS на Linux дистрах...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Компания Apple выпустила язык программирования Swift 4.1"  +3 +/
Сообщение от anonas on 30-Мрт-18, 10:27 
писать то можно на чем угодно, вот скомпилировать и залить в стор получается только на маке :(
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

91. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 31-Мрт-18, 05:59 
> писать то можно на чем угодно, вот скомпилировать и залить в стор
> получается только на маке :(

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

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

21. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от Аноним (??) on 30-Мрт-18, 10:17 
как они задолбали со своими новыми версиями. вместо того чтобы код писать, постоянно приходится разруливать результаты преобразования к очередному диалекту.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от A.Stahl (ok) on 30-Мрт-18, 10:35 
Сишники и плюсовики удивлённо переглядываются и хохмы ради пытаются вспомнить когда в последний раз новый стандарт ломал что-то такое, что к этому моменту не успело безнадёжно устареть и иногда кем-то использовалось.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

36. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Crazy Alex (ok) on 30-Мрт-18, 11:26 
Ну так это ж не эппловская песочница, где разработчиков можно куда угодно загнать. А сишный или плюсовый "стандарт", ломающий совместимость, тупо остался бы на бумаге.
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

48. "Компания Apple выпустила язык программирования Swift 4.1"  +3 +/
Сообщение от A.Stahl (ok) on 30-Мрт-18, 12:16 
>ломается

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

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

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


Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

80. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Crazy Alex (ok) on 30-Мрт-18, 18:18 
Для всего хоть как-то актуального есть минимум 14 плюсы. В которых, да, auto_ptr заменили на share_ptr + unique_ptr.
Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

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

58. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Moomintroll (ok) on 30-Мрт-18, 14:16 
> Swift, который к тому времени будет требовать LLVM-7.0.0

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

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

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

60. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним84701 (ok) on 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.
Для полноты набора, так сказать :)

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

88. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Аноним (??) on 31-Мрт-18, 03:31 
Пока яблойды не портируют свою Какоу или Кокау или каккау под линус толку от всех этих языков просто не будет. А по понятным причинам какуау портировать не будут так как она наследине некста и вообще у линукойдов свой гтк на пару с аляпистым кутэ
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

96. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 01-Апр-18, 11:36 
Сколько весит hello world! на Swift?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

97. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от csdoc (ok) on 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/

Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

101. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от 1 (??) on 03-Апр-18, 09:15 
А рантайм сколько?
Ответить | Правка | ^ к родителю #97 | Наверх | Cообщить модератору

98. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от csdoc (ok) on 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.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

99. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Анонимный аноним on 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.

Ответить | Правка | ^ к родителю #98 | Наверх | Cообщить модератору

102. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (??) on 03-Апр-18, 20:10 
Судя по списку зависимостей с Арча https://aur.archlinux.org/packages/swift/
swift 4.1 живет на llvm 4.1
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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