Swift es de código abierto

No hace tanto tiempo que Apple sorprendió a los desarrolladores de iOS con Swift. En el corto tiempo transcurrido desde entonces, ha disfrutado de un rápido ritmo de adopción entre la comunidad de desarrollo. De hecho, en una encuesta realizada por Stack Overflow, Swift fue nombrado el lenguaje de programación más querido.

El 3 de diciembre, Apple se mantuvo fiel a su palabra e hizo Swift oficialmente de código abierto. Dada la popularidad de Swift, es ciertamente emocionante pensar en las implicaciones de la mudanza. ¿Qué depara el futuro para Swift y qué podemos hacer como desarrolladores para ayudar a moldear su evolución??

¿No estás seguro de lo que significa el código abierto? Lea el artículo de Sam Berson sobre código abierto aquí..

Apple y Open Source

Como alguien que disfruta del desarrollo de iOS como un medio de vida, siempre he estado un poco celoso de la comunidad de código abierto. Si bien es cierto que GitHub está prosperando con proyectos de código abierto para iOS, tanto en Swift como en Objective-C, históricamente Apple no ha permitido que la comunidad de iOS contribuya mucho a sus herramientas, marcos, IDE o idiomas en ninguna capacidad oficial, aparte de ResearchKit.

Ahora, con Swift, hemos recibido una invitación para ayudar a fomentar el futuro del idioma. Esta es una nueva frontera para la comunidad de iOS, y creo que también se extenderá un poco de buena voluntad de Apple a los desarrolladores que trabajan diariamente en sus plataformas. Además, el futuro de Swift ahora puede extenderse más allá de iOS, algo que discutiremos más adelante.

Un beneficio inmediato de este movimiento, al menos para mí, es que ahora podemos disfrutar de una visión íntima de las prácticas y procesos de desarrollo de Apple. De hecho, el repositorio de Swift en GitHub tiene todos los compromisos para que todos los vean, desde el compromiso inicial el 17 de julio de 2010..

Impacto de Open Source

Si no has pensado en el impacto del cambio de Apple al código abierto Swift, creo que es importante dar un paso atrás y echarle un vistazo. La historia muestra que un proyecto de software de fuente abierta tiene muchos beneficios.

En general, un proyecto de código abierto que gana fuerza en la comunidad madura rápidamente y se vuelve más estable con el tiempo. Si la comunidad participa activamente, se pueden implementar nuevas características rápidamente..

Aparte de las iteraciones más rápidas, la comunidad ayuda a que el software madure de una manera que sea beneficiosa para quienes más lo utilizan. La fuente abierta de un proyecto también a menudo resulta en una mayor colaboración dentro de la comunidad, lo cual es beneficioso para todos los involucrados.

La lista sigue y sigue. En un mundo que depende de la tecnología y las herramientas que lo respaldan, le sugiero que nunca ha sido tan importante y relevante para el software de código abierto. El poder de una comunidad que trabaja en software puede ser una iniciativa gratificante y, lo que es más importante, productiva..

De hecho, incluso hemos visto a Apple asociarse con otras importantes compañías de tecnología para ayudar a llevar a Swift al siguiente nivel. IBM parece tener mucho interés en implementar Swift como lenguaje del lado del servidor, y ya puedes disfrutar de un increíble proyecto gracias a sus esfuerzos en su caja de arena rápida en línea.

Swift evolucionará rápidamente

Al final, Open Sourcing Swift significa que va a cambiar a un ritmo rápido. Típicamente, un cambio rápido podría significar dolores de cabeza para los ingenieros. Incluso hemos visto esto en Swift hasta cierto punto. Swift 2 introdujo muchos cambios que hicieron que el código de Swift 1 fuera obsoleto y no compilable.

La diferencia clave ahora es que Apple y y la comunidad son los que impulsan el cambio. Con una visión abierta de lo que le está pasando a Swift, los desarrolladores pueden estar mejor preparados para los próximos cambios. Las iteraciones en el software no deberían ser un ejercicio de frustración, deberían ser una práctica beneficiosa y bienvenida. El software de código abierto sobresale en ese sentido.

Para demostrar esto, considere estas métricas que el repositorio Swift ha experimentado en el corto tiempo que ha estado activo:

  • 10,000 confirmaciones ocurrieron en la primera 24 horas
  • Más de 24.000 se comprometen hasta la fecha.
  • Se han fusionado alrededor de 400 solicitudes de extracción en los repositorios de Swift.

Al momento de escribir, Swift también tiene una tendencia constante en el puesto # 1 en GitHub. Eso es todo un logro en poco tiempo, y muestra claramente que la comunidad de desarrollo en general está lista y dispuesta a contribuir.

