¿Qué piensan los ingenieros de software sobre Swift (lenguaje de programación de Apple)?

Se ve mucho mejor de lo que esperaba. Si bien no es lo más avanzado, tiene su corazón en el lugar correcto, más de lo que puedo decir para ciertos otros idiomas modernos. Fue diseñado claramente por algunas personas que tienen tanto conocimiento como buen gusto, pero, con la misma claridad, un poco cobarde para el atractivo pop. Teniendo en cuenta que, por razones de mercado, trata de no sacudir el barco, parece un diseño muy sólido.

Una pena que sea de propiedad. (EDITAR: ¡Ya no es propiedad! Yay).

En su mayor parte, realmente se parece a lo que debería haber sido Go.

Tiene la mayoría de las características principales que creo que son cruciales para un lenguaje moderno de alto nivel:

  • genéricos
  • funciones de primera clase
  • buen soporte para la inmutabilidad (es decir, let , mutating )
  • tuplas
  • variantes / tipos de suma (a través de enumeraciones que pueden contener valores)
  • una REPL

También parece tener un buen soporte de OO, yendo más allá del estilo clásico de Java con cosas como métodos de extensión.

Si Java arrastró a C ++ hasta la mitad para ceder, parece que Swift está arrastrando a los programadores de iOS hasta la mitad de ML, ¡algo que obviamente apoyo!

Es casi exactamente lo que pensaría si alguien quisiera un lenguaje OO aburrido, tipo C, con características y comodidades modernas de alto nivel. Está bastante cerca de la corriente principal, pero no tiene miedo de tomar algunas características más avanzadas (como los tipos de suma), sin hacer nada “radical”. De esa manera, su filosofía de diseño se siente bastante similar a la moderna C modern.

No soy un gran admirador de Go, y he pasado algún tiempo pensando en cómo podría mejorarse su diseño sin renunciar a su naturaleza fundamentalmente imperativa y poco emocionante. Swift se ve bastante cerca de ese diseño, con algunas características OO incorporadas en la parte superior.

Si sabes portugués brasileño, puedes consultar mi “Swift para Rubysts, una introducción rápida” (AkitaOnRails.com – Swift para Rubistas, Rápida Introdução) que acabo de publicar.

El lenguaje es muy simple, conciso, con poca o ninguna ambigüedad en su sintaxis, por lo que creo que está muy bien diseñado.

Las raíces también son bastante obvias. Obtienes un lenguaje que ya es muy bueno, aunque muestra su antigüedad: Objective-C. Ahora, si elimina la verbosidad (comas, paréntesis innecesarios, inferencia de tipos), ya se acerca bastante a Swift.

Luego, unifica los viejos tipos C y Obj-C bajo una jerarquía simple (String, Array, Dictionary, Tuple, Doubles, etc.) que el compilador puede asignar de nuevo a UInt32, NSMutableString y otros tipos originales subyacentes.

La reciente incorporación del cierre a Objective-C es buena, pero la sintaxis no le hace justicia, por lo que debe implementarla de una manera más simple. Agregue ARC al lenguaje de una manera aún más transparente y casi hace que parezca que hay un recolector de basura completo.

Entonces Swift es definitivamente el heredero legítimo de Objective-C, con toques de Ruby, Python, algunos Go, pero sin la mayoría de las complejidades. Es muy fácil de aprender (puede aprender fácilmente la nueva sintaxis en un día si ya comprende los protocolos, categorías, selectores, etc. de Objective-C).

La parte que consume más tiempo no es el lenguaje, sino los marcos como Foundation, Cocoa y los nuevos que acaban de lanzar SpriteKit, SceneKit, CloudKit, etc.

Básicamente es SML sin coincidencia de patrones.

  • Ser capaz de tener tipos implícitos y explícitos (referencia de tipo)
  • Ser capaz de tener variables tanto mutables como inmutables
  • Funciones de primera clase (que significa cierres, funciones anónimas)
  • Básicamente tiene la opción / Quizás Monad (¡no más excepciones de puntero nulo!)
  • REPL
  • Zurra

Básicamente me dan ganas de pensar en cambiarme al desarrollo iOS desde Android.

Cuando Apple lanzó Swift en 2014, estaba realmente escéptico sobre si cumpliría con mis expectativas. Aunque no era un gran admirador del Objetivo C, comencé a adoptar ese lenguaje debido a algunas de sus poderosas características como bloques, envío de mensajes e introspección.

