Cuando Craig Federighi desveló ante los desarrolladores de la WWDC14 el nuevo lenguaje de programación Swift, arrancó unos cuantos gritos de sorpresa entre su audiencia. No soy desarrollador, pero a juzgar por su recepción y las reacciones a esta presentación se trata de un gran paso adelante para los desarrolladores en general e iOS en particular.
Creo que Swift es aún más importante para Apple. Lo que pretenden en Cupertino es aumentar el valor que aportan las apps a los usuarios. Al mismo tiempo, buscan atar corto a sus desarrolladores seduciéndoles con un nuevo horizonte de posibilidades. Si os habéis dado cuenta, toda la keynote fue acerca de cómo iban a hacer más abiertos sus sistemas, especialmente iOS. Han roto las cadenas que restringían la libertad de acción de los desarrolladores. Presentan un nuevo lenguaje de programación. Pero a la vez, es algo que busca limitar los ports a otras plataformas.
¿Por qué? Y, sobre todo, ¿por qué ahora? Sabemos que Swift ha estado 4 años en desarrollo por lo que es algo que han estado planeando hace mucho tiempo. De sobra es conocido el desdén que siente Apple por todo lo que sea un estándar. Que otros lo utilicen no significa que ellos deban usarlo también. Es probable que vieran las limitaciones de los lenguajes existentes, el auge de otras plataformas (ahem, Android) y vieran que necesitaban hacer algo al respecto. Muy típico de Apple.
Niños, no os distraigáis

Eso es lo que intentaron transmitir a su público durante la presentación. "Mirad todo lo que tenemos para vosotros, para que juguéis todo lo que queráis y no os distraigáis con tonterías". Puede que Android haya superado hace poco a iOS en número de descargas y esté a la altura en número de apps, pero sigue estando por detrás de iOS en ingresos:

Aunque la cuota de mercado no importa demasiado a Apple, los desarrolladores tienen la responsabilidad de enfocar su negocio en la plataforma que sea más rentable. iOS está aún por delante pero puede que un día la fuerza bruta de los números de Android hagan que la balanza de los beneficios se incline en su favor. Sin duda, esta es la gran esperanza de Google. De conseguirlo, se invertiría la situación actual en la que tenemos multitud de apps exclusivas o primero en iOS.