Como desarrollador, es energizante ver que el lenguaje se adapta a un ritmo de "código abierto" ya. Por ejemplo, la popular desarrolladora y autora de iOS Erica Sadun ya ha creado un caso convincente para eliminar el bucle C-Style en Swift. Adicionalmente, -- y ++ También es probable que los operadores estén saliendo..

Teniendo en cuenta esos hechos, ya estamos viendo el beneficio de Swift de ser de código abierto. No solo está madurando, sino que se está haciendo compatible con otras plataformas aparte de iOS, sino que los desarrolladores también pueden ver los cambios que ocurren públicamente. Adaptar las bases de código para Swift 3 realmente no debería ser un problema, porque ya no tenemos que esperar a que la próxima WWDC tenga conocimiento de los avances en el lenguaje.

Donde empezar

Teniendo en cuenta el impacto del código abierto, es posible que se esté preguntando cómo involucrarse. El software de código abierto inicialmente puede ser un poco intimidante si no ha estado involucrado con él antes. Aquí, me gustaría señalar algunas formas en que puede obtener una mejor idea del software de código abierto, y Swift en particular.

Salidas sociales

Un buen lugar para comenzar a involucrarse con Swift de código abierto son las discusiones en sí mismas. Como era de esperar, muchas de estas discusiones se originan en Twitter. Algunas correcciones de errores importantes que se mencionan en Twitter incluso se han corregido antes de que Swift fuera de código abierto.

Los desarrolladores pueden expresar fácilmente sus ideas para Swift utilizando la baja barrera de entrada de Twitter. Además, todavía no tiene que pasar por el proceso de aportar código. Es una forma de bajo estrés para comenzar a contribuir con Swift..

También es divertido y educativo interactuar con los desarrolladores de Swift. Fueron bastante activos en Twitter antes del movimiento de código abierto, y más aún después. Dicho esto, aquí hay algunos ingenieros de Apple que están inmediatamente involucrados con Swift..

Chris Lattner @clattner_llvm

Chris es responsable de brindarnos Swift y también fue el autor original de la infraestructura del compilador LLVM. Naturalmente, él siempre está comprometido con la comunidad Swift. De hecho, incluso ha estado aceptando solicitudes de extracción a las 10:00 pm de un sábado. Decir que está involucrado activamente con el proyecto sería una subestimación.

Jordan Rose @UINT_MIN

Jordan es otro ingeniero de primera categoría de Apple que se centra principalmente en Swift. Al igual que Chris, Jordan también es un gran recurso para plantear preguntas o inquietudes de Swift.

Joe Groff @jckarter

Joe también es un ingeniero talentoso que trabaja en Swift. Respondió varias preguntas sobre Swift y siempre está feliz de participar con la comunidad..

Código contribuyente

La iniciativa de código abierto de Swift se ejecuta a través de la popular plataforma GitHub. Si no está familiarizado con GitHub, o Git en general, contribuir a Swift puede ser una perspectiva bastante intimidante. Si ese es el caso para usted, le recomiendo que se familiarice con estas herramientas primero, y este es un buen lugar para comenzar.

Para comenzar, deberá configurar un entorno local. GitHub README de Swift es una excelente guía a seguir, así que no repetiré esos pasos aquí. Básicamente, después de solo unos pocos comandos desde la línea de comandos e interacciones con el repositorio, estará listo y en funcionamiento.

Empieza pequeño

Al contribuir con el software de código abierto, o cualquier otro software en general, es bueno comenzar con un objetivo pequeño y manejable. De hecho, Chris Lattner lo alienta..

Trate de encontrar algunas partes del código base y familiarícese con ellas. A partir de ahí, estarás mejor preparado para ver qué se podría mejorar. Personalmente, el primer paso que daría es leer la Guía de contribución de Swift..

Proyectos Swift de código abierto

Algunas noticias emocionantes (y sorprendentes) que surgieron del anuncio de código abierto de Swift fueron algunos proyectos que están en desarrollo con el lenguaje. Se esperaban algunos de ellos, como el compilador y la biblioteca estándar, y algunos eran iniciativas completamente nuevas..

Cada uno de los cuatro proyectos principales se desarrolla abiertamente, por lo que las contribuciones son bienvenidas. Echemos un breve vistazo a cada uno de ellos ahora.

Compilador y biblioteca estándar

Tomado de swift.org, el compilador de Swift "es el principal responsable de traducir el código fuente de Swift en un código de máquina eficiente y ejecutable". Incluso si no tiene un conocimiento profundo de los compiladores o de cómo funcionan, es fascinante navegar por su código si solo para fines educativos.

El segundo componente de este proyecto, la biblioteca estándar, es probablemente algo con lo que la mayoría de los desarrolladores estarán familiarizados. Alberga todo, desde los tipos de datos más fundamentales, como En t y Doble tipos, a tipos de colección avanzados, tales como Formación y Diccionario.