Intenté con Swift y resultó ser mucho más allá de mis expectativas. He estado codificando en Swift durante casi un año y puedo decir con confianza que mi código se ha vuelto más limpio con menos errores que antes. Swift ha sido diseñado con mucho cuidado al recoger las mejores características de lenguajes como C, C ++, Objective-C y Python. Es tan rápido como un lenguaje de programación de sistemas y sigue siendo expresivo como un lenguaje de programación.

Estas son algunas de las características que hacen que Swift se destaque entre otros idiomas.

1. Tipo de seguridad e inferencia : Swift es de tipo seguro, lo que significa que debe tener claro el tipo de valores con los que puede trabajar su código. Si su código espera una Cadena, no debe pasarle una Int. Debido a estas comprobaciones de tipo Swift al compilar su código y marca cualquier tipo no coincidente como error. Esto le permite detectar cualquier error al principio del proceso de desarrollo.

Sin embargo, esto no significa que deba especificar el tipo de cada constante o variable como lo hace en C y Objective-C. Si no especifica el tipo que necesita, Swift usa inferencia de tipos para deducir ese tipo. Esto conduce a un código conciso ya que no necesita especificar el tipo para cada declaración.

2. Opcionales: se utiliza un opcional en Swift cuando un valor puede estar ausente. Si marcamos x como opcional, simplemente significa que x puede contener un valor o ningún valor (en cuyo caso será nulo). Los opcionales no existen en lenguajes como C u Objective-C. Estos lenguajes devuelven un cero para indicar la ausencia de un objeto. Pero esto funciona solo para objetos y no para tipos de valores como Int, Double, etc. En estos lenguajes, la persona que llama al método debe verificar si el resultado devuelto es igual a cero y tomar medidas sobre esa base. Esto puede provocar errores si se omiten las comprobaciones adecuadas.

“Los opcionales de Swift le permiten indicar la ausencia de un valor para cualquier tipo, sin la necesidad de constantes especiales”.

De: Apple Inc. “El lenguaje de programación Swift (Swift 2.2)

3. Tipos de valor: Un tipo de valor es un tipo cuyo valor se copia cuando se asigna a una variable o constante, o cuando se pasa a una función. En Swift Arrays, Dictionary, Structs y Enumerations, todos son tipos de valores. Las estructuras y las enumeraciones son mucho más potentes en Swift con características como herencia, conformidad con protocolos y métodos.

Puede preguntarse por qué Swift adopta tanto los tipos de valor cuando se trata de un lenguaje orientado a objetos con alguna característica poderosa para los objetos de clase. Los tipos de valor son una herramienta increíblemente flexible para simplificar su código.

  • Los tipos de valor le permiten hacer arquitecturas típicas significativamente más claras, más simples y más comprobables.
  • Los tipos de valor generalmente tienen menos o ninguna dependencia del estado externo, por lo que hay menos que tener en cuenta al razonar sobre ellos.
  • Los tipos de valor son inherentemente más componibles y reutilizables porque son intercambiables.

https://www.objc.io/issues/16-sw

4. Programación funcional: Thought Swift no es puramente funcional, pero admite varias ideas de programación funcional como inmutabilidad, funciones de orden superior, tipos de valores, etc.

Swift hace que los aspectos centrales de la programación funcional sean una piedra angular de su visión de cómo escribir código seguro, fácil de mantener y rápido. La inmutabilidad ya no es solo una convención para colecciones, todo en Swift debería ser inmutable por defecto. Declaramos todas nuestras variables con la palabra clave let, y solo cuando sea realmente necesario por la semántica de la variable la cambiamos a var. Los objetos ya no son tan frecuentes en nuestro código. La mayoría de los tipos en Swift son valores: todos los tipos de números, cadenas, tuplas, enumeraciones y estructuras potentes, matrices, conjuntos y diccionarios. Solo los tipos de referencia son clases y funciones. El tipo de función en Swift es un tipo de primera clase. Todo esto convierte a Swift en un lenguaje de paradigmas múltiples que hace que los conceptos tanto orientados a objetos como funcionales sean igualmente naturales de usar.

Programación funcional en Swift • Five


Hay muchas otras características como protocolos, extensiones, genéricos, enumeraciones expresivas, etc., que hacen de Swift un candidato poderoso para el lenguaje del futuro. Con la fuente abierta de Apple del lenguaje Swift y viendo el gran apoyo de la comunidad, no tengo dudas de que Swift mejorará mucho con el tiempo. Es posible que veamos Swift en el lado del servidor o un sistema operativo escrito en Swift en un futuro próximo. Es un buen momento para aprender Swift.

