LINUX.ORG.RU

Apple открыла исходный код Swift

 apache license, , , ,


1

5

Стал доступен исходный код языка программирования Swift от Apple. Теперь сторонние разработчики могут присылать багфиксы, улучшения и приносить Swift на другие платформы.

Исходный код доступен под лицензией Apache License 2.0.

Репозиторий на GitHub

>>> Подробности

★★★★★

Проверено: beastie ()
Последнее исправление: cetjs2 (всего исправлений: 3)

Ответ на: комментарий от tailgunner

Лучше бы ты сванговал судьбу Rust и Swing
Swing

Тонко! Убогонький недоязычок для гомосеков-свингеров, лол.

anonymous
()
Ответ на: комментарий от umren

Давай начнем сначала, я кратко опишу почему [дальше куча маркетолухного бреда]

Забаньте спамера!

anonymous
()
Ответ на: комментарий от menangen

Там на самом деле проблема была в том, что дефолтно с "-j8" собирается, и на стадии линковки финальной оно просто не могло поместиться в память.

nightuser
()
Ответ на: комментарий от anonymous

Поддерживаю, я столько пропаганды на Первом канале не видел.

anonymous
()
Ответ на: комментарий от Xenius

Это мы уже проходили на примере ICQ и Jabber — джаббер по всем параметрам был и остаётся лучше, но мало кто на него переходят, потому что не хотят терять старые контакты и из-за привычки.

Тем не менее, сейчас и тем и другим мало кто пользуется. А используют всякие скапы. Значит чем-то он всё-таки оказался лучше, что люди даже стали ради этого привычки ломать и контакты перетаскивать/терять.

Не было бы проприетарного софта как явления, кто-нибудь написал бы программы не хуже по остальным характеристикам, но свободные.

А сейчас кто мешает?

DarkEld3r ★★★★★
()
Ответ на: комментарий от umren

Ты столько воды генерируешь, тебе в политики надо. Что тут, что там твоя тема о «прогнозах».

anonymous
()
Ответ на: комментарий от umren

Swift - язык хорошего калибра, который совмещает в себе приятные абстракции с удобством использования, язык который отказался от GC в пользу ARC, что позволяет ему решать задачи в рилтайме, в отличии от тормозов GC, понятно почему это нужно, ведь первичный прицел это iOs и OSX инфраструктура, аудио и видео редакторы, игры и работы с графикой и прочее.

Так всё равно же штраф на производительность. Есть у тебя массив из 1000 объектов, ты 1000 раз в секунду его туда-сюда гоняешь, 1000 раз в секунду считаются ссылки: 1000*1000*2=2000000. Вот тебе два милиона подсчёта ссылок.

Про Го тоже сначала говорили, что вот, ГЦ, это необходимое зло, но столько преимуществ, столько преимуществ. А на деле кроме С++ вариантов не остаётся. Потому что он может и GC, и ARC, а может и без них когда надо.

Для эппловских телефончиков может быть сгодится, как Go для замены питона на серверах, но зачем эта вся морока нормальным людям? Айфоны теперь на свифте, а не на ObjC? Ну поздравляем.

А все эти Rust'ы и голанги зачем по большому счёту? Программисты более низкой квалификации могут ими пользоваться? Ну хорошо, но зачем других-то агитировать на этоО?

anonymous
()
Ответ на: комментарий от umren

Здесь нет каких-то дурацких идей типа «мы это не добавляли, потому что мы считаем что это не нужно».

Хм... ну исключений, например, в свифте тоже нет. Да, их нет и в обжектив-С, но причина-то как раз «потому что мы считаем, что это не нужно».

DarkEld3r ★★★★★
()
Ответ на: комментарий от tailgunner

Всё в кучу - Rust, Си++, Swift. Еще раз - что ты пытаешься доказать?