Si eres un ávido desarrollador de Swift, ahora tienes el poder de ayudar a moldear cómo funcionan estos tipos. O, si quisiera un conjunto de funciones especializadas específicas para sus necesidades, incluso podría bifurcar el repositorio y personalizar los tipos de Swift como mejor le parezca.

Gestor de paquetes Swift

La comunidad de iOS ha visto varias vías diferentes para distribuir el código. Algunas opciones populares incluyen Cocoapods y Cartago. Ahora podemos agregar el Swift Package Manager a esa lista.

Aunque está en las primeras etapas de desarrollo, este es el proyecto que me parece más interesante. De hecho, actualmente no es compatible con iOS, tVOS o watchOS. Si bien el soporte para esas plataformas vendrá, a medida que vaya madurando, podría usarse potencialmente para distribuir código Swift más allá de solo iOS o OS X.

Bibliotecas centrales

El proyecto de Swift Core Library está estrechamente relacionado con la biblioteca estándar, excepto que proporciona una funcionalidad de orden superior. Las herramientas incluidas en este proyecto son típicamente conceptos independientes de la plataforma..

Por ejemplo, el proyecto de la biblioteca central aloja la funcionalidad para el análisis JSON, la prueba de unidades y la interacción con el sistema de archivos. Estas son herramientas que dependerán de la plataforma o proyecto en cuestión.

Para poner este proyecto en términos más relevantes para los desarrolladores de iOS y OS X, libdispatch se encuentra aquí. Probablemente estés familiarizado con eso, ya que es de donde viene Grand Central Dispatch. Dicho esto, tiene sentido que esté incluido en las bibliotecas principales ya que la ejecución de código concurrente no es una tarea específica solo para iOS o OS X.

REPL y depurador

Por último, el proyecto REPL y Debugger es probablemente un poco autoexplicativo. Este proyecto es responsable de la implementación del conjunto completo de depuración de Swift. El depurador LLDB es algo que los desarrolladores han estado usando desde hace bastante tiempo, porque está incluido en Xcode.

Sin embargo, el REPL y el depurador están altamente acoplados, lo que tiene sentido ya que proporcionan un valor similar de muchas maneras. REPL significa "Leer Eval Print Loop" y es genial de usar para el código Swift ligero. Si abre la terminal y escribe "Swift", comenzará a ejecutar Swift REPL localmente.

Como puede ver, ciertamente no hay escasez de proyectos o componentes de Swift para contribuir. Sin embargo, aunque parezca un cliché, esto es solo el comienzo y surgirán varios proyectos nuevos a lo largo del tiempo..

Recursos

Para terminar, me gustaría dejarle algunos recursos que puede utilizar para ampliar su conocimiento del panorama de código abierto de Swift.

Swift.org

Este es el destino oficial de todo el desarrollo de Swift. Incluye guías para comenzar, resúmenes de todos los proyectos en curso y más. Esta debería ser tu primera parada si quieres involucrarte..

Blog de Apple Swift

Si bien este ha existido por un tiempo, si no lo has visitado antes, deberías. Contiene mucha información útil sobre Swift y su arquitectura escrita por Chris Lattner. Aunque aún está por verse si se mantendrá en lugar de swift.org, sigue siendo un recurso valioso..

Página de GitHub de Swift

Ya lo he mencionado varias veces, pero aquí es donde tiene lugar todo el desarrollo de Swift. Si desea examinar el código, los repositorios de bifurcaciones o enviar solicitudes de extracción, aquí es donde sucede.

Lista de correo de la evolución de Swift

Esta es una excelente lista de correo a la que puede suscribirse si está interesado principalmente en ver cómo evolucionará Swift y la dirección que está tomando el idioma. Además, hay varias otras listas de correo para considerar su suscripción, en las que se discuten varios aspectos del desarrollo de Swift. Puedes verlos a todos aquí.

Tablero de errores de Swift

Como cualquier otro software, Swift tiene errores. Esta es la ubicación central que el equipo Swift utiliza para rastrear errores y seguirlos hasta que se resuelvan. Aparte de errores, también se pueden sugerir mejoras aquí..

Conclusión

Swift va a jugar un papel importante en el desarrollo de iOS en el futuro. Creo que los desarrolladores lo han sabido desde que se anunció en la WWDC 14. Lo que es emocionante es que ahora se manifestará fuera de las plataformas de Apple. Imagine utilizar Swift como un lenguaje del lado del servidor al desarrollar una API?

Quizás más importante que el crecimiento de Swift es el hecho de que la comunidad impulsará el cambio. Open sourcing Swift abrirá muchas puertas tanto para usted como para el idioma. Ahora es el momento de involucrarse, así que empiece a leer las pautas de contribución y espero ver su próximo compromiso en el repositorio de Swift.