Es solo otro lenguaje de programación moderno que compite por nuestra atención. No hay nada particularmente especial al respecto. Y como todos los lenguajes de programación, tiene sus pros y sus contras, sus fortalezas y debilidades.

Lo que distingue a Swift de todos los otros contendientes como:

  • Ceilán
  • Clojure
  • Cristal
  • Dardo
  • Elixir
  • Olmo
  • F#
  • Haskell
  • Haxe
  • Julia
  • Kotlin
  • Oxido
  • Scala

Al final, todo se reduce al marketing (de boca en boca o promoción ingeniosa).

iOS Swift: una plataforma que permite el desarrollo de aplicaciones móviles para dispositivos portátiles, iBeacons y nuevos dispositivos iOS

Swift es un lenguaje de programación nuevo, muy rápido y altamente eficiente, incluido con potentes funciones, presentado por Apple para desarrollar aplicaciones para iOS y Mac. Desde su introducción, las principales empresas de desarrollo de aplicaciones para iOS y iPhone comenzaron a adoptar Swift. Solution Analysts ha hecho su incursión con el nuevo programa de desarrollo de aplicaciones y hemos desarrollado 20 aplicaciones basadas en el lenguaje Swift con características sorprendentes y una rica experiencia en aplicaciones. Estamos brindando soluciones a las empresas que buscan una aplicación web o móvil más rápida basada en el nuevo lenguaje Apple Swift … Leer más

He hecho un poco de Python, Java y Objective-C …

Swift siente que está tratando de capturar la facilidad de escritura y la simplicidad de Python con la escritura estática para permitir la compatibilidad con C existente y código C objetivo. En lugar de un sistema base con muchas características ‘parcheadas’, está diseñado teniendo esas características en mente.

Desafortunadamente, en la mayoría de los casos, la decisión de qué idiomas debe aprender depende más de qué tipo de trabajo desea hacer. Si haces desarrollo para iOS o Mac, entonces ya estás haciendo Objective-C y probablemente deberías aprender Swift, ya que esa es la forma en que se mueve la plataforma.

También me recuerda un poco a Scala, en el sentido de que es una nueva forma ‘sexy’ de escribir código para una plataforma establecida. A mi entender, parece un lenguaje sólido, y si Apple quiere que sea la herramienta preferida para el desarrollo de iOS / Mac, con el tiempo lo será.

Swift realmente no tiene algo especial como lenguaje. Es un lenguaje de programación moderno típico, la sintaxis está muy cerca de lo que podemos encontrar en Scala y Kotlin, que son más antiguos que Swift y se están utilizando en diversos problemas y casos de uso.

Eche un vistazo a estos otros dos idiomas, pruébelos y se dará cuenta de lo cerca que están todos estos lenguajes modernos en construcciones, sintaxis, intenciones, objetivos de diseño, …

Me gusta Swift La mayoría de la gente ya publicó excelentes críticas al respecto.

Me encantaría ver que se generalice y esté disponible en muchas plataformas, donde la comunidad de desarrollo puede trabajar en marcos, servidores de aplicaciones, compiladores, etc.

Mi única preocupación es que, dado que es muy estricto con Apple (sí, sé que existen iniciativas para abrirlo), podría seguir el camino de otro increíble lenguaje de programación: C #. C # es un lenguaje muy agradable, pero es muy popular en el ámbito de Microsoft. Si bien hay esfuerzos para tenerlo disponible para otras plataformas, no se ha puesto al día en el mundo que no es Windows.

Sí, los esfuerzos están ahí. Pero me pregunto si son suficientes. Me encantaría ver Swift y C # como lenguajes de programación convencionales para cada plataforma.

Depende de a quién le preguntes, supongo. La mayoría de los ingenieros de software que conozco adoran a Swift. Estoy seguro de que hay algunos que no lo hacen.

En Touchtap utilizamos exclusivamente Swift para nuevos proyectos. Swift es el idioma nativo para el desarrollo de iOS y el único camino a seguir si está desarrollando aplicaciones móviles iOS en lo que a nosotros respecta. Al usar el idioma nativo, terminas con un producto que es hermoso, generalmente fácil de usar y funciona mejor con menos errores.

Además, tenga en cuenta que la mayoría de los desarrolladores tienen una curva de aprendizaje rápido cuando aprenden Swift, especialmente si ya conocen Objective-C. Después de todo, en su mayor parte es traducible. Apple quiere que sus productos funcionen y funcionen bien. Una forma en que pueden hacer que eso suceda es desarrollando un lenguaje que les guste a los desarrolladores y que quieran codificar. Creo que lo han logrado con Swift.