Что адекватность и продуманность Rust не касаются удобства его использования. А значит мейнстримом ему не быть. Тем более, что все его преимущество (за которое сполна платит программист) - безопасность, которая и так есть практически во всех языках. Единственно кого он может потеснить - С и С++. И то местами (С, например, слишком «укоренился»). И только при волевом решении и наличии энтузиастов, как в Mozilla. И то, если повезет хотя бы переписать готовые компоненты. Ведь, если взять servo, то его уже и не обещают в ближайшее время. А бенчмарки от авторов говорят, что и с производительностью все не так уж и хорошо:

http://i.imgur.com/kycQy5B.png http://i.imgur.com/2nTtUVk.png

При том, что в servo многое еще просто не реализовано.

Приведенный тобой код на Swift точно компилируется?

Да, только кавычки перепутал:

var count : [Character: Int] = [ "s" : 8 ];
print( count["s"] == 8 );
---------------
true
anonymous
()
Ответ на: комментарий от umren

Rust - фанатики плюсов очень аккуратно и с ненавистью на него смотрят, аудитории нет.

Фантики чего угодно на конкурентов смотрят «с ненавистью». Они и на свифт так смотреть будут. Конечно, если это не фанатики яблока или (наверное) обжектив-С.

DarkEld3r ★★★★★
()
Ответ на: комментарий от DarkEld3r

Их нет потому что проброска по стеку - дорогая операция. А тут как бы производительность и рилтайм нужны.

umren ★★★★★
()
Ответ на: комментарий от DarkEld3r

Они и на свифт так смотреть будут.

Да пускай смотрят, они же не аудитория. А у Rust аудитории с «улицы» взяться тупо неоткуда, она должна придти с C++/C, но те не идут. Вот такой вот тупичок.

umren ★★★★★
()
Ответ на: комментарий от anonymous

А я плюсовиков не агитирую, понятно, что им в Swift делать нечего.

umren ★★★★★
()
Ответ на: комментарий от Xenius

Может быть их наличие (проприетарных программ) как раз снижает спрос на свободные альтернативы?

А может быть просто делать так же по качеству или лучше? В серверной/девелоперской сфере опенсорс - это обычное явление, а в хомячковой сфере - нет. Почему? Потому что способы получения прибыли кардинально разные. Если тебе это не нравится, то в другую вселенную. Свобода и определяется естественным отбором, а не бредом типа «Запретить!!!»

Это мы уже проходили на примере ICQ и Jabber — джаббер по всем параметрам был и остаётся лучше

Как там с видео? В ICQ запилили же. Да и сам ICQ очень сильно сдал конкурентам. Так всегда - если появится лучшая альтернатива, пользователи потихоньку будут перетекать на неё.

fornlr ★★★★★
()
Ответ на: комментарий от anonymous

Еще раз - что ты пытаешься доказать?

Что адекватность и продуманность Rust не касаются удобства его использования.

Смотря с чем сравнивать. Променял бы Си на Rust без колебаний. Насчет Си++ сказать труднее - пока плохо знаю современный Си++.

А значит мейнстримом ему не быть.

Возможно. Время покажет.

Приведенный тобой код на Swift точно компилируется?

Да

Уже неважно, см. Apple открыла исходный код Swift (комментарий)

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Про типы данных не слышал, лолка? http://is.gd/aNewiS

<tailguner> Это неравнозначный код, который заставит программу паниковать. Так что сам ты лолка, к типам это отношения не имеет. </tailguner>

anonymous
()
Ответ на: комментарий от anonymous

Это неравнозначный код,

Не я это начал.

который заставит программу паниковать

И? assert в Си++ просто прибьет программу.

Так что сам ты лолка, к типам это отношения не имеет.

Это имеет отношение к краткости записи. Внезапно получается, что по этому показателю Rust не хуже Swift.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Не я это начал.

Это твоя типичная придирка, которая была и в этом обсуждении.

И? assert в Си++ просто прибьет программу.

Так к assert в rust никаких претензий и нет, речь про выражение внутри. Надо было его отдельно вырезать.

anonymous
()
Ответ на: комментарий от fornlr

А может быть просто делать так же по качеству или лучше?

Этого самого по себе не достаточно. Нужно рассказывать пользователям о гражданских правах, чтобы они понимали, что несвободный софт — это несправедливо.

