En 1989 más o menos, estaba trabajando con un producto de Software AG llamado Natural Construct. Construir era un generador de código que construiría sus pantallas para usted, manejaría el acceso a los datos y proporcionaría una navegación rudimentaria. Pasé 5 meses reescribiendo la navegación, por lo que usó una mnemónica de 2 caracteres basada en tablas para describir el destino y transmitir los valores clave actuales. Luego, otros 6 meses más o menos tratando de agregar dinámicamente reglas comerciales en las pantallas generadas. Se suponía que Construct se desharía de los programadores. Solo genera y ejecuta.
Mi startup ahora usa Ruby on Rails como nuestro entorno de aplicación web. Rails genera su código y pantallas básicas para usted según el modelo que le proporcione. Entonces, generamos con Rails, y luego los programadores agregan las reglas de negocio, codifican Bootstrap para la interfaz receptiva, diseñan la aplicación según el diseño de UI / UX y crean una herramienta administrativa para que podamos solucionar los problemas de los usuarios.
Parece que las cosas no se han movido mucho, ¿no? De hecho, los lenguajes y entornos modernos son íntimamente más poderosos. Pero tenemos los mismos problemas que tuvimos antes.
- ¿Con qué frecuencia los ingenieros de aprendizaje automático implementan sus propios algoritmos?
- ¿Cuál es la diferencia entre Waterfall y Incremental Model?
- ¿Por qué los desarrolladores de juegos y software no mencionan la cantidad mínima de núcleos (CPU) en los requisitos del sistema?
- ¿Es importante la universidad para tener éxito?
- Renuncié a mi trabajo porque mi salario no era tan bueno. Estaba trabajando como ingeniero de software, luego me uní a una pequeña empresa de ventas con un mejor salario, pero después de venir aquí no veo futuro. ¿Qué debería hacer ahora?
Trabajé cuando los ‘Sistemas expertos’ se pusieron de moda, y luego la inteligencia artificial, las primeras lenguas orientadas a objetos (ADA o SmallTalk, ¿alguien?), Y a través de cliente-servidor, ASP, cliente grueso, cliente ligero, etc.
La realidad del software es que es una forma de arte. Estoy de acuerdo en que aproximadamente el 70% del desarrollo moderno es ciencia. Pero la implementación real y los componentes del diseño, como el modelo de datos, la interfaz y la arquitectura escalable, son arte.
Cuando se convierte en ciencia al 100%, puedes deshacerte de los programadores. No puedo ver que eso suceda. ¿Por qué? Tenemos usuarios
Hasta que alguien pueda crear un sistema de software que pueda escribir código, incluidas las reglas de negocio, probar su integración, condiciones límite y aceptación del usuario, y que todo sea generado por una máquina, necesitaremos programadores. Hay demasiadas partes móviles y objetivos móviles para que cualquier otra cosa funcione.