El 30 aniversario de Python esta semana encuentra al lenguaje de programación en la cima de su juego, pero no sin desafíos. "Creo que Python simplemente no tiene las prioridades correctas en estos días", dijo Armin Ronacher, director de ingeniería en la empresa de monitoreo de software Sentry y creador de Flask, el popular Python web app framework.
|
etiquetas: lenguaje python , programación , desarrollo aplicaciones
Pero los lenguajes que petan en tiempo de ejecución con errores que hubiesen sido detectados al compilar en cualquier lenguaje más estricto... Ufff... Llámame viejo pero lo echo de menos.
A mi no me importa (tampoco tengo programas con miles y miles de lineas), pero si que es un poco cansino a veces
La verdad es que me encanta ese lenguaje, es muy "nostalgico"
me encantaria un preprocesador o IDE con "beautylizer", es decir poder escribir delimitando con algún separador "a la c" y luego me lo pase a identado. Lo he intentado con macros/script de ultraedit y uff, NO.
Lo cual no es malo, claro.
Esta no me la sabía. Pero que crimen es esto!?
Cc #8
La anidación le da estructura, visualmente me gusta ya que puedes ver las funciones claramente
Ojo, sacrificando "eficiencia" seguramente siempre es viable pero en según que casos prefiero eficiencia, la verdad.
No hay algo parecido a Rubocop para Python? Llámame facha, pero cada vez estoy más en contra del libre albedrío en la programación
Desarrollar los mismos scripts en Perl me llevaría más tiempo (no tengo una base del mismo) y desarrollar en KSH me entra cáncer de sida, aunque a veces no hay más remedio
Pedir permiso hasta para
mearconvertir de entero corto a entero largo.Salvo que tengas un Notepad que no te automatice los sangrados, no veo el problema.
#1 Esa es la filosofia de Rust, incluso las variables son inmutables y hay que hacerlas modificables explicitamente. Hay que esforzarse para cometer errores en lugar de esforzarse para evitarlos.
Por desgracia me quedé bloqueado en el aprendizaje y me he desmotivado un poco. Creo que llegué al nivel que dice #23, pero sin trabajar en oficina, sino que lo hago en mi casa. Una gran satisfacción cuando te haces tu primer script más o menos complejo y ves que funciona.
#40 No sé, todo eso que no se tiene se puede puede ir buscando sobre la marcha en Internet. Eso sí, se hace tedioso y tiene que ser un hobby que te guste, sino mejor salir a pasear antes que aprender a programar.
Pero si que es cierto que en general en lenguajes que tienen alternativas, es una mala práctica, y sobre todo es una mala práctica si no tienes pleno conocimiento de cuál es la mejor opción en cada caso.
Perdón por ser aún un nulo en la materia. Poco a poco estoy aprendiendo y quería aprovechar para preguntar y seguir aprendiendo.
#39
Fuera de bromas, compañeros que trabajan con él dicen lo mismo.
Además, que lenguaje usarías para enseñar eso? Porque, cojamos VBA, por ejemplo, me parece aún más complejo para entenderlo, además que tienes los típicos problemas con los Array clásicos en los que tienes que saber el tamaño del array desde el inicio.
Creo que las listas y tuplas de Python son la mejor manera para introducir a alguien en el mundo de las estructuras de datos. Un diccionario de Python es bastante sencillo, comparado con cualquier equivalente de otro lenguaje, sea Java, C, VBA, Pascal, PHP o JavaScript.
Quizás PHP y JavaScript sean más o menos igual de sencillos. Pero, es que alguien que empieza desde 0, el concepto de las estructuras de datos siempre será algo más complejo.
¿Que es fácil hacer en ...?
Python: Web, Automatizar tareas
PHP: Web
C/C++: Acceso al hardware, portabilidad
Prolog: Razonamiento lógico
C#: interfaz de usuario, Windows.
Si tu proyecto necesita mucho acceso al hardware o correr hasta en tostadoras, usas C, si quieres automatizar algo, Python, si quieres matemáticas, usas MATLAB/Octave, etc...
Y bueno, el ejemplo que pones, es simplemente porque (igual que en JS y otros) la cabecera de la función se ejecuta cuando se define y el resto del cuerpo de la función se ejecuta cuando se llama. Si lo piensas así es lógico.
Y para ambas cosas me gusta y no lo veo tan mal. Hace años que no he tocado algo compilado, desde hace mucho que fue con Delphi/Pascal. Y no lo echo de menos, realmente.
eso es que no estás haciendo IA, ciencia de datos o similar, porque es que es eso o R (que si no te gusta python, entonces ni hablar de R)
GOTO 1988
Con un lenguaje "para todo" como puede ser Python, un lenguaje de bajo nivel como C, y un poco de Shell como es Bash... Tienes cubierto la casi totalidad de problemas.
Y luego te puede preguntar por qué no hay un lenguaje que lo haga todo y lo haga fácil. Ocurre que hay cosas excluyentes. Si tu lenguaje es sencillo y portable y corre hasta en consoladores, como puede ser C, has sacrificado casi el 100% de características que no son portables, cosas como pintar en pantalla o conectarse a internet. (Resumen muy bruto)
Yo trabajo en ciencia de datos con él y hacer lo mismo en C me costaba el doble de trabajo. Pero también lo uso para automatizar tareas de todo tipo y para programar pequeñas chorradas que necesito en un momento dado o para resolver problemas que me surgen y nada tienen que ver con mi trabajo. Para lo único que no lo uso es para la programación web porque estoy muy acostumbrado a PHP de mis anteriores trabajos y me sale muy rápido y natural. Pero también podrías hacerlo.
En mis 3 décadas programando y habiendo pasado por más de 10 lenguajes profesionalmente (desde ensamblador hasta Javascript) no recomendaría otro lenguaje para empezar a programar.
En general, todos los lenguajes pueden hacer más o menos lo mismo, y todos tienen ventajas y desventajas respecto a los demás.
Has visitado C:\con\con últimamente?
Si me dejan tiempo quiero pasarlo todo a web y eso sí que será más grande. Calculo que es posible que llegue a los 50.000 LOC, pero no tiene porque sería microservicios independientes.
Qt es lo mismo, con la particularidad de que tienes que compilarlo tu (con las putada que tiene) si te sales de x86/x64/Arm.
Portable de verdad sigue siendo solo C89, por desgracia.
Y VC++ tambien para Windows...
Qt no tienes que compilarlo tu... hay paquetes ya compilados para x86/x64/ y ARM. Ademas con Qt puedes compilar una misma aplicacion para Windows, Linux, Mac, Android e iOS sin apenas cambiar nada de codigo....
Lo que limita mucho cuántas moderneces podemos permitirnos. Qt (pagando) lo solemos tener a mano para muchas aplicaciones de interfaz.
Pero el problema real que tienes es de testing
La verdad es que se debería empezar con pseudocodigo pero entiendo que si no ves resultados palpables según que tipo de alumno enseguida perderá el interés
Escúcheme, joven. En mis tiempos, sí un procedimiento tenía más de 50 líneas ya era largo.
Hay alguna función escrita por mi en Python quen o he sido capaz de optimizarla y supera tu límite de 50, pero lo considero jodida.
Pero, para cosas sencillas, es posible que meterlo todo en un módulo sea aceptable y sea un código que entre dentro de ambas limitaciones (30-50 líneas).
No hacerlo así no tiene sentido en el entorno donde lo aplico.
Más sencillo que otros, quizás. Pero de facilísimo nada.
Facilísimo sería un lenguaje de programación natural, en el que no haya que aprender syntaxis y de más.
Pero le falta pedigrí
Los lenguajes C++, Objective-C, Java, Javascript, C# etc. no deberían haber existido jamás de los jamases.
Por ejemplo, si vas a hacer un rectángulo en pantalla con asteriscos, lo natural es usar dos bucles anidados, no tratar de hacer todo con un único print y diversos trucos.
class A
{
public:
A();
virtual ~A();
void Op1();
void Op2();
int Op3();
bool Op4();
int Op5(int a, int b);
private:
int x;
int y;
int z;
};
Vamos... una complejidad de lectura increible...