Para obtener más información sobre Swift y nuestras opiniones sobre todo lo relacionado con el desarrollo móvil, visite nuestro blog – Blog | Desarrollo de aplicaciones móviles Dallas Fort Worth TX.

Acabo de empezar a aprenderlo. Se ve muy bien, pero tome tiempo de mis proyectos en desarrollo. A la luz de todo el código histórico escrito en el objetivo-c (un lenguaje que amo), el futuro cercano será bilingüe.

Hemos estado escribiendo aplicaciones en Swift desde que se anunció en junio en WWDC 2014. Es mucho más rápido escribir y las aplicaciones también se ejecutan notablemente más rápido.

Queríamos compartir experiencias y opiniones, así que creamos un sitio y un video sobre Swift. ¡Echale un vistazo! ¡Swift, una nueva era de aplicaciones para iOS y mira lo que piensan nuestros desarrolladores!

Me sorprendió lo bueno que es. Tal vez ese sentimiento está en contraste con el infernal Objetivo-C, pero venir a Swift es encantador. El código tiene mucho más sentido y se mantiene muy simple.

Salté de alegría y grité ‘Finalmente puedo codificar iOS sin aprender el horrible Objective-C’ 🙂 No hay resentimiento para los programadores de Objective-C.

La principal fortaleza de Swift radica en la velocidad de las aplicaciones de codificación. Compartimos un ejemplo real sobre cómo se resuelven algunas tareas con Objective-C y el nuevo Swift.
Swift: cómo codificamos sus aplicaciones de iOS dos veces más rápido

Escribir código de nivel superior, aprovechar el estilo funcional de programación y obtener más rendimiento que la contraparte de Objective-C … ¡demonios, sí!

Parece bastante interesante, seguro que llevará un tiempo acostumbrarse a ‘no’ agregar puntos y comas a su código. 😉

Creo que trae todas las características que un lenguaje moderno debería tener. La sintaxis es mucho más limpia que Obj-C también.

Conozco algunos ingenieros que tienen miedo de aprender un nuevo idioma (lo cual es una pena), pero Swift me parece un gran paso de Apple para desarrolladores y estoy realmente entusiasmado con eso.

Ahora, veremos si realmente es tan bueno como parece, pero hasta entonces, incluso la idea de poder escribir aplicaciones iOS usando un lenguaje más nuevo y moderno es lo suficientemente emocionante.

Hubiera sido mucho mejor si solo cambiaran a un lenguaje interpretado bien establecido y popular, como Python, por ejemplo, ¡lo cual es genial! Simplemente están creando una brecha entre los desarrolladores de iOS y el resto del mundo … ¡mal movimiento para Apple!

YAPL
Otro lenguaje de programación más.

More Interesting

¿Es posible que un ingeniero de software integrado gane $ 150000 por año en Silicon Valley?

¿Las bases de datos SQL, ASP y PHP siguen siendo la base de muchos sistemas de back-end?

¿Silicon Valley es amigable con los ingenieros de software indocumentados?

¿Sería una lástima que obtuviera un doctorado en Ciencias de la Computación en una buena universidad, pero solo trabajara como ingeniero de software (no como investigador científico o profesor)?

Siendo un ingeniero de software experto en la última tecnología (IoT / AI), ¿qué puedo hacer para regresar a mi ciudad natal donde no tengo esas oportunidades?

¿Qué tiene un mayor potencial de trabajo, un científico de datos o un ingeniero de software?

¿Cómo es ser un ingeniero de software indio? Qué desafíos enfrentas?

¿Las pruebas JUnit valen el tiempo y el esfuerzo? Mi experiencia es que tardan aproximadamente un 30% más de tiempo, pero realmente no encuentran tantos errores.

Ingeniero de software: ¿Cuál es el costo de vida en varias ciudades centrales de TI de la India?

¿Puedo ser ingeniero de software con un título en ingeniería informática?

¿Cuál es la diferencia entre Java y JavaScript?

¿Qué tan difícil es para un ingeniero de software cambiar al comercio algorítmico?

¿Cuáles son las ventajas y desventajas de trabajar como ingeniero de software en la industria financiera?

¿Por qué tantos ingenieros de software en la industria automotriz no están contentos con sus trabajos?

¿Cuáles son las posibilidades (estadísticamente) de ser empleado como ingeniero de software después de graduarse de Hack Reactor?