LINUX.ORG.RU

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

 apache license, , , ,


1

5

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

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

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

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

★★★★★

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

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

Все же и свобода и халява пересекаются. Мне ж никто не запретит выложить свои наработки к библиотеке? И не заставит. Эта свобода.

На меня разве что «неодобрительно посмотрят», и, если я буду заинтересован в общении с этими людьми, я выложу свои наработки по предмету. Или просто так выложу, если общий множитель все равно будет, продукт уже себя почти окупил, так пусть не городят свои велосипеды, а воспользуются моим. Сверхприбыли нормальным людям не требуются. Хотя и насаждаются, как основная идея общества сейчас.

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

Как есть...

Летят в самолете хохол харечко и москаль. Тут самолет терпит крушение, хохол харечко успевает схватить кусок сала, а москаль мешок денег. Падают они вдвоем на необитаемый остpов. Чеpез некоторое вpемя захотелось москалю жpать аж невтеpпеж. Подходит он к хохлу: — Слышь, хохол, давай с тобой в базаp поигpаем: Я буду покупателем, а ты пpодавцом. — Давай. Подходит москаль к хохлу харечко, смотpит на сало: — Почем сало? — Мешок денег. — А че так доpого?! — А ты походи по базаpу, может дешевле найдешь.

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

Сейчас примеры назвать так просто сложно по одной причине: очень многие проприетарщики стали закручивать гайки.

Ну то есть ты согласен, что проприетарщина как явление для общества вредна?

заставили шевелиться разработчиков свободного по, чтобы не оказаться совсем в заднице.

Но почему ты думаешь, что именно эти программы заставляют шевелиться? Может быть их наличие как раз снижает спрос на свободные альтернативы? Не было бы проприетарного софта как явления, кто-нибудь написал бы программы не хуже по остальным характеристикам, но свободные.

Хотя тому же скайпу хорошей свободной альтернативы до сих пор нет.

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

вследствие чего пытаются придумать, что бы еще автоматизировать, чтобы создать себе нишу, иначе бабла им не видать.

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

А где флагманом и родоначальником группы софта является свободное по?

Что такое группа софта? Ну вот издательские системы, например. (La)TeX — родоначальник. Но вообще какие группы софта появлялись после 2000 года? Подозреваю, что никакие.

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

Пайк вроде писал, что Go делали как замену С++

Си++ образца 1987 года, наверное

Ну это проблемы Пайка и питонщиков/рубистов которые на это купились

Это совершенно точно не проблемы Пайка.

А в этом свифте-то, чего нового

Смотря с чем сравнивать. По большому счету - ничего.

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

C# как язык на порядок лучше и жабы, и ржавого, и этой яблоподелки

+100500

Вы оба забыли сказать «для задач, которые нужно решать мне лично».

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

Смотря с чем сравнивать. По большому счету - ничего.

Дык все старое, но в приятной упаковке с адекватным синтаксисом и можно грести бабло уже сегодня/вчера. Не вижу причин не радоваться.

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

Не осилили, хотя если посмотреть кто писал - все фанатики плюсов.

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

но в приятной упаковке с адекватным синтаксисом

Приятная упаковка и адекватный синтаксис - это Rust.

и можно грести бабло уже сегодня/вчера. Не вижу причин не радоваться.

Ну, если ты лично можешь на Swift грести бабло лопатой - это, конечно, отличная причина для твоей личной радости.

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

Приятная упаковка и адекватный синтаксис - это Rust.

Пиши из будущего, когда тебе будут за него платить, а заказчики захотят его использовать.

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

И к чему ты это? «Приятность упаковки» и «адекватный синтаксис» никак не связаны с «желанием заказчика использовать» и, тем более,с желанием заказчика платить.

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

Про Dylan уже все забыли, да?

И про оглушительный успех OpenDarwin.

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

Я считаю, что свободное сообщество тормозит. Ибо никто никому ничего не должен. Поэтому проигрывает рынок. Сообщество могло оказаться раньше скайпа, например, как (La)Tex и выиграть рынок. Но ни в случае с десктопами, ни в случае с джаббером, ни в случае скайпоподелий не обогнали. Основные на данный момент куски рынка изначально принадлежали проприетарщикам. А джаббер проиграл из за разброда и шатания. Могли бы выиграть, если бы нормально сделали базовый протокол, без излишнего минимализма и с обязаловкой: хочешь называться XMPP, реализуй: синхронизацию истории, PGP, MUC и в таком духе. Надо думать то, что завлечёт пользователя, а не сэкономит твои силы первые дни. Могу поспорить, проприетарщики забивали на комфорт первое время и писали, не смотря ни на что, чтобы выиграть.

Хотя я считаю, что проприетарщину в конце концов выдавит свободный софт. Проприетарщики должны быть только на острие прогресса - чтобы окупать новые направления, а потом оставлять пробитый путь. Ибо свободное сообщество это броуновское движение - двигаться в одну сторону никто не заставит.