Schiller se dio de baja de Instagram cuando salió su versión Android
Swift ha nacido para evitar que esto suceda. Apple cuenta con una base de desarrolladores muy fieles que crean "las mejores apps del mundo" para iOS, la plataforma más rentable del momento. Con el incentivo suficiente, buscan eliminar que se les pase por la cabeza considerar un port. Quieren que desarrollar para iOS sea aún más fácil con Swift, proporcionar las funcionalidades y apertura que siempre han demandado y más de 4.000 nuevas APIs con las que trabajar. Entre ellas:
-
Integración con Touch ID.
-
Apertura de la cámara a terceros y posibilidad de modificar manualmente el contraste, exposición, etc.
-
Nuevas APIs para iCloud.
Al mismo tiempo consiguen que el nuevo lenguaje de programación actúe de cortafuegos hacia otras plataformas.
La pelota está en el tejado del desarrollador
Desde la presentación realizada en el Moscone Center, la pelota ha caído encima de los desarrolladores. Apple sabe que son su mejor activo para diferenciarse de la competencia y ha hecho un gran esfuerzo en hacerles la vida más fácil. Les gusta la exclusividad y quieren mantenerla también en el software. Swift forma parte fundamental de esta estrategia para permanecer diferente al resto de fabricantes. Veremos si los desarrolladores la reciben con los brazos abiertos y da resultado.
Descargar | The Swift Programming Language.
Imagen | density quiz 11/17 de Jack Lyons.
En Applesfera | The Swift Programming Language, disponible en iBooks Store y Las Novedades y No-Novedades del WWDC2014.
En Genbeta Dev | Swift, Apple lanza un nuevo lenguaje para programar en iOS y OS X.
Ver 11 comentarios
11 comentarios
darkness69
Bueno bueno, a ver, Swift nace porque quiere atraer a programadores de otros entornos, ya que es un lenguaje similar a otros muy populares como Python, es compilado, de alto nivel, y mucho más fácil de aprender que Objective C. Personalmente llevo unos días estudiándolo y me encanta, pienso que era muy necesario que apareciera un lenguaje así. Naturalmente no iban a adoptar Python o cualquier otro parecido. Esto les ha permitido crear un lenguaje con características muy modernas y avanzadas.
Pero todo lo que hay sigue adelante. Quiero decir, Objective C seguirá ahí mucho tiempo, lógicamente. No se puede tirar todo y empezar de nuevo en dos días. Ojo, con el tiempo lo veremos morir, pero pasarán años. Por otro lado, gente como Unity3D que programan en C# o Javascript seguirán generando código ejecutable para iOS, eso sí, tendrán que ir pensando en las modificaciones que se van a ir llevando a cabo en Cocoa y Cocoa Touch.
Y, por otro lado, nunca se había programado en Objective C fuera de Apple. El compilador existe, pero no las librerías Cocoa y Cocoa Touch. Luego necesitas un Mac o un Hackintosh para programar (pregunta de todo novato: ¿dónde está la versión de XCode para Windows?
Este es un movimiento lógico de Apple, y como desarrollador le doy la bienvenida. Creo que era necesario. Pero no cambia la situación de la plataforma. Eso sí, habrá que ir pensando en migrar a Swift, yo los nuevos desarrollos de después del verano los voy a hacer todos en Swift. Y Cocos2D y Spritebuilder que son las herramientas que uso para hacer videojuegos ya están migrando todo a Swift. Creo que es un esfuerzo, sin duda, pero ganamos todos mucho, y se pierde el miedo a los "punteros" de C y Objective C, a los corchetes y al modelo de clases que tan poco gusta a la gente que viene de otros lenguajes orientados a objetos.
En fin esa es mi modesta opinión.
jcfmunoz
Señor Archanco, lamento comunicarle que esta vez ha patinado en su poco conocimiento del mundo del desarrollo. Le explico: cuando uno compila Swift lo que genera es código binario ARM o x86 (en función de la plataforma). Y el código ARM es el mismo que usan casi todos los dispositivos móviles del mercado. Objective-C es plenamente convertible con SDKs como Apportable, una herramienta creada por los actuales responsables del desarrollo de Cocos2D-Swift (antiguo Cocos2D-iphone) y que permite compilar una app o juego iOS en Android sin modificar una sola línea de código a través del compilador GCC. He portado con éxito yo mismo proyectos para clientes a Android sin, insisto, tocar una línea de código y todo hecho en Objective-C y usando muchas de las librerías nativas Cocoa Touch. O también tiene soluciones como Cocos2D-x que permiten desde un proyecto Xcode compilar hasta para Windows Phone.
Por lo tanto, Swift no es más que un nuevo lenguaje que facilita, y mucho, el desarrollo. Yo mismo ya lo estoy usando y es más productivo y eficiente que Objective-C. Y es un lenguaje que luego se traduce a código binario. No hace falta más que tiempo para que alguien modifique GCC (que es código abierto) para que compile y genera código para Android u otra plataforma móvil o Windows y Linux de escritorio.
Porque al final, señor Archanco, un lenguaje de programación no es más que una sintaxis que un compilador traduce en código máquina: y dicho código máquina ahora es el mismo para todos. Solo hay que empaquetarlo para que cada sistema lo entienda. No es fácil, no es trivial, pero no imposible. Como le digo, ya se hace con Objective-C.
Reciba un cordial saludo y para la próxima que hable de desarrollo, estoy a su disposición para resolverle las dudas que sea necesario.
John Appleseed
Honestamente no veo como Swift vaya a limitar el desarrollo multi-plataforma. En todo caso se pueden seguir llamando funciones de C, por lo que sigue abierta la puerta a la creación de librerías multi-plataforma.
No mal-entendamos las cosas, Swift no nace para hacer el desarrollo más fácil, que si por ejemplo comparamos el objective-c actual con el de hace 5 años, hoy en día es mucho más fácil de aprenderlo.
Swift ha llegado por que era necesario, porqué Objective-C es un lenguaje viejo y que por más que le cambien no deja de ser un superconjunto C, lo que significa heredar todos sus problemas, como tener un desbordamiento de momoria (y por ende agujero de seguridad) al mínimo descuido. Swift fue creado porqué era necesario pasarse a un lenguaje moderno, robusto, diseñado para integrarse con cocoa y que aprendiera de las décadas de experiencia que tenía Objective-C.
Lo siento Eduardo Archanco, respeto mucho tu trabajo en Applesfera, pero usar frases como: "Niños, no os distraigáis" cuando estás hablando de un tema del que no tienes experiencia, me parece algo arrogante.
vistaero2
¿Alguien puede explicarme por qué dice el autor que el nuevo lenguaje busca limitar los ports a otras plataformas?
¿Es que acaso programando en Objective-C es fácil pasar la aplicación a Java?
De programador sólo tengo mis pinitos en aplicaciones para Windows con Visual Basic .NET, así que personalmente no le veo sentido.
manu730
Porque siempre hay que centrarlo todo en ios vs android? no podemos pensar que es una facilidad para los desarrolladores en ios y punto? y que ojala las halla tambien en android y que todas las apps esten en los dos sitios a la vez y ya esta?.
Sinceramente, apple ha querido poner las cosas mejor y ya esta no creo que se halla montado tantas pajas mentales.
Ivanovich
Si nos quieren hacer la vida más fácil lo que personalmente pido es que pongan más revisores en su tienda para que bajen los tiempos de espera actuales (7-10 días) a unas pocas horas. Este tiempo de espera junto a lo de no poder responder las reviews son 2 factores para mi clave para mejorar nuestra vida diaria.