Tecnología, Internet y juegos
208 meneos
1644 clics
Python cumple 30 años esta semana: fácil de aprender y la herramienta adecuada en el momento adecuado [ENG]

Python cumple 30 años esta semana: fácil de aprender y la herramienta adecuada en el momento adecuado [ENG]

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
102 106 3 K 316
102 106 3 K 316
Comentarios destacados:                                
#3 #1 No es solo cuestión de echarlo de menos, es que usar un lenguaje compilado también aporta un montón a los proyectos... :-D
#5 pues a mí lo de la identación es de las cosas que me encantan de Python, el código ordenadito sí o sí
#5 coincido, al principio con lo del indentado pensé "bueno, no pasa nada" pero cuando empiezas a hacer bloques un poco largos es un coñazo, la verdad.
Cc #8
#18 esa es la clave, no se deben hacer bloques largos.
#21 no siempre es evitable...
Ojo, sacrificando "eficiencia" seguramente siempre es viable pero en según que casos prefiero eficiencia, la verdad.
#24 tal vez ese método haga demasiadas cosas...

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 xD
#29 ADA te va a molar entonces. Es como tener a una dominatrix de compilador.
Pedir permiso hasta para mear convertir de entero corto a entero largo.
#33 Estoy con Swift a saco ahora, que es lo mejor que he visto en mi puta vida. Veo lo mejor de Ruby, C y JS en él, que son como mundos opuestos con grandes pros y contras. Swift tiene todos los pros y ninguna contra.
#34 Apple.

Fuera de bromas, compañeros que trabajan con él dicen lo mismo.
#51 No conozco Swift, pero si Objective-C y bueno, que el modelo era el mismo que Smalltalk
#51 es open source y personalmente lo ejecuto en proyectos para la RaspberryPi. Te invito a que lo pruebes y te unas :-)
#34 Pero ¿Swift es para el universo apple solo? o sirve para otras cosas?
#33 Ada no me entró. Se parecía a Pascal pero con más restricciones. Buff, en la UIB te hacian la asignatura de introducción a la programación con ese lenguaje y era un infierno.
#24 humildemente creo que sí, otra cosa es que no tengas tiempo de refactorizar, sobre todo si trabajas sobre lo que otro ha hecho y tienes miedo de cargarte algo que ya funciona. Eso lo entiendo.
#30 uso Python básicamente para tareas de administración de sistemas, en plan scripts para clasificar emails, pasear logs etz, no para aplicaciones "complejas", si tienes en cuenta eso quizá entenderás mi perspectiva.
#32 ok, lo entiendo
#83 #87 en #32 explico para que uso Python. Llevo más de 30 años en esto y no uso un mismo lenguaje para todo, Python lo uso, básicamente, como reemplazo de Perl, por ejemplo para hacer un script que parsee un log y clasifique eventos. Una cosa así hacerlo con funciones es una pérdida de tiempo (y eficiencia), son scripts para un único uso o para una tarea concreta. Evidentemente si quiero guardar los eventos en una DB, por ejemplo, utilizo código reusable, el qual ya es oop o funcional, depende de cada caso.
No hacerlo así no tiene sentido en el entorno donde lo aplico.
#24 Eficiencia en un interpretado? En lugar de hacer funciones?

Escúcheme, joven. En mis tiempos, sí un procedimiento tenía más de 50 líneas ya era largo.
#83 En mis tiempos, si una función tiene más de 30 líneas lo considero 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).
#21: Ya, pero tampoco es cuestión de que el lenguaje de programación te diga cómo tienes que programar...
#96 todos lo hacen
#97: No, en C no te dicen que hagas los bloques de una forma o de otra. Si tienes que hacer 15 cosas en un bloque, las haces y listo, no te dices que compactes el código usando instrucciones hipercomplejas, que es el problema de Python, la manía de meter el código en muy pocas líneas pero de gran complejidad individual.

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.
#99 eso lo puedes hacer igualmente en Python con bucles anidados. C te obliga a usar tipado, declarar las funciones de cierta forma, etc.. que es a lo que me refiero, cada lenguaje te obliga a usarlo de cierta forma.
#18 #37 Python es una mierda por el indentado forzado, encima con posibles errores de espacios y tabulaciones juntas.

