IEEE Spectrum ha publicado su sexta lista anual con los lenguajes de programación más populares del año a través de múltiples plataformas, y, para sorpresa de pocos, Python vuelve a repetir como líder indiscutible, tal como pasara en 2017 y en 2018. Para los menos familiarizados, la clasificación de IEEE Spectrum es considerada un buen indicador de la popularidad de los lenguajes actuales, aunque dista de ser perfecta, siempre exponen su metodología al publicar los números.
|
etiquetas: lenguajes , programación , ieee spectrum , lista , 2019 , python , más popular
En caso contrario, me niego a programar en eso, es lo más asqueroso que he conocido, indentado por espacios.
Si, a algunos os gustará y lo respeto, pero eso de indentar por espacios me resulta insoportable.
No hace falta que me respondáis diciendo que programar con espacios está bien por tal o cual motivo, no me vais a convencer, no me gusta, lo odio y como digo, ya intenté hacer una cosa con Python hace un par de años y lo tuve que dejar, era insoportable.
Todo lo que he programado, que no es mucho, siempre lo he hecho con C y JS.
Lo mejor en ese aspecto es go. Ejecutas go fmt y el código se formatea como debe ser. Un poco autoritario, pero se acaban las discusiones de formateo
What? Llevo 3 años trabajando profesionalmente con Python y NUNCA la he liado pardisima por eso. Cualquier editor de codigo te lo va a marcar como SyntaxError y si no cuando vayas a arrancar el projecto te va a tirar un SyntaxError y donde. O me estas diciendo que ni siquiera arrancas el codigo que escribes?
Pero no es sólamente mezclar tabuladores y espacios, eso es fácil de arreglar. El problema surge cuando mueves código de un lado a otro y se te descolocan los espacios, y cambia totalmente la estructura de tu programa.
Si modificas el código corres riesgo de perder la estructura, por eso prefiero las llaves, porque con ellas la indentación viene después de hacer la estructura y hay menos riesgo de equivocarse en mi opinón.
CC #40.
Por cierto, el día que descubras los debuggers y los breakpoints condicionales que tienen los IDEs modernos.
- A veces meto las líneas agrupadas, cuando tienen relación entre si y son varias (hago una tabla).
- A veces meto código mal indentado porque solo lo estoy probando y luego lo quito (y no voy a estar cuidando la presentación para probar un poco).
Vale, los programadores expertos de alto nivel no lo harán así, pero es que la programación no solo es el alto nivel, sino también gente que programa de forma esporádica. A veces solo necesitas un trozo de código... no desarrollar una gran plataforma.
Yo sólo digo que los seres humanos no somos parsers y funcionamos mucho mejor con la ayuda visual de la identación.
De hecho, me he encontrado con más bugs en otros lenguajes (por ejemplo un equipo que trabajaba en Node) por un formateo raro y un despiste con las llaves que en Python. Piensa también que en un equipo de desarrollo grande puede que algún compañero se le vaya la pinza mucho y no le dé la gana de seguir ninguna guía de estilo.
He estado programando más de 5 años profesionalmente con Python y es un lenguaje que tiene muchos problemas, como todos, pero precisamente el tema de la identación es un acierto.
Como ya he dicho antes, cualquier IDE moderno te va indentando automáticamente y si pones algo mal te lo marca en rojo (igual que en cualquier otro lenguaje de programación), por lo que yo no le veo desventaja alguna.
variable_a_inicio = 0; variable_a_fin=0;
variable_b1_inicio = 0; variable_b1_fin=0;
variable_b2_inicio = 0; variable_b2_fin=0;
variable_c_inicio = 0; variable_c_fin=0;
Una tabla bien ordenadita (poniendo espacios para alinear) para mi gusto queda mejor. Habrá quién use vectores y tal, yo prefiero hacerlo así si no es una lista correlativa, es mi forma de programar.
Es algo que se da poco, pero con C lo puedo hacer a mi gusto, con Python... bueno.
También digo que de… » ver todo el comentario
variable_a_inicio, variable_a_fin = (0, 0)
variable_b1_inicio, variable_b1_fin = (0, 0)
...
Aunque para este caso seguramente sería mejor usar un diccionario: dicc = {'A' : {'incio' : 0, 'fin' : 0}, 'B1' : ... }
En cuanto a lo otro que dices... bueno, eso son malas prácticas, yo no programo así ni… » ver todo el comentario
Es lo que muchos detestamos de Python.
C podrá gustar más o menos, pero si quieres envolver un trozo de código con un IF para hacer una prueba, lo haces en un momento y si pones el IF y su llave de cierre sin indentación, luego ves bien dónde lo tenías para poderlo quitar. En Python eso, sencillamente, no es posible. Y si copias y pegas un trozo de código en otro, tienes que tener mucho cuidado con actualizar la indentación, a mi eso no me hace sentir cómodo.
Y eso sin entrar en el tema de que todas las IDEs actuales ya te indentan automáticamente el código.
C#
y el Java es famoso por ser incompatible consigo mismo de una revisión menor a la siguiente.
A mí me molesta la tabulación y el tipado debil, a cambio tiene detalles de alto nivel como númerosimaginarios y diccionarios, y es potente e inmediato.
En realidad, yo creo que Python está aumentando mucho debido al programador universitario que lo usa de manera doméstica, académica y luego también en investigación. Pero en negocio, creo que tenemos Java y js para rato.
Para mi que haya un montón de búsquedas sobre python me indica que es el segundo lenguaje de mucha gente, y que su lenguaje principal lo tienen más por la mano y no tienen que buscar tanto "como hacer x" en él.
Al menos es mi caso, tengo muchas más búsquedas del tipo "<cosa> python" que de "<cosa> golang" siendo Go el lenguaje que uso el 90% del tiempo. Además creo que python está peor documentado y por eso tengo que buscar más.
docs.python.org/3/library/functions.html#any
Y bueno, me parece bien que me de la implementacion equivalente de la funcion 'any' pero me parece un poco innecesario. En cambio necesitas saber que es un iterable, que tipos / objetos son iterables y bueno, no hay ningun ejemplo. Por lo general quieres pasar una lista y una condicion que tienen que cumplir los elementos...… » ver todo el comentario
He cotilleado documentaciones de otros lenguajes para ver si me interesaba migrar y no la veía tan clara. Quizás porque no estoy acostumbrado a ella.
las aplicaciones angular se pueden convertir fácilmente en aplicaciones de escritorio y en aplicaciones móviles.
¿Con aplicaciones de escritorio te refieres a un ejecutable? ¿Cómo compilas el programa de typescript a ejecutable?
¿Con aplicaciones móviles te refieres a apks?
Si no usas intérprete, ¿cómo pruebas los programas?
cordova.apache.org/
ionicframework.com/
Para crear una aplicación de escritorio tambien puede usar:
electronjs.org/
nwjs.io/
Creo que casi todos generan "ejecutables" y apk al uso. Aunque no tendrán el rendimiento de una aplicación nativa puede ser mas que suficiente para uso empresarial donde lo que prima es reducir los… » ver todo el comentario
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… » ver todo el comentario
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í.
- 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… » ver todo el comentario
- 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.
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!!!
PyPy sí te lo compro, es más rápido, pero no es java, así que no sé por qué el trol ese dice que es java interpretado.
Considerando que hoy se programa en muchas ramas del saber, no es de extrañar que Python sea el número 1: es fácil empezar a programar, tiene buenas herramientas e infinidad de librerías.
Otra cosa es el mundo de los informáticos, donde Python tiene su nada despreciable nicho, pero ni de cerca está entre los más usados.
xkcd.com/927/
¿Programas sólo para la web?
¿Que intérprete utilizas?
¿Qué tiene TypeScript que no tenga Python?
angular, y nx (Desconozco si existe equivalente en Python)
¿Programas sólo para la web?
Sí. Pero las aplicaciones angular se pueden convertir fácilmente en aplicaciones de escritorio y en aplicaciones móviles.
¿Que intérprete utilizas?
Generalmente ninguno. Cuando uso alguno uso node o ts-node
Personalmente pienso que Python es mas para el ámbito científico (Para físicos, matemáticos, etc). Para el ámbito empresarial prefiero TypeScript
cojonudo es python
Webasambly te esperamos.
Si quieren meter un conversor de Python a JS, que lo hagan, pero que no inflen más las páginas web.
webassembly.org/
PD: Funciona en el mismo sandbox en el que funciona JS