В общем, проприетарщина - необходимое зло. Без «общего врага» сообщество никогда не скооперируется - каждый будет тянуть одеяло в свою сторону.

Даже больше: свободное ПО - это кооперация проприетарщиков (тот общий фундамент, который одному не запилить, а всем нужен). Ибо сообщество состоит в большей части именно из них.

Deleted
()
Последнее исправление: merhalak (всего исправлений: 3)
Ответ на: комментарий от anonymous

Неразборчивый вопль подгоревшей макаки

Быстро ты.

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

адекватный синтаксис - это Rust.

Он хоть и адекватный, но сам язык такой, что код на нем получается перловкой. Например, строка из стандартного примера:

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

Это даже без лайфтаймов и пр. Я не спорю, все сделано адекватно, обосновано, но в том же Swift стандартными средствами решается так:

assert( count['s'] == 8 );
anonymous
()
Ответ на: комментарий от tailgunner

И к чему ты это? «Приятность упаковки» и «адекватный синтаксис» никак не связаны с «желанием заказчика использовать»

Давай начнем сначала, я кратко опишу почему Swift - торт, а Rust - он сейчас для энтузиастов которые привыкли жить на пороховой бочке.

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

Swift - не революция в плане идей Computer Science, а очень хорошая выжимка из всего, что было произведено в последние лет 10. Язык эволюционный и позволяет множеству разработчиков чувствовать себя в своей тарелки, не ломая себе мозг (это камень в огород Go).

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

Но что я о Go? Давай про Rust!

Rust - хороший язык с приятными идеями lifetimes, которые правда синтакчески реализованы совершенно ублюдски, в нем тоже есть ARC в той или иной форме, но тебе нужно его наворачивать руками, что создает кучу лишнего кода. Rust более низкоуровневый и позволяет работать с самыми базовыми примитивами ОС, Swift это скорее уровень «системности» Go, с прицелом на рилтайм задачи.

Так почему Swift - это сейчас как завтрак чемпиона? Язык победителей по жизни которые могут получать миллионы денег и писать на хорошем мейнстрим языке, не устраивая заплывы против течения?

Все просто, уже сегодня я могу создавать софт написанный на Swift для миллиардов людей на планете которые будут хотеть его заказывать. На Rust ты можешь писать на коленке для маргиналов в гараже, притом в языке уровень поддерживаемости кода даже для таких же фанатиков друзей сильно ниже, чем в Swift, по понятным причинам.

С релизом Swift в open source, а так же огромным количество кода для бекенд который вот прям сейчас уже есть на Github, можно быть увереными, что это станет универсальным языком с помощью которого можно будет решать и иные задачи, чем сегодня.

Так что Rust это сейчас такой способ бустить свое эго, показывая всем свою «странность» и «крутость» постоянно приговаривая «Вот в Rust все намного лучше!», притом что этому индивиду на Rust никто ничего не разрешит писать, на работе будет ворочать своими плюсами или чем то там другим.

Такие дела.

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

Я не спорю, все сделано адекватно, обосновано

Вот именно.

но в том же Swift

Swift - другой язык, с другими tradeoff-ами и другой областью применения.

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

Swift - другой язык, с другими tradeoff-ами и другой областью применения.

В С++ пишется аналогично Swift'у, вплоть до каждый символа, у него тоже другая область применения?

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

я кратко опишу почему Swift - торт

Лучше бы ты сванговал судьбу Rust и Swing в пределах, скажем, двух лет. Я бы прицепил в ссылку на пост в коммент к твоему нику и напомнил бы через пару лет, если мы оба еще будем здесь.

Так почему Swift - это сейчас как завтрак чемпиона? Язык победителей по жизни которые могут получать миллионы денег и писать на хорошем мейнстрим языке, не устраивая заплывы против течения?

Все просто, уже сегодня я могу создавать софт написанный на Swift для миллиардов людей на планете

Кхм. Это ты серьезно, про миллионы денег и миллиарды людей? Звучит так, будто начитавшийся о стартапах второкурсник решил поделиться своей мечтой.

С релизом Swift в open source, а так же огромным количество кода для бекенд который вот прям сейчас уже есть на Github, можно быть увереными, что это станет универсальным языком с помощью которого можно будет решать и иные задачи, чем сегодня.

Блин, это одновременно похоже на Хабр и на рекламный проспект Apple. Можно какой-нибудь немного проверяемый прогноз?

Так что Rust это сейчас такой способ бустить свое эго, показывая всем свою «странность» и «крутость» постоянно приговаривая «Вот в Rust все намного лучше!»

Выражаясь шаблонным языком рекламных роликов, который ты явно любишь, это инвестиция в собственное развитие.

притом что этому индивиду на Rust никто ничего не разрешит писать

Возможно.

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

учше бы ты сванговал судьбу Rust и Swing в пределах, скажем, двух лет.

Держи вот аналитику 2 года назад, посмотри насколько адекватна/неадкватна она была.