Que aprendan de Go. "gofmt -w" al archivo y adiós muy buenas.
#8 Python es muy recomendado como primer lenguaje y que te obligue a indentar evitar coger malas constumbres y te hace ordenador.
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.
#49 cuando hay que escoger un lenguaje, tienes que pensar "¿que es fácil hacer en este lenguaje?" ya que ninguno va a ser bueno para todo. Por poner ejemplos simples.
¿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...
#55 Entiendo. Por eso lo suyo es especializarse, porque dominar todo lenguaje posible es poco práctico. Imagino que con cada nuevo curro/proyecto toca repasar o aprender un lenguaje en tiempo récord (a menos que estés en una empresa especializada en una área en concreto).
#56 no creas. Hay algunos lenguajes que son más o menos "todoterreno" como es Python. Estos lenguajes suelen funcionar razonablemente bien para el 80% de lo que quieras hacer, normalmente no vas a necesitar correr en un sistema con 1K de RAM o que se ejecute en un Windows 2000, o que sea capaz de hacer integrales triples.

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…   » ver todo el comentario
#67 Lenguaje todoterreno es C++, sobre todo las nuevas versiones de C++11, C++14 y C++17, que abarca desde bajo nivel hasta alto nivel y que no solo vale para hardware y portabilidad, sino para Interfaces (vease Qt), bases de datos, graficos, pintar en pantalla y conectarse a internet...
#73 Uso C++11 y llamar portable a eso es columpiarse mucho. Es portable dentro del ecosistema GCC/Clang, que está muy bien y cubre casi todo.

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.
#75 "Es portable dentro del ecosistema GCC/Clang, que está muy bien y cubre casi todo"
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....
#76 No solo de Intel/ARM bajo Windows/Linux vive el hombre. En mi ramo, MIPS/PowerPC/HCS son comunes, al igual que compiladores que no son VC/GCC/Clang.

Lo que limita mucho cuántas moderneces podemos permitirnos. Qt (pagando) lo solemos tener a mano para muchas aplicaciones de interfaz.
#78 Bueno, pero eso es porque los propios fabricantes de las arquitecturas MIPS/PowerPC/HCS no han querido integrar el Standard ISO C++ 11, C++14 y C++17 en los compiladores para sus arquitecturas.
#73 En mi opinión, cualquier lenguaje que se inspire en la sintaxis de C debe arder en el infierno por toda la eternidad. El código se escribe una vez y se lee muchas, por lo que debería primarse la lectura sobre la velocidad de escritura.

Los lenguajes C++, Objective-C, Java, Javascript, C# etc. no deberían haber existido jamás de los jamases.
#98 No se que problema tienes en la sintaxis de C, se entiende perfectamente:

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...
#98 “el código se escribe una vez y se lee muchas veces”

Por eso está resurgiendo de sus cenizas modern Fortran (el inmortal)
#67 Para mí, Python no es un lenguaje para casi todo sino para casi nada. Java sí que lo veo útil en casi todo menos en acceso al hardware.
#89 La primera frase de acuerdo: Python está guay para cálculos de data science (que no sean procesamiento masivo de datos, porque ahí no sirve por ser interpretado) y para hacer cosas como APIs web y demás.

La segunda frase... pffff... Java está guay para aplicaciones corporativas de estas monolíticas de servidor, que es para lo que se diseñó. Para otras cosas por mi parte le pueden dar bien fuerte por el culo al universo Java, incluyendo Kotlin, Scala y demás.
#55 si quieres matematicas con mejor rendimiento que matlab/Octave que puedan correr en muchos entornos usa Python y sus librerías y IDEs(numpy,conda). Muchos ya se han pasado de Matlab a Python.
#65 Luego nos llaman a los de bajo nivel (y a alguno de Java!) para que se ejecute todavía más rápido.
#68 Porque Python se inventó para lo que se inventó, que no es ejecutar grandes operaciones en tiempo real ni manejar grandes volúmenes de datos.

Con ML pasa lo mismo: los sientíficos pican el modelo en Python, lo ponen a correr en Tensorflow y venden el producto al cliente en la demo. Y luego ya detrás vienen los Javeros y C++eros a implementar el producto de verdad.
#55 PHP: meterle fuego :-D
#70 Y lo dice Windows 95.
Has visitado C:\con\con últimamente?
:troll:
#72

C:concon xD xD

