Статьи

Swift с открытым исходным кодом

Не так давно Apple удивила разработчиков iOS Swift. За короткое время с тех пор он стал быстро развиваться среди сообщества разработчиков. На самом деле, в опросе, проведенном Stack Overflow , Swift был назван самым любимым языком программирования.

3 декабря Apple осталась верна своему слову и официально сделала Swift полностью открытым исходным кодом. Учитывая популярность Swift, конечно, интересно думать о последствиях этого шага. Что ждет Swift в будущем и что мы можем сделать как разработчики, чтобы помочь сформировать его эволюцию?

Не совсем уверен, что означает открытый исходный код? Прочитайте статью Сэма Берсона об открытых источниках здесь .

Как человек, которому нравится заниматься iOS-разработкой, я всегда немного завидовал сообществу открытого кода. Хотя это правда, что GitHub процветает благодаря проектам с открытым исходным кодом для iOS, как в Swift, так и в Objective-C , исторически Apple не позволяла сообществу iOS вносить большой вклад в свои инструменты, платформы, IDE или языки в любом официальном качестве, кроме ResearchKit .

Теперь, со Свифтом, мы получили приглашение помочь в развитии будущего языка. Это новая граница для сообщества iOS, и я верю, что она также распространит добрую волю от Apple для разработчиков, которые ежедневно работают на своих платформах. Более того, будущее Swift теперь может выходить далеко за пределы iOS — о чем мы поговорим позже.

Одним из непосредственных преимуществ этого шага, по крайней мере, для меня, является то, что теперь мы можем внимательно изучить методы и процессы разработки Apple. На самом деле, репозиторий Swift на GitHub имеет все коммиты для просмотра, начиная с 17 июля 2010 года.

Если вы не задумывались о влиянии перехода Apple на открытый код Swift, я думаю, что важно сделать шаг назад и взглянуть на это. История показывает, что у открытого программного проекта есть много преимуществ.

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

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

У этого списка нет конца. В мире, который зависит от технологий и инструментов, стоящих за ними, я хотел бы предложить вам, что никогда не было так важно и актуально, чтобы открытое программное обеспечение. Сила сообщества, работающего над программным обеспечением, может быть полезной и, что более важно, продуктивной инициативой.

Фактически, мы даже видели, как Apple сотрудничает с другими известными технологическими компаниями, чтобы помочь поднять Swift на новый уровень. Похоже, IBM проявляет большой интерес к внедрению Swift в качестве языка серверной части, и вы уже можете насладиться невероятным проектом из их усилий в их онлайн-песочнице swift .

файл

В конце концов, Swift с открытым исходным кодом означает, что он будет меняться в быстром темпе. Как правило, быстрое изменение может означать головную боль для инженеров. Мы даже видели это в Swift в определенной степени. Swift 2 внес много изменений, которые сделали код Swift 1 устаревшим и не компилируемым.

Ключевое отличие сейчас заключается в том, что Apple и сообщество являются теми, кто движет изменениями. С открытой дверью взгляните на то, что происходит со Swift, разработчики могут быть лучше подготовлены к предстоящим изменениям. Итерации в программном обеспечении не должны быть разочаровывающим упражнением, это должна быть полезная и желанная практика. Программное обеспечение с открытым исходным кодом выделяется в этом отношении.

Чтобы продемонстрировать это, рассмотрим следующие метрики, которые хранилище Swift испытало за то короткое время, что оно работало:

  • 10 000 коммитов произошло за первые 24 часа
  • более 24 000 коммитов на сегодняшний день
  • около ~ 400 запросов на извлечение были объединены с репозиториями Swift

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

Как разработчик, он с энтузиазмом видит, что язык уже адаптируется в темпе «с открытым исходным кодом». Например, популярный разработчик iOS и автор Эрика Садун уже убедительно обосновала необходимость удаления циклов C-Style в Swift. Кроме того, операторы -- и ++ также могут выйти из ситуации.

Учитывая эти факты, мы уже видим преимущества Swift от открытого исходного кода. Он не только созревает, будучи совместимым с другими платформами, кроме iOS, но и разработчики также могут видеть изменения, происходящие публично. Адаптация баз кода для Swift 3 действительно не должна быть проблемой, потому что нам больше не нужно ждать, пока следующая WWDC будет проинформирована о продвижении к языку.

Учитывая влияние открытого исходного кода, вы можете задаться вопросом, как принять участие самостоятельно. Программное обеспечение с открытым исходным кодом может поначалу быть немного пугающим, если вы раньше не занимались им. Здесь я хотел бы указать на некоторые способы, которыми вы можете лучше понять программное обеспечение с открытым исходным кодом, и в частности Swift.

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

Разработчики могут легко высказать свои идеи для Swift, используя низкий барьер Twitter для входа. Более того, вам еще не нужно проходить процесс добавления кода. Это способ начать работать со Swift.

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

