El desarrollo de software tiene que ver con la complejidad. Y realmente, solo se trata de eso. Para todo lo que la gente habla sobre ellos, los lenguajes de programación no importan mucho. Lo cual, paradójicamente, es la razón por la cual hay tantos. No hacen tanta diferencia, por lo que uno nunca ganará contra todos los demás. La gente seguirá pensando que uno u otro es el Santo Grial y resolverá todos los problemas, pero nunca lo hacen.
Porque el problema subyacente es siempre la complejidad. Por supuesto, hay problemas que no son complejos. En ese caso, puede activar un programa rápidamente que resuelve el problema y luego olvidarlo. Pero los problemas que pasas tu vida resolviendo son los complejos. Aquí, fuera de mi cabeza, hay algunas de las razones de la complejidad:
- Los usuarios quieren muchas cosas
- Los usuarios quieren cosas imposibles y no aceptarán un no por respuesta
- Los usuarios no saben lo que quieren.
- No sabes lo que quieren los usuarios
- El hardware se rompe de manera predecible, lo que se espera que maneje
- El hardware se rompe de manera impredecible, que todavía se espera que falle con gracia
- No existen estándares en el área relevante.
- Hay demasiados estándares
- Los estándares son ambiguos.
- Otras personas no entienden los estándares
- Los estándares han sido implementados de manera diferente por diferentes personas
- Requisitos heredados
- Las constantes no son
- Las variables no
- Tus colegas son estupidos
- Eres estúpido
- El marketing es estúpido.
- El mercado es estúpido y el marketing tuvo razón al decírtelo
- El mercado tiene razón, pero no puedes entender por qué
- El número de interacciones bidireccionales aumenta a medida que el cuadrado del número de partes que interactúan
- Las interacciones son a menudo más de dos vías, con el consiguiente aumento exponencial de la complejidad.
- Las soluciones simples no escalan, por lo que debe usar soluciones complejas
- Internet hace que todo sea más complicado
- La gerencia sigue escuchando palabras de moda y quiere que las implemente de inmediato sin tomarse ningún tiempo
- La seguridad hace que todo sea más complicado y más lento
Estoy seguro de que otras personas considerarán muchas otras razones
- ¿Cuál es la diferencia entre un diseñador de software, un científico de datos y un desarrollador de software?
- ¿Es una mejor idea ir al mercado independiente con su proyecto de software o asociarse con una empresa de desarrollo de software?
- ¿Qué es mejor para comenzar una carrera, desarrollador de software o funcionario de IAS?
- ¿Qué tan alta es la barrera de entrada para Apache Spark para tareas que no son de aprendizaje automático?
- ¿Qué debe hacer uno como desarrollador web para programar de una manera que aproveche los procesadores de núcleo múltiple? Sigo leyendo que PHP, Ruby y Python se volverán obsoletos porque no tratan con la concurrencia.