Aun recuerdo cuando haciendo un net use de c:concon podia colgar los ordenadores de toda la red.

(mierda, las me las ha borrado meneame) sera que funcionan en güindos 95/98?
#86: ¿Si le hago un Concón a un ordenador "lo dejo mirando a Cancún"? xD
#86 Es que #72 ha usado símbolos de emoticonos para sordos que parecen barras invertidas.
#55 Bueno, para matematicas que dices puedes usar matlab/octave, R, Mathematica ... pero la verdad, para calculo simbólico, numerico , analisis de datos ... tienes fantastics bibliotecas para python que te permiten hacer de todo (numpy, scipy, matplotlib, plotly, mayavi, vtk, pandas, scikit/sklearn, astropy, pyroot, ...). La verdad, una de las grandes ventajas de python, al menos desde el ambito de la física, es que tienes bibliotecas e interfaces para hacer absolutamente de todo, y en qualquier ambito (sea astrofisica, estado solido, nuclear, ...) . Por cierto, sagemath es una autentica gozada. Y si necesitas optimizar codigo, pues recurres a c++ o fortran desde python
#55 >C/C++: Acceso al hardware, portabilidad

Portabilidad: Golang.

Mate: según necesidades. Mathomagic y yacas son hiperligeros y permiten hasta cálculo simbólico básico. Para el resto, tomas los valores y usas gnuplot en ellos.
Python mola, lo uso con regularidad cuando tengo que hacer algo rápido y que no de mucha guerra programar.

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.
#1 PyCharm te hace "algo" de control sobre eso, pero no es un compilador al uso
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"
#1 No es solo cuestión de echarlo de menos, es que usar un lenguaje compilado también aporta un montón a los proyectos... :-D  media
#3 incluso si es compilado just-in-time, el tipado estático es un látigo que te mantiene en línea xD
#3: No te preocupes, se ejecuta tan despacio que tendrás tiempo para hacer eso mismo durante la ejecución. :-D
#1 me sumo, he hecho grandes proyectos con él con bastante éxito y mi amorodio es inmenso. lo de la identación es algo que me concome desde el primer día.
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.
#5 Yo soy muy disciplinado con la indentación y no necesito que el lenguaje me obligue a ello. Pero admito que gracias a esa obligación te facilita mucho el leer el código de los demás.
#20 Yo soy contrario a tanta obligación. Te impide poner cosas muy concisas en una sola línea. Menos líneas también ayuda a la legibilidad.
#1 Puedes poder tipos, com algo parecido a Typescript.
#1 "fácil de aprender". Los cojones. Es útil, interesante, un montón de cosas, pero hay otras muchas que son una lata. La que dices una de ellas.
#22 totalmente de acuerdo
#22: De hecho para aprender es más fácil C o C++, porque en Python hay muchas tareas que se vuelven complejas.

En C y C++ si escribes un printf, lo que pases al printf te sale por pantalla, en Python no pasa eso, en su lugar te añade un salto de línea al final, y eso no es la forma de enseñar a programar (el ordenador no hace nada que no le pidas). Por otro lado en Python hay demasiados tipos de datos (que si tuplas, que si comprensiones, que si tal...). No digo que esté mal, pero para…   » ver todo el comentario
#1 Pues a mí no me mola nada. es cierto que cuando lo conoces le coges el puntillo y para algunas apaños rápidos te vale pero a mí me parece totalmente esquizofrénico la mezcla de programación estructurada y orientada a objetos que tiene. Me cuesta horrores recordar si para saber la longitud de un string tengo que tratarlo como PE o como POO.
#1 test qué?
#1 Pregunta de ignorante en el tema. Si con Python es más fácil programar, ¿por qué se usa entonces tantos lenguajes? Imagino que Python tendrá sus limitaciones, pero que una gran mayoría de programas se pueden crear perfectamente con este lenguaje. ¿Por qué no se ha creado aún un lenguaje que permita programar todo lo posible basándose en lenguajes existentes?

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.
#49 No es sólo el lenguaje de programación, sino la "plataforma" que en idioma llano sería los recursos de programación disponibles para ese lenguaje, como runtimes, SDKs, librerías, herramientas, etc. Sencillamente no hay un martillo para todos los clavos, sino que depende del clavo.
#49 Cuando sale un nuevo lenguaje, normalmente es porque intenta resolver problemas o tareas tediosas de sus antecesores, o especializarse en un campo para optimizar/facilitar el uso de los recursos. Raramente hay un salto de paradigma, como cuando se pasó de la programación estructurada en clases, a la programación orientada a objetos.