Глубокая Аналитика ЯП через 5 лет

Swift по понятным причинам там нет.

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

Ну да, с UB в качестве бесплатного бонуса.

И с каких пор оператор [] для ассоциативных контейнеров в С++ имеет UB?

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

Почти все прогнозы там верные, поэтому я могу носить титул «Видящий» и ко мне стоит прислушиваться. Swift - отличная ставка, Rust - фанатики плюсов очень аккуратно и с ненавистью на него смотрят, аудитории нет.

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

Почти все прогнозы там верные, поэтому я могу носить титул «Видящий» и ко мне стоит прислушиваться

Дай ссылку на свои прогнозы, которые оправдались. Читать весь топик - это слишком.

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

И с каких пор оператор [] для ассоциативных контейнеров в С++ имеет UB?

Не вижу, где описан тип count. Если это ассоциативный массив - UB нет, но тогда код не эквивалентен rust-овому. Тамошний get не вставляет элемент в map.

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

Чувак, этой же мой топик

Я не призывал кэпа.

Прочитай первое сообщение.

Первое сообщение - это Глубокая Аналитика ЯП через 5 лет (комментарий) ? Или хедпост, в котором просто налита вода, а о Rust сказано «до выхода 1.0 версии говорить особо не о чем» и «все в тумане тут»? Крутой прогноз, чо.

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

Дык Rust даже не релизнулся тогда и постоянно менялся, сравнивать стоит по остальным прогнозам.

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

но тогда код не эквивалентен rust-овому

И не должен, если assert сфейлится, то без разницы был вставлен элемент или нет. Это придирка не имеет практического смысла. Но хорошо:

Тамошний get не вставляет элемент в map.

assert( count.at('s') == 8 );

Если сильно хочется, то можно и не вставлять.

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

если assert сфейлится, то без разницы был вставлен элемент или нет

То, что в Си++ делается вставка, экономит Some.

Но хорошо

Давай-ка с типами.

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

Возможно, он имеет в виде нечто подобное: Vec<Rc<RefCell<Box<Trait>>>>

Это к сигнатурам функций или к выводу типов? Претензии ведь к этим вещам были.

Ну и такую фигню на любом языке написать можно. В расте с этим, опять же, бороться можно как и везде - при помощи тайпдефов. Раст тут «хуже» разве что тем, что про вещи типа RefCell приходится задумываться. Впрочем, по ссылке как раз выясняется, что автору достаточно Vec<Box<Trait>>.

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

Ну, насчет Swift я могу сванговать и сейчас: его ждет успех, сравнимый с успехом OpenDarwin. Т.е. вещь, никому особо не нужная за пределами яблового садика.

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

Уже есть 3 package manager'а и строгий прицел на линукс хотя бы в роли бекенда для мобилок, так что ты не прав.

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

Что-то я не пойму, чем swift отличается от современного С++. Ну, let x = 10 - это const auto x = 10, да? for name in names - это for (name : names), да?

Сейчас тебе расскажу, что в плюсах ты не пишешь просто for (name : names), а или auto&& name: names или const auto& name: names. А в свифте меньше такого «мусора».

Хотя основное, наверное, интерграция с уже существующим кодом.

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

Прав я или нет - выясниться не раньше, чем через год. Может, и позже.

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

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

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

вопрос пары месяцев когда все мобилки начнут обеспечиваться свифтом с линукса

Окей, засчитано. «Все мобилки» - это в процентах сколько? 10% и больше?

Бекенды всем нужны. А это уже серьезный тренд.

Ну то есть Swift будет конкурировать с Go, логично. Правда, меня не интересует Go.

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

То, что в Си++ делается вставка, экономит Some.

Ну вот как раз в swift для этого есть nil, и запись нисколько не изменилась по сравнению с C++.

Давай-ка с типами.

std::unordered_map<char, int> count;

Хотя, лично мое мнение, к at явно не хватает аналога:

http://doc.qt.io/qt-5/qmap.html#value

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

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

Окей, засчитано. «Все мобилки» - это в процентах сколько? 10% и больше?

Это не так просто «померять». Я бы сделал ставку намного проще, в 2016 году будет куча адекватных инструментов для Swift по категории «бекенд» которые будут работать на линукс/осх, по зрелости инструментов можно понять и область охвата/нужности.

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

Окей, засчитано. «Все мобилки» - это в процентах сколько? 10% и больше?

Это не так просто «померять»

Сколько в процентах? Ты же имел в виду какие-то цифры, не? %)

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

То, что в Си++ делается вставка, экономит Some.

Ну вот как раз в swift для этого есть nil

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

И скстати...

You use an exclamation mark "!" to unwrap the optional. You can't use an optional for much (except checking its nilness) until it's unwrapped.

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

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

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

Ну могилки туда-сюда, а бекенд... Не взлетит, ибо хипстота сожжет мозги в стиле буриданова осла (заодно может и го похоронит, аминь!)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.