Aquí hay 10 razones para adelantarse al juego comenzando a trabajar con Swift ahora.
1. Swift es más fácil de leer
C objetivo
sufre todas las verrugas que esperarías de un lenguaje construido en C.
diferenciar las palabras clave y los tipos de los tipos C, introdujo Objective-C
nuevas palabras clave con el símbolo @. Debido a que Swift no está construido en C, puede
unifique todas las palabras clave y elimine los numerosos símbolos @ delante de
cada tipo de Objective-C o palabra clave relacionada con el objeto.
Gotas rápidas
convenciones heredadas. Por lo tanto, ya no necesita punto y coma para terminar las líneas o
paréntesis para rodear expresiones condicionales dentro de if / else
declaraciones. Otro gran cambio es que las llamadas a métodos no se anidan dentro
entre ellos resultando en un infierno de paréntesis – adiós, [[[ ]]]
.
Las llamadas a métodos y funciones en Swift usan el estándar de la industria
lista de parámetros separados por comas entre paréntesis. El resultado es un
lenguaje más limpio y expresivo con una sintaxis y gramática simplificadas.
Rápido
el código se parece más al inglés natural, además de otros
lenguajes de programación populares y modernos. Esta legibilidad lo hace más fácil.
para programadores existentes desde JavaScript, Java, Python, C # y C ++ a
adoptar Swift en su cadena de herramientas, a diferencia del patito feo que era
C objetivo.
2. Swift es más fácil de mantener
El legado es lo que
detiene Objective-C: el lenguaje no puede evolucionar sin C
evolucionando C requiere que los programadores mantengan dos archivos de código para
mejorar el tiempo de construcción y la eficiencia de la creación de la aplicación ejecutable, un
requisito que se traslada al Objetivo-C.
3. Swift es más seguro
Un aspecto interesante de Objective-C es
la forma en que los punteros, particularmente los punteros nulos (nulos), son
manejado. En Objective-C, no pasa nada si intentas llamar a un método
con una variable de puntero que es nula (sin inicializar). La expresión o
la línea de código se convierte en una no operación (no-op), y aunque pueda parecer
beneficioso que no se bloquee, ha sido una gran fuente de errores. UNA
no-op conduce a un comportamiento impredecible, que es enemigo de los programadores
tratando de encontrar y arreglar un bloqueo aleatorio o detener el comportamiento errático.
Opcional
los tipos hacen que la posibilidad de un valor opcional nulo sea muy clara en Swift
código, lo que significa que puede generar un error del compilador a medida que escribe mal
código. Esto crea un ciclo de retroalimentación corto y permite a los programadores codificar
con intención Los problemas se pueden solucionar a medida que se escribe el código, lo que en gran medida
reduce la cantidad de tiempo y dinero que gastará en corregir errores
relacionado con la lógica del puntero de Objective-C.
Tradicionalmente, en Objective-C, si se devolvía un valor de un
método, era responsabilidad del programador documentar el comportamiento
de la variable de puntero devuelta (usando comentarios y nombres de métodos
convenciones). En Swift, los tipos opcionales y los tipos de valor lo hacen
explícitamente claro en la definición del método si el valor existe o si
tiene el potencial de ser opcional (es decir, el valor puede existir o puede
ser nulo)
Para proporcionar un comportamiento predecible Swift desencadena un tiempo de ejecución
bloquearse si se utiliza una variable opcional nula. Este choque proporciona
comportamiento consistente, lo que facilita el proceso de corrección de errores porque
obliga al programador a solucionar el problema de inmediato. El tiempo de ejecución Swift
el bloqueo se detendrá en la línea de código donde una variable opcional nula tiene
ha sido usado. Esto significa que el error se solucionará antes o se evitará por completo.
en código Swift
4. Swift está unificado con gestión de memoria
Rápido
unifica el lenguaje de una manera que Objective-C nunca tiene. El apoyo
para el conteo automático de referencias (ARC) se completa en todo el procedimiento
y rutas de código orientadas a objetos. En Objective-C, ARC es compatible con
las API de Cocoa y el código orientado a objetos; sin embargo, no está disponible
para código de procedimiento C y API como Core Graphics. Esto significa que se convierte
la responsabilidad del programador de manejar la administración de memoria cuando
trabajando con las API de Core Graphics y otras API de bajo nivel disponibles
en iOS La gran pérdida de memoria que un programador puede tener en Objective-C
son imposibles en Swift.
Un programador no debería tener que pensar
sobre la memoria para cada objeto digital que crea. Porque ARC
maneja toda la gestión de memoria en tiempo de compilación, la capacidad intelectual que
han ido hacia la gestión de la memoria, en cambio, pueden centrarse en la aplicación principal
lógica y nuevas características. Porque ARC en Swift funciona en ambos
código procesal y orientado a objetos, no requiere más contexto mental
interruptores para programadores, incluso mientras escriben código que toca
API de nivel inferior: un problema con la versión actual de Objective-C.
Automático
y la gestión de memoria de alto rendimiento es un problema que ha sido
resuelto, y Apple ha demostrado que puede aumentar la productividad. El otro
efecto secundario es que tanto Objective-C como Swift no sufren de un
El recolector de basura ejecuta la limpieza de la memoria no utilizada, como Java, Go,
o C #. Este es un factor importante para cualquier lenguaje de programación que
se utilizará para gráficos receptivos y entrada del usuario, especialmente en un
dispositivo táctil como el iPhone, Apple Watch o iPad (donde el retraso es
frustrante y hace que los usuarios perciban que una aplicación está rota).
5. Swift requiere menos código
Rápido
reduce la cantidad de código que se requiere para las declaraciones repetitivas
y manipulación de cuerdas. En Objective-C, trabajar con cadenas de texto es
muy detallado y requiere muchos pasos para combinar dos piezas de
información. Swift adopta características modernas del lenguaje de programación como
agregando dos cadenas junto con un operador “+”, que falta en
C objetivo. El soporte para combinar caracteres y cadenas como este es
fundamental para cualquier lenguaje de programación que muestre texto a un usuario en
una pantalla.
El sistema de tipos en Swift reduce la complejidad del código
declaraciones – ya que el compilador puede descubrir tipos. Como ejemplo,
Objective-C requiere que los programadores memoricen tokens de cadena especiales ( %s
, %d
, %@
)
y proporcionar una lista de variables separadas por comas para reemplazar cada token.
Swift admite la interpolación de cadenas, lo que elimina la necesidad de
memoriza tokens y permite a los programadores insertar variables directamente
en línea con una cadena orientada al usuario, como una etiqueta o un título de botón. los
el sistema de inferencia de tipos y la interpolación de cadenas mitigan un común
fuente de accidentes que son comunes en Objective-C.
Con
Objective-C, desordenar el orden o usar el token de cadena incorrecto causa
La aplicación se bloquea. Aquí, Swift nuevamente lo libera del trabajo de contabilidad,
se traduce en menos código para escribir (código que ahora es menos propenso a errores)
debido a su soporte en línea para manipular cadenas de texto y datos.
6. Swift es más rápido
Goteante
las convenciones heredadas de C han mejorado enormemente Swift debajo del capó.
Los puntos de referencia para el rendimiento del código Swift continúan apuntando a Apple
dedicación a mejorar la velocidad a la que Swift puede ejecutar la lógica de la aplicación.
Conforme
a Primate Labs, creadores de la popular herramienta de rendimiento GeekBench,
Swift se acercaba a las características de rendimiento de C ++ para las tareas vinculadas a la computación en diciembre de 2014 utilizando el algoritmo Mandelbrot.
En febrero de 2015
Primate Labs descubrió que Xcode 6.3 Beta mejoró Swift’s
rendimiento del algoritmo GEMM: un algoritmo vinculado a la memoria con
acceso secuencial de matrices grandes, por un factor de 1.4. La FFT inicial
implementación: un algoritmo vinculado a la memoria con acceso aleatorio de gran tamaño
matrices: tuvieron una mejora de rendimiento de 2.6 veces.
Promover, adicional
se observaron mejoras en Swift mediante la aplicación de mejores prácticas,
resultando en un aumento de 8.5 veces para el rendimiento del algoritmo FFT (dejando
C ++ con solo una ganancia de rendimiento de 1.1 veces). Las mejoras también
Swift habilitado para superar C ++ para el algoritmo de Mandelbrot por un factor
de un mero 1.03.
Swift está casi a la par con C ++ tanto para la FFT
y algoritmos de Mandelbrot. Según Primate Labs, el algoritmo GEMM
el rendimiento sugiere que el compilador Swift no puede vectorizar el código de C ++
compilador puede: una ganancia de rendimiento fácil que se podría lograr en el
próxima versión de Swift.
7. Menos colisiones de nombres con proyectos de código abierto
Uno
El problema que ha plagado el código Objective-C es su falta de apoyo formal
para espacios de nombres, que fue la solución de C ++ para codificar colisiones de nombres de archivo.
Cuando esta colisión de nombres ocurre en Objective-C, es un error de enlace,
y la aplicación no puede ejecutarse. Existen soluciones alternativas, pero tienen potencial
trampas La convención común es usar letras de dos o tres letras.
prefijos para diferenciar el código de Objective-C que se escribe, digamos, por
Facebook versus tu propio código.
Rápido
proporciona espacios de nombres implícitos que permiten que exista el mismo archivo de código
en múltiples proyectos sin causar una falla de compilación y sin requerir
nombres como NSString (Siguiente paso: la compañía de Steve Jobs después de ser despedido
de Apple) o CGPoint (Core Graphics). En definitiva, esta característica en
Swift mantiene a los programadores más productivos y significa que no tienen que hacerlo
la contabilidad que existe en Objective-C. Puedes ver Swift’s
influencia con nombres simples como Array, Dictionary y String
de NSArray, NSDictionary y NSString, que nacieron de la falta
de espacios de nombres en Objective-C.
Con Swift, los espacios de nombres se basan en
el destino al que pertenece un archivo de código. Esto significa que los programadores pueden
diferenciar clases o valores usando el identificador de espacio de nombres. Esta
El cambio en Swift es enorme. Facilita enormemente la incorporación abierta
proyectos de origen, marcos y bibliotecas en su código. los
los espacios de nombres permiten a diferentes compañías de software crear el mismo código
nombres de archivo sin preocuparse por colisiones al integrar código abierto
proyectos Ahora tanto Facebook como Apple pueden usar un archivo de código de objeto
llamado FlyingCar.swift sin errores ni fallas de compilación.
8. Swift admite bibliotecas dinámicas
los
El mayor cambio en Swift que no ha recibido suficiente atención es el
cambiar de bibliotecas estáticas, que se actualizan en las versiones principales
(iOS 8, iOS 7, etc.), a bibliotecas dinámicas. Dinámica
Las bibliotecas son fragmentos de código ejecutables que se pueden vincular a una aplicación.
Esta característica permite que las aplicaciones Swift actuales se vinculen con versiones más recientes de
el lenguaje Swift a medida que evoluciona con el tiempo.
los
el desarrollador envía la aplicación junto con las bibliotecas, las cuales son
firmado digitalmente con el certificado de desarrollo para garantizar la integridad
(hola, NSA). Esto significa que Swift puede evolucionar más rápido que iOS, que es un
requisito para un lenguaje de programación moderno. Cambios en las bibliotecas.
todo se puede incluir con la última actualización de una aplicación en App Store,
Y todo simplemente funciona.
Las bibliotecas dinámicas nunca han
ha sido compatible con iOS hasta el lanzamiento de Swift y iOS 8, aunque
Las bibliotecas dinámicas han sido compatibles con Mac durante mucho tiempo.
Las bibliotecas dinámicas son externas al ejecutable de la aplicación, pero están incluidas.
dentro del paquete de aplicaciones descargado de la App Store. Reduce el
tamaño inicial de una aplicación cuando se carga en la memoria, ya que
el código está vinculado solo cuando se usa.
La capacidad de diferir la carga en un
La aplicación móvil o una aplicación integrada en Apple Watch mejorará la percepción
rendimiento para el usuario. Esta es una de las distinciones que hacen que el
El ecosistema de iOS se siente más receptivo. Apple se ha centrado en cargar
solo activos, recursos y ahora código compilado y vinculado sobre la marcha. los
La carga sobre la marcha reduce los tiempos de espera iniciales hasta que un recurso es
realmente necesitaba mostrar en la pantalla.
http://www.infoworld.com/article …