En general, todos los lenguajes pueden hacer más o menos lo mismo, y todos tienen ventajas y desventajas respecto a los demás.
#49
Porque cada lenguaje tiene su nicho y cosas que se pueden hacer. Asi a grandes rasgos como te comentan mas abajo C# (VB.net parece ya nadie lo usa) es mas para aplicaciones windows y tal es muy robusto pero tambien se pueden hacer webs con asp.net si no me equivoco.
Luego tienes la "rama" de java que seria lo mismo pero software libre ("gratis"). Aunque hoy dia MS te deja gratis visual studio community y vs code permite programar en lo que te de la gana casi.

El que mucho abarca, poco aprieta y lo suyo es especializarse en algo.
#1 El mayor troleo que se ha producido en el mundo de la programación ha sido el JavaScript. La cantidad de horas perdidas y una generación entera de programadores que no saben otra cosa.
#77 Y que lo digas. Hace 20 años, en mi primer trabajo, estaba convencido de que esa basura no llegaría a nada. Y mira por donde va
#77 hombre, para programar front lo ves peor que python?
#1 en python puedes añadir tipado estático www.python.org/dev/peps/pep-0484/
Pero el problema real que tienes es de testing :roll:
#1 Type hints y Mypy te resuelven (máomenoh) ese problema.

Sigue sin tener la seguridad de un lenguaje compilado, pero al menos esos errores de los que hablas te los enseña Mypy. Por si quieres arreglarlos, claro, si no pues adelante :-P
Sabeis que otro lenguaje de programacion utliza los espacios/tabuladores para indicar bloques de codigo? Cobol! Ahi lo dejo, no te digo na, pero te lo digo todo.
#6 no te digo ná y te lo digo tó
#6 De lo cual se deduce que no te gusta que se usen los tabuladores como parte del lenguaje y nada más.
#6 Yo si te creo, hermano.
#7 JO DER ! xD
Esta no me la sabía. Pero que crimen es esto!? xD xD xD
#7 El principio de mínima sorpresa en Python no saben lo que es... pobrecitos.
#7 Pues la primera respuesta explica claramente que no es un error de diseño.
#57 Ese es el problema con muchas cosas de Python y C++, que tienen muchas decisiones de implementacion que claramente no obedecen a un "todo estructurado" sino a "mira, vamos a hacer esto en esta situacion" por ilogico que resulte.

Eso es deuda tecnica casi por definición y en cuanto tiras codigo como todos los programadores no sepan el funcionamiento exacto de todas las cosas raras... el proyecto está jodido.

Obviamente tambien puede pasar con cualquier otro lenguaje, pero los interpretes y compiladores creativos se dan más en lenguajes debilmente tipados que fuertemente tipados.
#7 Python es un lenguaje facilísimo de aprender, pero al principio me quedé loco con eso de que las listas y diccionarios se pasaran siempre como referencias. Me costó muchos bugs darme cuanta que a veces tenía que hacer .copy() o .deepcopy() para muchas cosas que en otros lenguajes solucionaba con un simple x=y. Luego lo pensé como si estuviera programando en C y solo se pudiera pasar por parámetro los punteros a las estructuras y, oye, sencillísimo.

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.
#58 facilísimo.... Facilísimo.... Como que tampoco.

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.
#92 Facilísimo comparado con el resto, obviamente :roll:
No lo puedes comparar con el lenguaje natural, PERO estoy seguro de una cosa: para un alumno normal que llega a la universidad con un nivel aunque sea básico de inglés, le resultará más fácil aprender Python que Alemán o Griego. Sin duda.
#58 >ero al principio me quedé loco con eso de que las listas y diccionarios se pasaran siempre como referencias.