В серверной/девелоперской сфере опенсорс - это обычное явление, а в хомячковой сфере - нет. Почему?

Во-первых, нужно всегда говорить о Свободном ПО, а не об опенсорце. Эти понятия описывают приблизительно то же самое, но с совершенно разных позиций — с этической и технической. Этическая сторона гораздо важнее, а то, что при таком подходе софт получается более качественным — это побочный эффект. Смотри ссылку выше.

Во-вторых, возможно как раз дело в том, что среди разработчиков и администраторов гораздо больше людей понимает этические критерии СПО, а не ведётся слепо на рекламу? За счёт чего они во-первых, выбирают свободный софт, а во-вторых, улучшают, из-за чего он становится лучше и его выбирает всё большее число админов и девелоперов — возникает цепная реакция. А «хомячки» гонятся за красивыми иконками, не понимая, что проприетарщина их банально унижает или считая это нормальным.

Xenius ★★★★★
()
Ответ на: комментарий от tailgunner

Это имеет отношение к краткости записи. Внезапно получается, что по этому показателю Rust не хуже Swift.

Для неравнозначного кода, который не сможет работать, если элемент не найден. И я бы принял твой аргумент, но код с Some взят из документации Rust, т.е. это мнение разработчиков, что именно так надо писать.

anonymous
()
Ответ на: комментарий от anonymous

речь про выражение внутри

Ну так расскажи мне, чем приведенный анонимусом код на Rust не эквивалентен твоему:

assert_eq!(count.get(&'s'), Some(&8));

Ну, кроме того, что его код реально компилируется.

tailgunner ★★★★★
()
Ответ на: комментарий от Xenius

Во-вторых, возможно как раз дело в том, что среди разработчиков и администраторов гораздо больше людей понимает этические критерии СПО

Наверно. Этак если среди разработчиков это «понимает» 1%, а среди хомячков 0.01%, то это в 100 раз! Ну только связи то нет - ибо деньги правят миром.

ЗЫ: «Только религиозные фанатики и правительства тоталитарных государств приравнивают мораль к законности» (c) Линус Торвальдс

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от tailgunner

не эквивалентен твоему:
Ну, кроме того, что его код реально компилируется.

Аууу, прочисть уши. Это пример из документации Rust.

assert_eq!(count.get(&'s'), Some(&8));

Еще раз напомню, что get не вызывает панику.

anonymous
()
Ответ на: комментарий от anonymous

Аууу, прочисть уши. Это пример из документации Rust.

Да пофиг, нашел ты некомпилябильный фрагмент кода на помойке или тщательно вырезал из официальной доки.

Еще раз напомню, что get не вызывает панику.

Т.е. неэквивалентность в том, что в одном случае программу прибьет assert при отсутствии в массиве ключа 's', а в другом... программа хавершится по панике при отсутствии в массиве ключа 's'. Блин, и эти люди говорят о том, что это я к ним придираюсь.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от fornlr

приравнивают мораль к законности

И к чем это здесь? Вроде никто мораль к законности не приравнивает, кроме некоторых проприетарщиков разве что?

Наверно. Этак если среди разработчиков это «понимает» 1%, а среди хомячков 0.01%, то это в 100 раз! Ну только связи то нет - ибо деньги правят миром.

Выдал кучу несвязанных утверждений и стереотипов. Сказать-то что хотел?

Xenius ★★★★★
()
Ответ на: комментарий от tailgunner

Да пофиг, нашел ты некомпилябильный фрагмент кода на помойке или тщательно вырезал из официальной доки.

Ты не поверишь, но в доке тоже некомпилябильные фрагменты кода. Вот же ж гады, а. Но ладно, вот, что там выше было:

use std::collections::btree_map::BTreeMap;

let mut count = BTreeMap::new();
let message = "she sells sea shells by the sea shore";

for c in message.chars() {
    *count.entry(c).or_insert(0) += 1;
}

assert_eq!(count.get(&'s'), Some(&8));

