Компания Apple представила (http://www.apple.com/pr/library/2014/06/02Apple-Releases-iOS... новый язык программирования Swift (https://developer.apple.com/swift/), компилятор которого построен с использованием технологий свободного проекта LLVM. Swift наследует лучшие элементы языков C и Objective-C и будет привычен для знакомых с ними разработчиков, но отличается (http://goforproxy.appspot.com/graydon.livejournal.com/191100... использованием средств автоматического распределения памяти и контроля переполнения переменных и массивов, что значительно увеличивает надёжность и безопасность кода.
При этом Swift-программы компилируются в машинный код, что позволяет обеспечить высокую производительность. По заявлению Apple код Swift выполняется в 1.3 раза быстрее кода на Objective-C. Вместо сборщика мусора Objective-C в Swift используется средства подсчёта ссылок (http://ru.wikipedia.org/wiki/%D0%9F%D0%B... на объекты, а также используются предоставляемые в LLVM оптимизации, такие как автовекторизация.
Язык также предлагает (https://developer.apple.com/library/prerelease/ios/documenta... множество современных методов программирования, таких как замыкания, генерики, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования. Основным применением Swift является разработка пользовательских приложений для OS X и iOS с использованием тулкитов Cocoa и Cocoa Touch. При этом Swift предоставляет совместимую с Objective C объектную модель. Код на языке Swift может смешиваться с кодом на Си и Objective-C в одном проекте.В настоящее время язык проходит ограниченное бета-тестирование и тесно интегрирован со средой Xcode. Планы по публикации исходных текстов Swift пока не озвучены, но учитывая опыт разработки Clang и Objective-C, можно надеяться на публикацию кода компилятора, после доведения его до готовности. Несмотря на то что язык является компилируемым, разработчикам предоставлены интерактивные методы тестирования проектов, при которых компиляция выполняется на лету и для каждого изменения можно сразу наблюдать результат.
Отдельно стоит отметить, что Swift от компании Apple не стоит путать с достаточно давно развиваемым скриптовым языком Swift (http://swift-lang.org/), нацеленным на многопоточное программирование и поставляемого под свободной лицензией Apache.
URL: https://developer.apple.com/swift/
Новость: http://www.opennet.dev/opennews/art.shtml?num=39912
А название придумать не смогли?
Готов поспорить, что если бы кто-то назвал свой новый язык ObjC, то в Яббле тут же завели iВентилятор для разбрасывания iГов^Wисков.
А как сами так... Фу такими быть. Хотя чего это я? Такими... Фу быть Ябблом. Вот!
А зачем придумывать. Потом просто засудят разработчиков Swift и всё.
Посмотрел на исходный свифт.
Прикольный язык.
Интересно под форточки есть?
ПС. Я продвигаю идею единой программной среды работающей поверх операционок, что-бы пользователям и предприятиям легче было выбирать операционку.
> ПС. Я продвигаю идею единой программной среды работающей поверх операционок, что-бы пользователям
> и предприятиям легче было выбирать операционку.Да, я тоже GNU emacs уважаю.
Смешанная среда обусловлена необходимостью.
Работайте лучше над качеством и количеством софта, что-бы юзер линукс выбрал.
И не вините юзера, что у него такие потребности.
> Смешанная среда обусловлена необходимостью.
> Работайте лучше над качеством и количеством софта, что-бы юзер линукс выбрал.
> И не вините юзера, что у него такие потребности.Говноедов никто ни в чём не винит - такие у них "потребности". Просто, шли бы вы со своими "потребностями"
> Смешанная среда обусловлена необходимостью.А это уже ваши проблемы.
> Работайте лучше над качеством и количеством софта, что-бы юзер линукс выбрал.Мы будем работать над тем что нужно/полезно/интересно нам. Париться о твоем удобстве забесплатно мы не подписывались, чувак. И уж тем более у большинства разработчиков нет ресурсов для тестов смешанных окружений. Да и вообще, комерсов парят их доходы. Опенсорсников - свой кайф. А твое удобство в эту формулу вообще ни у кого не входит, ВНЕЗАПНО. Коммерс не будет под лично тебя софт пилить: не окупится, у тебя денег столько нет. Опенсорсники могут сделать нечто по кайфу, или для эстетики. Но стребовать ничего и ни с кого не выйдет. Просто усвой что тебе в этом мире никто ничего не должен.
> И не вините юзера, что у него такие потребности.Так мы и не собираемся. Пусть этот юзер сам со своими проблемами и бодается.
>Интересно под форточки есть?
>форточкиСейчас-сейчас.... где тут была моя ссаная тряпка специально для таких случаев?
>Я продвигаю идею единой программной среды работающей поверх операционок
Тыблако тоже. И мелкомягкие тоже. И оракля тоже. Прикольная у тебя компания, не находишь?
Шёл бы ты со своими форточками...
> ПС. Я продвигаю идею единой программной среды работающей поверх операционок, что-бы пользователям и предприятиям легче было выбирать операционку.http://i3.kym-cdn.com/photos/images/original/000/210/119/9b3...
Они изобрели Standard Template Library только для objective C?
Stl это frame. Это больше на vcl похоже, однопроходный.
Реально, первый абзац это C++ STL, засудить их за воровоство идей! =)
Objective-C, ёптa
Лучше бы синтакс нормальный Java-подобный сделали
хотя, судя по этому все круто:
https://developer.apple.com/library/prerelease/ios/documenta...
Переделанный Rust
И чего там от раста?
Ну да, только раст сам каждые полгота переделывается так, что только охаешь
а где у раста колготы или их половина?
И правда, уже и их убрали, остались только трусы std:string
Хм... А в чем ценность данного поделия от известного на весь мир патентного тролля для сообщества OpenSource? Ну разве что поправить личное финансовое благосостояние на AppleStore и продолжить дальше пилить опенсорсные проекты во имя всеобщего прогресса.
Apple много чего открытого пилит - CUPS, WebKit, LLVM/Clang. У них даже базовая часть и ядро OS X открытые.
http://opensource.apple.com/
http://www.apple.com/opensource/
https://developer.apple.com/opensource/
Вы отвечаете не на тот вопрос, который был задан.
>- Почему собаки лают на прохожих?
>- Собаки имеют четыре лапы, одну голову и один хвост. А ещё собака - лучший друг человека.
Все перечисленное Яблоку как раз таки дало сообщество OpenSource, а не наоборот. В том числе и команду разработчиков.
Вы как-то однобоко подходите к вопросу взаимовыгодного обмена, составляющего суть экономических отношений.
С другой же стороны Apple дал членам той команды зарплату и возможность продолжать пилить любимое глюкало. А не переквалифицироваться в Java-сеньоров, например, чтоб семью кормить.
> Вы как-то однобоко подходите к вопросу взаимовыгодного обмена, составляющего суть экономических
> отношений.
> С другой же стороны Apple дал членам той команды зарплату и возможность
> продолжать пилить любимое глюкало. А не переквалифицироваться в Java-сеньоров, например,
> чтоб семью кормить.Я рад за Яблоко как выгодоприобретателя, а также за продвижение продуктов и соджержание разработчиков, "взятых под крыло", в своих интересах. Business is business, it's not personal. Но у опенсорса основная миссия - не финансовая. Вот я и спросил, какая польза от этого сообществу. Тот же Darwin - "не рыба, ни мясо", как и многие "кости" которые бросают пропиетарщики сообществу, чтобы соблюсти "приличия".
>Я рад за Яблоко как выгодоприобретателяА тут все стороны - выгодоприобретатели. Вы упорно не хотите этого замечать. Просто по определению добровольной сделки - она взаимовыгодна всем сторонам, её заключающим. Иначе они не станут её заключать.
>в своих интересах
А нет никаких иных интересов. У каждого - свои.
>Но у опенсорса основная миссия - не финансовая
И какая у опенсорса миссия? И лично ли г-н Опен Сорс вам о ней рассказал?
> А тут все стороны - выгодоприобретатели. Вы упорно не хотите этого замечать.Я упорно жду ответ на свой простой вопрос - что дает этот проект опенсорс-сообществу? Хотелось бы конкретики. Пока же имеем очередной с-подобный диалект с пропиетарным(пока?) инструментарием: "Основным применением Swift является разработка пользовательских приложений для OS X и iOS с использованием тулкитов Cocoa и Cocoa Touch."
А я могу еще раз повторить вопрос про г-на Опена Сорса и что он вам там сказал по поводу своих стремлений и приоритетов.
Какому такому сообществу? В нём людей много, интересы у них разные.
Это как как с интересами Всего Прогресивного Человечества - как слышите это слово, так сразу за что потяжелей и хватайтесь.
Касаемо опенсорса в целом: http://opensource.org/about Специально для Вас там даже раздельчик "Mission" завели. Дедушка Столлман, конечно придерживается своей философии, но у него и определение другое - "Free Software"(http://www.fsf.org/about/). Вы можете подразумевать под OpenSource что угодно, ваше право, но в дискуссиях следует придерживаться общепринятых понятий и определений. Как я уже выше писал, сам по себе синтаксис и спецификации новоиспеченного языка никоим образом не подпдают под понятие OpenSource и ценность их для сообщества сомнительна. Важен код продуктов, написанных на этом языке и код инструментария для него. Пока что ни того, ни другого не наблюдается. Считаю что эта ветка себя исчерпала, т.к. мне самому пришлось дать ответ на свой же вопрос.
> А тут все стороны - выгодоприобретатели. Вы упорно не хотите этого замечать.Почему же, по развитию дарвина мы прекрасно видим что такую "выгоду" считает взаимной только жалкая горстка потенциальных номинантов на премию дарвина. Настолько дубовых, что за 2 итерации открытия-закрытия еще не поняли что от шараг типа мс и эппл лучше держаться подальше. Потому что поматросят-бросят.
> Все перечисленное Яблоку как раз таки дало сообщество OpenSourceО'Райли-Перен-Реймонд смахивают слезу: дитЯтко-то выросло и пошло по рукам.
>, а не наоборот.
> В том числе и команду разработчиков.FreeBSD Core Team бешено кивает!
> CUPS,Скупили. И лучше он вообще-то от деятельности эппла не стал. Скорее наоборот, ибо гребут под себя.
> WebKit,
То-то гугл и остальные на blink свалили...
> LLVM/Clang.
И мы уже видим супер-свободу по бсдшному - "хочется надеяться" что "лев бросит добычу и нам что-то перепадет".
> У них даже базовая часть и ядро OS X открытые.
Только из этого не получится пересобрать нормальную макось. И драйверов нет. И зачем оно такое нужно? Чтобы бесплатно поработать на эппл чтоли?
>> У них даже базовая часть и ядро OS X открытые.Открыть миру Hurd - это круто.
Очевидно, что ценность сего поделия для сообщества OpenSource или не рассматривалась, или просто была далеко не на первом месте в списке приоритетов. Как бы там ни было, хороший это язык или плохой - не важно. Важно то, что им не подошёл ни один из туевой хучи уже существующих, даже несмотря на то, что у многих современных ЯП имеются компиляторы на базе LLVM. Читая эту банальную жвачку про инновационность, современность, generics, "быструю и удобную итерацию по коллекциям" (уж не знаю, плакать, смеяться или и то, и другое) и т.д., невольно задаёшься вопросом: неужели ради всей этой банальщины нужно было создавать отдельный язык?Впрочем, довольно клоунады, и так всё понятно: NIH и vendor-lock. "Хочешь писать под iOS - бери наш инновационный язык. D? Rust? Шо то уйня, шо это уйня. Наш ЯП - самый япистый в мире!"
Причина создания своего языка понятна - поддержать полную совместимость со всем добром, оставленным от Objective-C. Для других языков такая задача не ставилась, и потому ее адекватное воплощение на чем-либо другом сложновато.
> Причина создания своего языка понятна - поддержать полную совместимость со всем добром,
> оставленным от Objective-C. Для других языков такая задача не ставилась, и
> потому ее адекватное воплощение на чем-либо другом сложновато.он же совместим только по объектам, также можно было и на например питоне сделать.
> он же совместим только по объектам, также можно было и на например
> питоне сделать.Следующую строчку "неасилил"?
"Код на языке Swift может смешиваться с кодом на Си и Objective-C в одном проекте."
Настолько, что написать компилятор языка оказалось проще? Ну дела...
> Настолько, что написать компилятор языка оказалось проще? Ну дела...Точно так же появился Kotlin - осовремененная Java с полной взаимной совместимостью.
Rust - осовремененный C.
местами lua напомнил
Минусующих жаба давит ибо Rust не взлетел.
> Минусующих жаба давитИ, кстати, саммоним iZEN-а, да.
Я что-то пропустил? Раст уже пытался взлететь?
Вообще-то, если язык не взлетает через пару лет после первого релиза, то он умирает.А раст в бете уже скока?
Ни скока. Он в альфе. Первый релиз No due date.
Раст, он как блендер. Как очередная версия блендера пилится вместе с каким-нибудь мультиком, так и раст пилится вместе с новым мозилловским веб-движком https://github.com/mozilla/servo. Прозреваю, что стабильная версия языка выйдет вместе с финальной версией движка.
> Раст, он как блендер. Как очередная версия блендера пилится вместе с каким-нибудь
> мультиком, так и раст пилится вместе с новым мозилловским веб-движком https://github.com/mozilla/servo.
> Прозреваю, что стабильная версия языка выйдет вместе с финальной версией движка.Даешь каждому проекту по своему языку и своему фреймворку :)
В переводе на русский название языка - "вжик" :)
Скорее от Джонатана - тоже сорт яблок
> В переводе на русский название языка - "вжик" :)В вариантах перевода -- "борзый" )))
>Планы по публикации исходных текстов Swift пока не озвученыИ что тогда эта новость здесь делает?
В таком темпе "программист" уже скора вообще понимать перестанет как работает его программа. Что на руку АНБ :) Аппле же сказала что типа ошибок в алгоритмах нету!
Отсутствие сборщика мусора порадовало, да и вообще на беглый взгляд язычок выглядит неплохо.
Если дорастёт до нормального опенсорсного компилятора, можно и попробовать, а нет - так и не надо.
>Планы по публикации исходных текстов Swift пока не озвученывообще-то озвучены:
>Swift is licensed under the Apache License, Version 2.0
http://swift-lang.org/ - ссылка на SVN-репозиторий и инструкция по сборке прямо на главной странице
> вообще-то озвучены:А текст новости до конца не судьба дочитать ?
>>Swift is licensed under the Apache License, Version 2.0
> http://swift-lang.org/ - ссылка на SVN-репозиторий и инструкция по сборке прямо на главной
> страницеЭто совсем другой язык.
> Это совсем другой язык.Надеюсь, те ребята со своим "совсем другим языком" озаботились о регистрации торговой марке во всех странах, где они хотят распространяться? Уж apple-то о своей позаботится. И вряд ли допустит, чтобы какой-то другой язычок ее использовал.
Тот Swift пилят ребята из anl.gov по заказу Министерства энергетики США, поэтому скорее в дальнее пешее путешествие пошлют Apple с её патентами и торговыми марками :-)
даже не заминусовали - похоже не один я попался в эту ловушку :D
Краткий список возможностей/особенностей: http://www.reddit.com/r/programming/comments/274t5s/apple_sw...Statically typed with type inference.
Generics.
Closures.
No exceptions.
Extension methods.
Properties (syntax similar to C#), including lazy properties with the
"@lazy" annotation.
Functions, methods and type (static) methods.
Support for observers (with "willSet" and "didSet"). Interesting to see the
observer pattern baked in a language although I'm more partial to event
buses for this kind of thing.
Enums.
Classes and structures (structures have restrictions regarding inheritance
and other things).
For and while loops (statements, not expressions).
"mutating" keyword.
Named parameters.
Deinitializers (finalizers).
Protocols (interfaces).
Optional chaining with "a?.b?.c" and forced dereference with "!."".
Convenient "assign and test": "if let person = findPerson() ...".
Type casting with "is", down casting with "as?" (combines nicely with the
"let" syntax. Ceylon does it right too).
с названием эпический провал
А опенсорс здесь причём?
что пятое колесо не только опенсорс пилить может
Первое предложение же.
В конторе, где я работаю, используются сервера с дебианом на борту. Можно мне тоже новость запостить?
И что нам это даст? В очередной раз корпорация утащит к себе код под BSD.
Зачем разрабатывать под os x и ios (их названия просто блещут оригинальностью, майкрософт отдыхает), если можно разрабатывать кроссплатформу? Что бы там они ни представили - толком это мало кому нужно. Разве что разработчикам зомбиферм под айфончики.
Язык не плох, но1. Нет макросов аля немерли или хотя бы Д
2. Не поддержки многопоточности на уровне языка
3. Нет уникальных ссылок.
4. Слишком много намутили с нил указателями. Вообще не ясно зачем так усложнили.
5. Понравился if.
язык неплох.
но лучше идея его, чем реализация.
что впрочем, для Эппл - типично(и тут не только о софтвере).
> Планы по публикации исходных текстов Swift пока не озвучены,...
> но учитывая опыт разработки Clang и Objective-C, можно надеяться...что лет через 10, когда эппл убедится что на очередную проприетарную хреноту всем кроме горстпи пи... совсем до балды, они милостиво выложат сорц. Нечто такое можно понаблюдать в порте Darwin на ARM. А автор новости может идти нафиг со своими надеждами - как обычно у BSDшников! Их свобода - когда корпоративный лев набьет пузо и может быть и позволит стайке общественных шакалов покушать. Если настроение хорошее. Или добыча - "не очень".
>всем кроме горстпи пи... совсем до балдыперестаем фантазировать, быстро и решительно. через два релиза айфонов, разрабатывать софт разрешат только на этой фигне. такие выкрутасы в яблочном стиле. так что пофиг будет далеко не всем
Макофагов не жалко. Я бы на месте эппла вообще заставил бы яблоразработчиков 1 день в неделю в цирке клоунами работать. Для лулзов. Ну и профит с продаж билетов эпплу в карман, разумеется.
Ну Micro$oft тут уже одного клоуна заставил
> Ну Micro$oft тут уже одного клоуна заставилВот я и говорю - хочу увидеть болванчиков от эппла. Еще красочнее будет если они устроят рубилово. Лучше всего - выдать MS и яблочным клоунам мечи и выпустить на арену. Нехай зарубятся стенка на стенку.
Кто сказал, что он идёт на смену Objective-C?
"Вместо сборщика мусора Objective-C в Swift используются средства подсчёта ссылок" Ошибочное заявление, т.к. в Objective-C и используется подсчёт ссылок.
> Ошибочное заявление, т.к. в Objective-C и используется подсчёт ссылок.Начиная с Objective-C 2.0 используется полноценный сборщик мусора, подсчёт ссылок был в древней реализации языка, которая уже почти 10 лет не используется.
http://en.wikipedia.org/wiki/Objective-C#Garbage_collection
http://cocoasamurai.blogspot.ru/2010/12/objective-c-memory-m...
>> Ошибочное заявление, т.к. в Objective-C и используется подсчёт ссылок.
> Начиная с Objective-C 2.0 используется полноценный сборщик мусора, подсчёт ссылок был в
> древней реализации языка, которая уже почти 10 лет не используется.
> http://en.wikipedia.org/wiki/Objective-C#Garbage_collection
> http://cocoasamurai.blogspot.ru/2010/12/objective-c-memory-m...а потом пришел ARC: http://en.wikipedia.org/wiki/Automatic_Reference_Counting и яблы опять считают ссылки (но автоматически)
теперь перечитай что написал, и вспомни что есть iOS, а в мак оси garbage collector только в старинных версиях используется. Под iOS программистами используется reference counter, подсчёт которого теперь автоматизирован с помощью ARC
> теперь перечитай что написал, и вспомни что есть iOS, а в мак
> оси garbage collector только в старинных версиях используется. Под iOS программистами
> используется reference counter, подсчёт которого теперь автоматизирован с помощью ARCБуква А в ARC - Automatic
"Apple Inc. delivered a fully featured version of ARC in 2011 for application development on its Mac OS X Lion and iOS 5 operating systems."
Зачем нужно было создавать форк ЯП и чем плох LLVM?P.S. Почитал комментарии к последним новостям, диву даёшься сколько здесь латентных (весна, лето - всегда особенно заметно). И вообще в среде open source огромное количество таких людей. Почему?
> Зачем нужно было создавать форк ЯПКакого?
> и чем плох LLVM?
Бажный что пи...ц!
>Бажный что пи...ц!Это лишь пока...
> Это лишь пока...Он такой молодой, но уже успел за...ть своими багами.
>> Это лишь пока...
> Он такой молодой, но уже успел за...ть своими багами.Clang начали пилить потому что "глюки GCC за...ли, набор заплаток, никакой модульности, невозможно поддерживать". Жизненный цикл проекта. Хе хе.
ну прально, Эрленг-то - ниасилили.
вот и тащат анального огороженный мутант О-С в стиле Erl смеси ФП, ОП, МП итп.
Писать игру на Эрлэнге? Производительность будет хуже в разы, чем у допиленной Java.
скорее наоборот.
на порядки раз выше будет, чем у C++, а Жаба - вообще где-то нервно курит.
игры ? ха, на нем распределеныне системы, трансконтинентальные пилят и AI для спутников и сетевого )
> на порядки раз выше будет, чем у C++,На порядки? Ну попробуйте всех игроделов удивить. А то они что-то все как один плюсы используют, а потом еще и в профайлерах зеленеют, пытаясь выжать "еще немного".
> игры ? ха, на нем распределеныне системы, трансконтинентальные пилят и AI для
> спутников и сетевого )А мужики то и не знают. Особенно разработчики встренного ПО под аэрокосмические hardened процессоры/контроллеры. Да и разработчикам Кассандр/Hive всяких не мешало бы глаза открыть.
Swing и Rust пилят не по своей прихоти, а потомучто кроме c++ перелезать некуда. Эдакий вакуум в области хороших низкоуровневых языков общего назначения. но, к сожалению, что swing что rust получились жалкими подмножествами c++/stl
Согласен, был бы такой C++, но чтобы всё легко и просто было, как в Java...
> Согласен, был бы такой C++, но чтобы всё легко и просто было,
> как в Java...И была бы куча гомнософта на С++. А оно такое надо?
"Куча гомнософта на С++" это сейчас. Именно потому-что на С++
> "Куча гомнософта на С++" это сейчас. Именно потому-что на С++Си++ - яп как яп. В меру кривой, и весьма сложный/с кучей подлян. Но это и отсеивает гомноделов. Они идут писать на всяких явах и прочих питонах. А сильные программисты как раз плюсы на ура используют и не особо то и плюются. Это плохим танцорам вечно что-нибудь мешает. А всякой автоматике для гламурных дeбилoв-склеротиков в низкоуровнем ЯП вообще не место, имхо. Вы конечно извините, но снайперская винтовка - немного не то что надо давать в руки невменяемым людям, не отвечающим за свои действия. А низкоуровневый ЯП - он как снайперская винтовка. Ему можно сказать "сходи-ка мне по адресу 0x20000000 и посмотри что там лежит". А если так нельзя - оно уже и не низкоуровневый ЯП в общем то. И ни разу не замена сям и плюсам, ибо обламывает вагон эффективных фокусов.
> Вы конечно извините, но снайперская винтовка - немного не то что надо давать в руки невменяемым людям, не отвечающим за свои действия.- Именно поэтому невменяемым обычно выдают пулеметы и РСЗО
James Gosling, 2010:>Вопрос: мнение про Apple, который пытался откреститься от Java for Mac OS?
>Apple is all about control. Interoperability для Apple — devil в чистом виде. Их цель — заманить к себе разработчиков и удержать всеми нечистыми средствами, которые у них есть. Ни в коем случае не разрешать переиспользовать код на компьютерах, отличных от Мак.
>http://alskor.blogspot.ru/2010/12/blog-post.html
Что за бред? Автор хотя бы для приличия почитал бы про Objective C, там ARC (автоматический подсчет ссылок) используется уже несколько лет и "словарные типы, быстрые операции над коллекциями, элементы функционального программирования" тоже...Автор упустил смысл перехода на Swift
> Автор упустил смысл перехода на SwiftПочему же. Своя песочница со своим вендорлоком, тут как раз все просто и прозрачно.