En Go pasa lo mismo con las listas.
#58: C tampoco es tan difícil si se enseña bien.
Yo lo he intentado. No lo soporto. Vengo de escuela antigua de programación y lo de tabular para indicar bloques...me saca de mis casillas (aunque yo lo hago cuando programo, pero las {} o begin,end no me los toques).
#9 Para los más tradicionales tienes cosas como el IF/THEN/ELSE/ENDIF
#9 Yo tambien vengo de la old school y lo que peor llevo es que no haya CLS en el IDE
:-D
La anidación le da estructura, visualmente me gusta ya que puedes ver las funciones claramente
#9 Para mí sólo tiene sentido si es tu primer lenguaje de programación y no tienes muy claro muchos conceptos básicos. Pero es que usar bloques de código (se parados con llaves, corchetes, paréntesis o begin-end, if-fi) es algo realmente muy básico de aprender que incluyen la inmensa mayoría de los demás lenguajes de programación que son relevantes: c, c++, c#, php, shell script, java, javascript, basic, pascal, go, dash, rust, lisp, perl, lua, .... para mí tiene más inconvenientes que ventajas y es de lo que más me echa para atrás del lenguaje... aparte de que no me aporta mucho para mis necesidades, la verdad.
#26 no me aporta mucho para mis necesidades

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)
#60 R y python no son tan parecidos, scala se parece mas a R. Y eso de que para hacer IA hay que usar python es más hipster que la leche. Sencillamente no es cierto.

Pero oye... que está de moda, asi que a facturar, yo encantado.
#9 Cuál es la desventaja? Si usas VS Code o similares te dibuja los bloques, es como que se crean automáticamente.
A cualquiera que trabaje en una oficina y su especialización/trabajo no tenga nada que ver con programar, os recomiendo aprenderlo de todas formas. Todas esas tareas que puede hacer un mono que tengais que hacer dia a dia repetitivamente, pueden ser programadas facilmente en Python y se aprende muy rapido. En vez de perder 2h todos los dias en esas tareas, invertid unas 10h en aprender lo basico de Python y otras 5h en programar un script que haga esas tareas, y echaos a dormir.

Si usais mucho Excel probad aprender algo de VBA para Excel si no, que es casi igual de facil.
#39 Yo tampoco tenía idea de programar y aproveché la pandemia para iniciarme, precisamente con Python. ;)

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.
#50 Iré mirando y a ver qué tal se me da. Pero empezaré con una introducción a la programación. Más que nada, para tener conceptos claros. Gracias #40 #41 #43 #50 (los que vengan después, si vienen).
#23 VBA es hateful a matar. Pero sí, si trabajas con Excel es una buena manera.
#47 Completamente de acuerdo, odio VBA pero muchas veces es la manera mas facil y directa de trabajar con archivos Excel.
#23 vba es seguramente el lenguaje más utilizado del mundo.

Pero le falta pedigrí
#23 Mi consejo es que si vais a hacer tareas cotidianas, useis un lenguaje fuertemente tipado
#36 El BASIC del ZX Spectrum no era estructurado, con lo que creo yo que no había forma alguna de programar nada mediano o grande sin usar el GOTO y el GOSUB obligatoriamente.
Python es como el esperanto. Es atractivo para empezar y es muy fácil cogerle el truco. Pero cuando empiezas a indagar, a coger experiencia y a intentar hacer virguerías, te das cuenta que ofrece una complejidad inconmensurable.

Lo cual no es malo, claro.
#10 es que no es un lenguaje para realizar virguerías, sino para hacer unas tareas de forma rápida. Por ejemplo, análisis de datos.
#13 Con virguerías me refiero a concentrar en muy pocas líneas lo que en otros lenguajes llevaría muchas.
#13 Yo para eso uso R, aunque eso es otra M que viene de S.
#15 R también uso yo. Ambos son buenos para la estadística y análisis de datos.
#10 No es malo, o es un horror. Intenta mantener ese código condensado. Al mes ni tu mismo entiendes bien que significa.
#27 Si, ese es uno de los grandes problemas, en mi equipo lo llamamos "hipsterisco programático"... y es pecado mortal para proyectos con un codebase grande
Yo comencé a programar en un ZX spectrum con Basic cuando tenía 8 años. Que tiempos aquellos del GoTo :foreveralone:
#25 una de las primeras cosas que recuerdo cuando aprendía, explicarte lo que es un goto y seguidamente decirte que nunca nunca nunca lo uses.
#36 hay lenguajes que no pueden programarse sin GOTO, como el BASIC del Spectrum o el ensamblador. En C también en principio se dice que no hay que usarlo, pero es la manera más práctica e idomática de hacer cleanups en funciones.

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.
#36 El goto tiene muy mala fama debido a los goto golfos que hacen cosas guarras. Pero los goto usados cuando toca pueden ser la solución más limpia imaginable.
#25 yo a los 9 con Amstrad CPC 464.. que tiempos!!
GOTO 1988
A mí me gusta Python, para hacer scripts y programas pequeños. Los programas muy grandes en Python ya no me gustan tanto.
#52 Que es para ti un programa pequeño? Yo he hecho algunas cosillas medianas, de más de 1000 líneas de código y una biblioteca personalizada de más de 2000 líneas en total. La biblioteca es un solo módulo.

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.
#59 1000 LOC de Python es un programa pequeño. Tengo por aquí un proyecto sobre 50,000 LOC de Python y unos 500 ficheros .py. Eso es un programa grande.
#66 Ok :-D. Pues yo básicamente he hecho cosas pequeñas, y sí me es muy útil.

