5 puntos por GN⁺ 2025-02-02 | 4 comentarios | Compartir por WhatsApp
  • Swift ha ganado popularidad como un lenguaje compatible con diversas plataformas, y puede usarse en distintos dispositivos embebidos y sistemas operativos
  • Apple publicó como código abierto Swift Build, un motor de compilación potente y escalable
  • Swift Build se utiliza como el motor de compilación de Xcode, y también se usa para las "apps del App Store y las compilaciones de los propios sistemas operativos de Apple".
    • También admite compilaciones dirigidas a Linux y Windows
  • Funciones clave de Swift Build

    • Un sistema de compilación se encarga de transformar la descripción de un proyecto y su código fuente en resultados como herramientas de línea de comandos, bibliotecas y aplicaciones
    • Swift Build es un componente de infraestructura que planifica y ejecuta las compilaciones solicitadas por clientes de nivel superior como Swift Package Manager o Xcode
    • Gracias a su sólida integración con el compilador de Swift, coordina las compilaciones de proyectos Swift de forma confiable y eficiente
    • Admite diversos tipos de producto y ofrece opciones avanzadas de configuración de compilación
    • Incluye optimizaciones del grafo de compilación para maximizar el paralelismo al compilar código Swift y C
  • Hoja de ruta de Swift Build

    • En comparación con el motor de compilación de Xcode, el motor de compilación de Swift Package Manager es relativamente simple
    • En las plataformas de Apple, dos métodos distintos para compilar paquetes han generado confusión entre los usuarios
    • Buscan resolver estos problemas aportando el motor de compilación de Xcode a los proyectos de Swift y desarrollándolo como código abierto junto con el compilador de Swift
    • SwiftPM tendrá la oportunidad de ofrecer un motor de ejecución de compilación unificado en todas las plataformas
    • Este cambio será transparente para los usuarios y mantendrá compatibilidad total con todos los paquetes existentes
    • Sienta las bases para ofrecer nuevas funciones y mejoras en todas las plataformas y herramientas
    • Se envió un PR para integrar Swift Build como motor de compilación alternativo de SwiftPM
    • Quieren completar la integración del sistema de compilación en colaboración con la comunidad para que todas las plataformas y modelos de proyecto se beneficien de futuras mejoras en las herramientas
  • Invitación a participar

    • Esperan colaborar con la comunidad para seguir haciendo evolucionar la forma en que se compila código Swift.
    • En la organización Swift de GitHub se puede encontrar el repositorio swift-build, que incluye un README y documentación sobre cómo compilar y contribuir.
    • Dan la bienvenida a contribuciones mediante pull requests e issues, y buscan recibir comentarios e ideas de mejora en los foros de Swift.
    • Es un nuevo y emocionante capítulo para el sistema de compilación de Swift, y esperan que ayude a liberar todo el potencial de Swift.

4 comentarios

 
ganadist 2025-02-03

Parece que lo importante es la página 12 de https://llvm.org/devmtg/2016-11/….

Modelo tradicional de compilación/sistema de build en UNIX
• El compilador se ejecuta como un proceso separado
• Mecanismos primitivos para comunicar dependencias
• Pipeline fijo de entrada/salida definido por la línea de comandos
• Esto es una API...
• ...y no la hemos cambiado en décadas
• Nos encanta romper APIs

Del lado de Java, parece que hay una API que informa las dependencias entre el código, así que les indica a las herramientas de build cómo lograr un incremental build,
ej.: Gradle

Parece que también habría que avanzar en aplicar ese enfoque a los builds nativos.

 
nemorize 2025-02-02

Entonces... en resumen, ¿eso significa que Xcode sigue siendo una basura igual que siempre?
T_T

 
roxie 2025-02-02

zzz

 
GN⁺ 2025-02-02
Comentarios en Hacker News
  • La percepción de que Swift es "bueno para todo, pero mejor para las plataformas de Apple" podría ser perjudicial para el lenguaje. Eso impide atraer a más gente al ecosistema de Swift

    • Sus competidores son más open source, tienen más contribuidores y un alcance más acotado
    • Si no hacen open source herramientas como Xcode, la brecha con otros lenguajes se hará más grande
  • Swift es un lenguaje genial

    • Cuando aparece el error "index out of range", el mensaje de error no indica dónde ocurrió
    • Golang sí indica el archivo y el número de línea donde ocurrió el error
  • La situación de Swift recuerda a los primeros tiempos de C#

    • C# también se promocionó como open source y multiplataforma, pero no estuvo a la altura de las expectativas
  • Ojalá Swift estuviera construido sobre LLVM estándar y no sobre el fork de LLVM de Apple

  • Swift debería apuntar a separarse de Xcode

    • Xcode tiene algo de sobrevalorado con su calificación de 3.1
  • La nueva versión de SwiftPM da la oportunidad de ofrecer un motor de ejecución de builds unificado en todas las plataformas

    • Eso podría ser la clave para construir el ecosistema multiplataforma de Swift
  • Me pregunto si esto puede abrir el camino para desarrollar en Swift sin Xcode

  • No está claro qué tan bien se integra Swift Build con las herramientas y el language server de Swift

    • El language server ya es open source
  • Me alegra que Swift se esté independizando de Apple

    • En un proyecto multiplataforma, URLSession.shared.data no compilaba en Linux, y por eso terminé cambiándome a otro lenguaje
  • Me pregunto si Swift va en serio con los sistemas embebidos