Тут, кстати, *count.entry(c).or_insert(0) += 1; тоже эпично выглядит, вместо count[c]++.

Т.е. неэквивалентность в том, что в одном случае программу прибьет assert при отсутствии в массиве ключа 's', а в другом... просто отсутствии в массиве ключа 's'. Блин, и эти люди говорят о том, что это я к ним придираюсь.

Забудь уже про assert. Код не на ассертах пишут. Ты выдрал из выражения самое ненужное и теперь уже не можешь отстать от него.

anonymous
()
Ответ на: комментарий от tailgunner

Т.е. неэквивалентность в том, что в одном случае программу прибьет assert при отсутствии в массиве ключа 's', а в другом... программа хавершится по панике при отсутствии в массиве ключа 's'. Блин, и эти люди говорят о том, что это я к ним придираюсь.

А ты реально глупый. Хотя бы ради интереса нажал на кнопочку «AMS» там в примере с кодом руста и окуел от того во что эта херня разворачивается.

И эти люди еще что-то смеют тявкать про UB в сишке с массивами и рассуждают со всей уверенностью про «равнозначность» кода...тьфу, чмо позорное

anonymous
()

Swift, какое изящное слово. Свифт-свифт-свифт... Как звук скольжения на половом члене вниз-вверх. Наверное, это гениальное название придумал именно нынешний глава Apple. Вот и перевод «быстро, поспешно, на стягивать».

anonymous
()
Ответ на: комментарий от anonymous

А ты реально глупый

Напиши уже себе на лбу «tailgunner реально глупый», лучше в зеркальном отражении, и не тревожь меня больше.

И эти люди еще что-то смеют тявкать про UB в сишке
в сишке

Характерное слово, выдающее невежественную школоту с понтами.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

и окуел от того во что эта херня разворачивается.

Это как раз не проблема, в С++ будет что-то похожее. В Swift вероятно нет, но там и скорость будет значительно меньше. А если говорить про С, то там вообще в стандартной библиотеке ничего подобного нет, а сторонняя «херня» будет не меньше.

anonymous
()
Ответ на: комментарий от tailgunner

по теме нечего сказать - переходи на личности, лол.

обосрался - сиди в сторонке, чмошечка.

anonymous
()
Ответ на: комментарий от anonymous

по теме нечего сказать - переходи на личности, лол.

Да ладно, ты и по теме первым перестал говорить, и на личности перешел первым.

чмошечка

Утипути. Иди, пиши на лобике, не захламляй тему.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Да ладно, ты и по теме первым перестал говорить, и на личности перешел первым.

Это ты общаешься с совсем новым анонимусом, если что.

// Старый анонимус

anonymous
()
Ответ на: комментарий от anonymous

А ты какой-то блять самозванец. Ну-ка быстро залогинься!

anonymous
()
Ответ на: комментарий от anonymous

Анонимус не может быть старым или новым. Анонимус един вне времени и пространства!

Может, если это анонимус Шредингера.

anonymous
()
Ответ на: комментарий от anonymous

Сишка царя в канпеляторе, все в тред!

anonymous
()

скока анонимусов в треде то

umren ★★★★★
()
Ответ на: комментарий от menangen

Я попробовал, но, что логично, тормозило страшно (даже несмотря на не самый плохой SSD), в итоге просто в один поток линковал.

nightuser
()
Ответ на: комментарий от umren

Их нет потому что проброска по стеку - дорогая операция.

Ну то есть как раз потому что «мы считаем, что вы не в состоянии применять исключения только там, где надо». И ты так говоришь, что на свифте сплошной риалтайм писать будут.

DarkEld3r ★★★★★
()
Ответ на: комментарий от umren

А у Rust аудитории с «улицы» взяться тупо неоткуда, она должна придти с C++/C, но те не идут.

Я на гитхабе несколько другую статистику вижу.

DarkEld3r ★★★★★
()
Ответ на: комментарий от anonymous

Это неравнозначный код, который заставит программу паниковать

А что assert в свифте делает?

DarkEld3r ★★★★★
()
Последнее исправление: DarkEld3r (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.