Крис отвечает за то, что привел нас в Swift, и он был также первым автором инфраструктуры компилятора LLVM. Естественно, он всегда связан с сообществом Swift. На самом деле, он даже принимал запросы на включение в субботу в 22:00. Сказать, что он активно участвует в проекте, было бы преуменьшением.

Джордан — еще один высококлассный инженер из Apple, который в основном занимается Swift. Как и Крис, Джордан также является отличным ресурсом для поднятия вопросов или проблем со Свифтом.

Джо также талантливый инженер, работающий на Swift. Он ответил на несколько вопросов о Swift и всегда рад взаимодействовать с сообществом.

Инициатива Swift с открытым исходным кодом проходит через популярную платформу GitHub. Если вы не знакомы с GitHub или Git в целом, участие в Swift может быть довольно пугающей перспективой. Если это так, я настоятельно рекомендую сначала ознакомиться с этими инструментами, и это хорошее место для начала.

файл

Для начала вам нужно настроить локальную среду. GitHub README от Swift — отличное руководство, поэтому я не буду повторять эти шаги здесь. По сути, после всего лишь нескольких команд из командной строки и взаимодействия с хранилищем вы будете в рабочем состоянии.

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

Попробуйте найти некоторые фрагменты кодовой базы и познакомиться с ними. Оттуда вы будете лучше подходить, чтобы посмотреть, что можно улучшить. Лично, первый шаг, который я хотел бы сделать, это прочитать Руководство Swift Contributing .

Некоторыми захватывающими (и удивительными) новостями, пришедшими из анонса Swift с открытым исходным кодом, были некоторые проекты, которые находятся в разработке с языком. Некоторые из них ожидались, такие как компилятор и стандартная библиотека, а некоторые были совершенно новыми инициативами.

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

Взятый из swift.org , компилятор Swift «в основном отвечает за перевод исходного кода Swift в эффективный исполняемый машинный код». Даже если у вас нет глубокого понимания компиляторов или того, как они работают, увлекательно просматривать его код, если только для образовательных целей.

Второй компонент этого проекта, стандартная библиотека, вероятно, знаком большинству разработчиков. Он содержит все, от самых основных типов данных, таких как типы Int и Double , до расширенных типов коллекций, таких как Array и Dictionary .

Если вы заядлый разработчик Swift, теперь у вас есть возможность помочь понять, как работают эти типы. Или, если вам нужен специализированный набор функций, соответствующий вашим потребностям, вы даже можете разветвлять хранилище и настраивать типы Swift по своему усмотрению.

Сообщество iOS видело несколько разных способов распространения кода. Некоторые популярные варианты включают Cocoapods и Карфаген . Теперь мы можем добавить менеджер пакетов Swift в этот список.

Хотя этот проект находится на самой ранней стадии разработки, он мне наиболее интересен. Фактически, в настоящее время он не поддерживает iOS, tVOS или watchOS. Хотя поддержка этих платформ, безусловно, придет, по мере ее развития она может потенциально использоваться для распространения кода Swift, выходящего далеко за рамки только iOS или OS X.

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

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

Чтобы поместить этот проект в более подходящие условия для разработчиков iOS и OS X, libdispatch находится здесь. Вы, вероятно, знакомы с этим, поскольку именно отсюда происходит Grand Central Dispatch. Тем не менее, имеет смысл, что он включен в базовые библиотеки, поскольку выполнение параллельного кода не является задачей, специфичной только для iOS или OS X.

Наконец, проект REPL и Debugger, вероятно, немного понятен. Этот проект отвечает за реализацию полного пакета отладки Swift. Отладчик LLDB — это то, что разработчики уже давно используют, потому что он включен в Xcode.

Однако REPL и Debugger тесно связаны друг с другом, что имеет смысл, поскольку они обеспечивают сходную ценность во многих отношениях. REPL расшифровывается как «Read Eval Print Loop», и его очень удобно использовать для облегченного кода Swift. Если вы откроете терминал и наберете «Swift», вы начнете выполнять Swift REPL локально.

Как видите, в Swift нет недостатка в проектах или компонентах. Хотя, как бы это ни звучало клише, это только начало, и со временем появятся несколько новых проектов.

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

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

файл

Хотя этот уже некоторое время, если вы не посещали его раньше, чем следует. Он содержит много полезной информации о Swift и его архитектуре, написанной Крисом Латтнером. Хотя еще неизвестно, будет ли он поддерживаться вместо swift.org, он все еще является ценным ресурсом.

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

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

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

В будущем Swift будет играть большую роль в разработке iOS. Я думаю, что разработчики знали, что с тех пор, как это было объявлено на WWDC 14. Что удивительно, так это то, что теперь он будет проявляться не только на платформах Apple. Представьте себе использование Swift в качестве языка на стороне сервера при разработке API?

Возможно, более важным, чем рост Свифта, является тот факт, что сообщество будет управлять изменениями. Open sourcing Swift откроет множество дверей как для вас, так и для языка. Сейчас самое время принять участие, поэтому начните читать руководящие принципы, и я с нетерпением жду вашей следующей фиксации в репозитории Swift.