¿Será más fácil el desarrollo de software en el futuro debido a idiomas y bibliotecas más fáciles o más difíciles, ya que los sistemas de software se volverán más complejos?

Esto simplemente depende de la capacidad de los propios desarrolladores y de la disposición de la empresa para moverse.

Muchos desarrolladores carecen de los conocimientos de desarrollo adecuados. En su mayoría dan puñaladas en la oscuridad hasta que alcanzan su objetivo.

Un buen software tiene en mente la composición y hace un uso intensivo de los componentes conectables.

En Good software, si una parte del sistema no le conviene, ¡cámbiela! Si respetas los límites, el resto del código ni siquiera se dará cuenta.

El lenguaje más reciente lo hace mucho más fácil. P.ej. Go tiene el concepto de interfaces implícitas! ¡Impulsa al desarrollador a crear muchas interfaces pequeñas porque es barato y fácil y la recompensa es enorme!

Entonces, depende de dos cosas:

  • Habilidades de desarrollador
  • Disponibilidad de las empresas para mover el código heredado a nuevos idiomas (o versiones más nuevas de ellos)

Como QA, puedo decirle que la calidad es preocupante y que la mayoría de los desarrolladores no pueden distinguir entre la inyección de dependencia y la inversión de dependencia. Peor aún, ¡una gran parte no tiene ni idea!

Y si pregunta: “¿Qué paradigma de programación se adapta mejor al problema en cuestión?” O “¿Es una construcción idiomática?”.

Los desarrolladores de APL son ipso facto capaces de responder sobre modismos, pero no pregunte a un desarrollador de PHP o Java (puede hacer una lista de todos los lenguajes que no tratan algunas construcciones como modismos en la fase de compilación: APL reconoce el código idiomático y lo optimiza )!

Efecto Dunning-Kruger: ¡Wikipedia también está siempre en la esquina!

También podemos imaginar que en algún momento, la creación de un programa se realizará de una manera totalmente declarativa. Sería suficiente decir lo que quiere como resultado, y la computadora lo logrará. Este cambio por sí solo eliminaría casi TODOS los desarrolladores que actualmente no pueden realizar un análisis comercial adecuado o incluso uno funcional. ¡Algunos ni siquiera pueden manejar los casos de uso correctamente!

Realmente deseo que la gente deje de intentar hacer la programación más fácil y empiece a intentar que sea más confiable. (Lo sé, algunos lo son, pero a veces parecen ser voces solitarias en el bosque).

Programar como profesión nunca será fácil . Ninguna ingeniería (si el software logra una base de ingeniería adecuada) es nunca fácil. Por un lado, una vez que algo se vuelve fácil, se traslada al ámbito de los totalmente automatizados o del aficionado.

Intentar hacer que el desarrollo de software en el mundo real, comercial, “crítico para la misión”, a gran escala (nombre su término para cosas que son “reales”, útiles y utilizadas por muchos) sea fácil o simple es una tarea tonta. Y día a día, estamos pagando por esa tontería, ya que todavía es una especie de extraño santo grial de personas que inventan lenguajes de programación (y bibliotecas y marcos).

Como desarrollador de software profesional, no quiero que se eliminen las dificultades, quiero que se imparta control y expresividad.

Por último: ¡Tipos, por la victoria! Los sistemas de tipo fuerte y expresivo me obligan a decir lo que quiero decir y decirme cuando lo que digo no es coherente.

Más duro Los problemas que estamos tratando de resolver son cada vez más difíciles, independientemente del idioma.

1970: Pong y autos totalmente mecánicos

2017: Call of Duty y autos que se manejan a sí mismos al ver lo que está frente a ellos.

No hay comparación, y esta tendencia, si algo se acelerará.

El software real no es como los ladrillos de Lego, lamentablemente.

More Interesting

Cómo convertirse en un consultor experto en seguridad cibernética independiente de un desarrollador de software

Como desarrollador de software, ¿cuál es un buen nicho para entrar donde puedes reunir a algunos amigos y desarrollar un producto para vender?

¿Cuál es el mejor entorno de trabajo para ingenieros y desarrolladores de tecnología?

¿Qué conjunto de habilidades se requieren para convertirse en desarrollador de software del sistema?

Como estudiante sin experiencia, pero con el conocimiento en desarrollo de software, ¿cómo puedo comenzar un gran proyecto de desarrollo de software?

¿Es cierto que debería "fingirlo hasta que lo sepa" cuando solicito un trabajo de desarrollador de software que requiere habilidades que no conozco?

A menudo me desvío del trabajo (soy desarrollador de software) y me encuentro leyendo artículos de noticias, navegando en Quora, Facebook, etc. ¿Es malo?

¿Cuál es la descripción del trabajo de un desarrollador de software?

¿Dónde está el mejor lugar para encontrar desarrolladores talentosos de Ruby en el Área de la Bahía?

¿Por qué estoy luchando con marcos de aprendizaje y desarrollo de software?

¿Cómo se puede crear una start-up con un equipo de desarrolladores e ingenieros de web / aplicaciones / software reclutados en el extranjero (con la expectativa de trabajar en proyectos en su país de origen)?

¿Cuál será mi futuro prospecto y crecimiento en Pega como desarrollador de Java?

¿Es necesario que el desarrollador de software sepa sobre la implementación de CMMI?

¿Por qué los desarrolladores de aplicaciones usan Apache Hadoop?

¿Se considera "extraño" o "desperdicio" cuando hay una mayor cantidad de control de calidad de software que los desarrolladores de software en una pequeña empresa de software?