Descargo de responsabilidad: al principio sonará tangencial o indirecto, pero incorporaré FP y responderé a su pregunta específica.
Preguntas como esta: ¿por qué el estado de la industria es como X?
En su conjunto, lamentablemente se rige más por la comprensión de la economía, la oferta y la demanda de MBA, en lugar de la idea de que los programadores podrían haber sido capacitados colectivamente para hacer algo como elegir qué idiomas usar o que sus opiniones sobre los idiomas importan tanto …
- ¿Cómo realizan las pruebas los probadores? Cual es la estrategia?
- ¿Es cierto que el tiempo ahorrado al desarrollar en lenguajes de alto nivel se desperdicia luego en el ajuste del rendimiento de la aplicación?
- ¿Cuáles son algunos casos de uso para usar algoritmos en el desarrollo de software?
- ¿Qué carrera debería elegir, analista de big data o ingeniero de desarrollo de software en las pruebas? ¿Cuál es mejor?
- ¿Cuáles son las implicaciones de un concepto como TrueTime api (de Google Spanner) en el diseño de sistemas distribuidos?
Existe una enorme demanda exponencialmente creciente de programadores competentes, y aparentemente no hay mucha oferta. Las corporaciones reaccionan a este desequilibrio no pagando a los programadores salarios a nivel ejecutivo, supongo que a algunos se les paga tanto, pero en general las empresas parecen querer probar algo más que pagar mucho más por los buenos programadores. Tenga en cuenta la colusión ilegal en la contratación entre las principales empresas de tecnología que resultó en una demanda colectiva recientemente.
Una de las cosas que intentan es inflar el suministro tanto como sea posible y aquí es donde su pregunta sobre “¿por qué no FP?” Es respondida. Probablemente esperabas puntos como
- Seguro que muchos programadores desprecian la FP. Seamos realistas, es una gran tarea para los programadores experimentados cambiar por completo la forma en que ven y piensan sobre la programación.
- Claro que es más matemáticamente correcto y elegante, especialmente para el paralelismo y la concurrencia, pero la mayoría de los programadores trabajan en un solo subproceso, bases de código relativamente aburridas. En esos casos, ¿qué cosa práctica realmente logran cambiar?
- Por otro lado, es cierto que muchos programadores son naturalmente curiosos y disfrutarían la oportunidad de aprender un nuevo paradigma para el trabajo.
- Un pequeño equipo de programadores funcionales competentes puede ser más productivo a través de mayores niveles de abstracción que un gran equipo atrapado en lenguajes de menor nivel.
- …
Pero lamentablemente, ninguno de estos puntos realmente importa. El único que lo hace es
- El uso de FP restringe nuestro suministro de programadores candidatos a un margen estrecho. Esto da miedo porque ya no podemos encontrar suministro con tecnologías convencionales. No podemos encontrar graduados nuevos para trabajar en Java, un lenguaje que definitivamente conocen. ¿Cómo puedo encontrar a alguien para desempeñar un papel de Haskell?
- Además, si encontramos a alguien que funciona de maravilla por algún milagro, entonces no será el engranaje fungible que necesitamos que sea. No podemos disparar y reemplazar. Tendrán la capacidad de decir no a trabajar en fantasías de pérdida de tiempo.
- reemplazarnos nos costará una fortuna absoluta porque no tendremos tiempo y estaremos desesperados si / cuando salen por la puerta y nos dejan con un montón de transformadores de mónada decepticon en todas partes.
Lo que es interesante hoy es que algunas compañías más pequeñas han hecho los cálculos y decidieron que sí, limitan el suministro total (hay más candidatos Java que Haskell) pero en realidad han aumentado el suministro de candidatos viables de calidad (hay sorprendentemente más hackers realmente excelentes). dispuestos a trabajar en Haskell por 120k que Java por 150k) y las nuevas empresas generalmente no quieren graduados más débiles, quieren programadores que puedan construir lo que necesitan con baterías incluidas. Entonces esto realmente tiene mucho sentido.
Para concluir, sí, muchos programadores son tontos y simplemente no reciben FP y nunca lo harán. Muchos no lo son. Pero eso es irrelevante porque, aunque FP produce un código superior, las grandes corporaciones malvadas saben que, en última instancia, perjudica su capacidad de contratación y, por lo tanto, les cuesta más $$ de lo que una base de código superior les da. Al menos eso creen los agentes Smith. No digo que tengan razón. Pero este es el paisaje en el que nos encontramos.