edición general

Lenguajes de programación: Python es el más popular de 2019 según IEEE Spectrum

Warning: comentario altamente sujetivo

Soy programador Python traído desde las profundidades de .NET. Y una de las diferencias sustanciales es la reducción de carga cognitiva con respecto a .NET y similares. Con mucho menos código haces lo mismo, y menos código por regla general quita ruido facilitando la lectura (yo me paso más rato leyendo código que escribiéndolo en general). MI vida se ha vuelto mucho más fácil en general gracias a python.

Muchos dirán que la falta de un compilador que te haga de colchón es un fail muy grande (por su naturaleza dinámica). Lo que esta gente ignora es que, precisamente, esa falta de compilador te obliga a mantener una alta cobertura de tests, obligando al equipo a tener la disciplina de implementar tests para todas las features, algo que, para mí, es superpositivo. Tu compilador de cara a refactors son los tests.

Mantengo microservicios y monolitos de cientos de miles de líneas en python, y solo le veo un par de pegas:

1- Python serio no es para novatos precisamente por la necesidad de tests. El equipo ha de ser consciente de ello. Novato en python == código plagado de bugs.
2- No es un lenguaje pensado para programación funcional, razón por la cual mi sueño sería hacer algún proyecto serio con Elixir.

Pero sí, programar en python en general me ha cambiado la vida, y no miro hacia atrás. En el mundo business general no es necesario el rendimiento de Java o C++ o Rust, ya que tus cuellos de botella suelen estar en el IO, no en la CPU.
#27 Pues mi experiencia después de muchos años programando es la contrario. Quiero toda la verificación estática que el compilador pueda darme. Es fácil olvidar escribir un test, pero el compilador nunca se va a olvidar de verificar lo que le pidas. Y a la hora de refactorizar es infinitamente más sencillo si tienes información de tipos. Por algo la mayoría de los lenguajes hasta ahora dinámicos están incluyendo tipado opcional.

Y en cuanto a que el código de Python sea más compacto que el de C#, por mi experiencia con ambos lenguajes eso se debe más al diseño de las bibliotecas que al lenguaje en sí.
#33 Opiniones hay miles, y entiendo tu punto de vista. En mi proceso de programación, suelo usar las siguientes reglas:

- No necesitamos declarar el tipo de las variables en la mayoría de casos si ponemos unos buenos nombres de variables (sólo declaro el tipo si creo que en un cierto punto puede mejorar la entendibilidad de mi código). Cierto que ayudan al refactorizado en algunos casos, pero a cambio de "ruido" que a menudo no hace falta. Como muchas cosas en la vida, todo es sopesar pros y contras.
- Toda feature que se espera que haga la aplicación tiene un test de aceptación end to end. Si se ha olvidado escribir ese test que precisamente comprueba la correctitud del código y la feature... Ya te falla lo más elemental, y no es problema del lenguaje, sinó del programador.
#36 Sobre tus dos reglas:

- Inferencia de tipos, existe desde al menos los años 70, aunque hasta ahora no había llegado a los lenguajes populares. Hoy en día cuando programo en C++, C# o Rust pocas veces tengo que declarar el tipo de las variables. El tipo de las funciones y métodos sí, pero eso ayuda mucho a entender el código.
- Los tests son fundamentales, pero una cosa no quita la otra. Y aparte, me parece redundante tener que escribir tests para cosas que el compilador puede verificar automáticamente.
#33 y de hecho por eso estan a tope con los type-hints en Python. Pero al final queda igual de verboso que cualquier otro lenguaje con tipado estatico, y los hints tampoco son perfectos. Una chapucilla, vamos.
#27 Perfecto, pongamos casi toda la responsabilidad en el propio programador. ¿Que puede salir mal?

No sé a qué business te refieres. En el que conozco yo, la tendencia es llevar sistemas complejos a la nube. Y el consumo en la nube también hay que pagarlo.

Tu comentario suena a que en comparación, Java es súper eficiente al lado de Python. Vaya, que más lento que el caballo del malo.

“El rendimiento da igual”. Hostia, qué miedo!! Corred niños, corred!!!

menéame