Si me dejan tiempo quiero pasarlo todo a web y eso sí que será más grande. :-D Calculo que es posible que llegue a los 50.000 LOC, pero no tiene porque sería microservicios independientes.
#66 hombre, si lo tienes estructurados en clases, con nombres intuitivos y la jerarquia de tipos es lógica y manejable supongo que sera mantenible... a pesar de que por el hecho de ser debilmente tipado mirando a un solo metodo siempre tendras la duda de que coño de tipo tengo aqui.
Los que se quejan de identación, ¿es porque no han usado yaml?
#38... hombre yo no compararia yaml como lenguaje declarativo y de configuracion con el codebase de un proyecto que tenga 50000 lineas estructurado en metodos, clases, paquetes logicos, fisicos... nu se rick
#50 Yo he enseñado Python a gente desde 0. Y lo he ido haciendo de manera estructurada y se entiende lo que son las listas y eso. Primero enseñas lo más básico y luego introduces listas, una vez que las entienden complicas la cosa con diccionarios. Luego de los diccionarios, metía POO.

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…   » ver todo el comentario
#54 yo es que empecé "a lo clásico", con Logo :troll:
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 :palm:
Que alegría ver comentarios como en el Menéame de aquellos tiempos.
Nunca terminó de gustarme Python. Primero prefería Perl, luego Ruby, y al final me quedé con JavaScript / Typescript.
No soy un loco de python pero python sin duda es un gran lenguaje
No tengo ni idea de programar. ¿Es relativamente fácil aprender Python? Pregunto a los iniciados/pros. Thanks.
#39 si tienes conceptos previos de tipos y estructuras de datos sí (listas, vectores, arrays, etz), si no tienes ni eso igual con Python empiezas con algo "un poco demasiado".
#40 Conceptos de listas, arrays te los encuentras en cualquier lenguaje. Yo creo que en Python es donde es más sencillo aprenderlos #39.
#43 explícale a alguien, qie parta de cero, la diferencia entre una lista y una tupla, por ejemplo, o que para hacer según qué en un dict a veces se hace con métodos (tipo oop) y ha veces con asignación directa... La verdad es que creo que eso lia, si se trata de aprender, que conste.
#39
#39 Sí, es el lenguaje (de verdad, no de etiquetas) más fácil de aprender. A la vez es un lenguaje que te va a dar unos fundamentos básicos sobre cómo se debe programar bien (bloques de código, estructuras, etc) y te ofrece un montón de librerías para que vayas al grano y no tengas que empezar desde el 0 más absoluto.

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…   » ver todo el comentario
#39 Es flexible para hacer muchas cosas rápido, pero creo que no es lo mejor para aprender porque pueden pasar cosas raras sin que aparezca un error. Mejor otros lenguajes más rígidos si lo que quieres es aprender programación en si.
#39 no, no la lies, empieza por un lenguaje fuertemente tipado... ni caso a los hipster de "python es lo más facil para empezar" que eso no es verdad. Luego asi te viene la gente que no tiene ni idea de la diferencia entre una variable o un tipo.
#39 Antes de que empieces con Python, échale un ojo a Ruby, que es parecido pero, simplemente, mucho mejor.
Me encanta Python y lo uso en mi trabajo de backend para un propósito muy específico: Automatizar tareas tanto en entornos Unix como Windows.
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 :-)
#31 Prueba Ruby
«12
comentarios cerrados

menéame