¿Python nos hace acostumbrarnos a la bueno?

Iniciado por Yidu, 3 Marzo 2019, 14:21 PM

0 Miembros y 1 Visitante están viendo este tema.

Yidu

Hola!

Cabe decir que esta duda o pregunta no es una critica a ningun lenguaje. Yo reconozco mi gusto por python. Cada cual tendra un lenguaje preferido.

Pero es algo curioso que muchos programadores que vienen de lenguajes mas "duros" como C++ les resulta sencillo (que por otra parte es logico) acostumbrarse a python. Se puede decir que tienen la ventaja, en el aprendizaje de python, a simplificar algo mas el codigo. Por lo tanto les puede ser sencillo dar ese paso.

Pero claro, cuando uno viene de python e intenta conocer C++ la cosa cambia. Uno se intenta motivar con las tipicas frases de que es un lenguaje (el C++) que se debe conocer, que es mas rapido, mas potente, mas...etc,etc...

Es facil la motivacion de C++ a python con un simple "Hola Mundo". Pero los que venimos de python ¿Como nos motivamos con el "Hola Mundo" de C++?

Casi todos los programadores tienen un lenguaje que usan mas que otros. O el tipico lenguaje de cabecera. Yo no escondo mi predileccion por python. Pero tenia curiosidad por conocer C++. El inconveniente es que lo resulta sencillo en python, en C++ lo veo muy rebuscado. Por no hablar de su sintaxis. Aunque entiendo que esto es algo subjetivo.

Supongo, que la mayoria de programadores que estan por aqui, conocen y programan en varios lenguajes. Me gustaria saber como se motivan a programar en otro lenguaje donde han de hacer 20 lineas de codigo donde con su lenguaje favorito necesitan un par.


EdePC

Saludos,

- A mí es lo contrario, como la sintáxis de Python no es como la mayoría de los Lenguajes de Programación, cuesta un poco más seguir su sintáxis.

- Una buena motivación para ver un Lenguaje es mediante un buen libro rápido, un video motivador, quizá un tutorial. El detalle está conocer más o menos la capacidad del lenguaje y ver en que es bastante bueno y en que no lo es tanto.

- Hay Lenguajes sólidos que son un todo en uno como es el viejo Visual Fox Pro (base de datos, presentación de impresión, programación, interfáz de usuario, etc), otros que necesitan ayuda de IDEs para desarrollar más cómodamente, los lenguajes scripting suelen servir para hacer cosas más rápido, pero su debilidad estaría en la interfáz de usuario.

Guarrino

Te dejo aquí esto: https://planetadiego.com/2017/01/22/nim-lenguaje-de-codigo-abierto-con-lo-mejor-de-python-go-y-rust/

Es algo nuevo, mira que código mas limpio!

Estoy aprendiendo con python y quizás es de lo mas fáciles desde mi punto de vista de newbie. Proyectos como estos quizás es lo que acabemos todos juntos!

Eleкtro

#3
Cita de: Yidu en  3 Marzo 2019, 14:21 PM
Supongo, que la mayoria de programadores que estan por aqui, conocen y programan en varios lenguajes. Me gustaria saber como se motivan a programar en otro lenguaje donde han de hacer 20 lineas de codigo donde con su lenguaje favorito necesitan un par.

A menos que seas un fanático en busca de nuevas experiencias de aprendizaje, entonces por lo general la motivación surje de la necesidad, la necesidad de realizar un trabajo en un lenguaje específico por que así lo demanda el cliente, por poner un ejemplo, o la necesidad de desarrollar una aplicación bajo una tecnología que requiere el uso de varios lenguajes de programación al mismo tiempo.

Si el único incentivo fuese la motivación por experimetar múltiples lenguajes de programación por hobbie, entonces obviamente más tarde o más temprano uno se decantará por un lenguaje para el uso cotidiano al que llamar Favorito o Principal, como tú has hecho con Python por su elevado nivel de abstracción de código en comparación con C/C++ u otros.

No se que estarás preguntando realmente, por que las respuestas ya las sabes...

Citar¿Python nos hace acostumbrarnos a la bueno?

¿Y que entiendes tu por "lo bueno"?, ¿buenos hábitos de programación?. En lenguajes de programación orientado a objetos como Python y que permiten aplicar otros varios paradigmas de programación, la práctica de buenos hábitos depende más de ti, que de las reglas sintácticas y semánticas establecidas en el propio lenguaje. Pero desde luego si hay algo que Python no hace nada bien, es la "ley de indentación obligatoria por que me sale de los cojones", creo que dentro de Python no hay regla más tediosa e improductiva en términos de tiempo de desarrollo... a menos que uses una IDE que lo haga por ti sin que debas hacer esfuerzo alguno para indentar cuando se te obligue a hacerlo, claro está.

Un saludo.








tincopasan

Citarla práctica de buenos hábitos depende más de ti, que de las reglas sintácticas y semánticas establecidas en el propio lenguaje.
comparto totalmente con Eleкtro, o sea no es el lenguaje, es cada uno el que hace bien(legible es lo primordial) cada lenguaje.
Ahora en cuanto a la indentación, puede molestar, pero cada lenguaje tiene cosas molestas, en lo personal me molestan los corchetes{} y los punto y coma; esos si que están muy al vicio, no aportan nada y si interrumpen la ejecución de los programas. todos los lenguajes tienen algo bueno y algo malo, cada programador lo hace bueno o malo (dentro del canon que cada uno entienda), defender un lenguaje como lo único es totalmente de mentes cerradas. me gusta compararlo con el baile, cada ritmo es distinto eso no lo hace ni el mejor ni el peor, sin embargo hay bailarines que cuando los ves crees que el ritmo es lo más, siendo el bailarín el que lo expresa como lo mejor.
Saludos

Yidu

Cita de: Eleкtro en  3 Marzo 2019, 20:01 PM

¿Y que entiendes tu por "lo bueno"?, ¿buenos hábitos de programación?. En lenguajes de programación orientado a objetos como Python y que permiten aplicar otros varios paradigmas de programación, la práctica de buenos hábitos depende más de ti, que de las reglas sintácticas y semánticas establecidas en el propio lenguaje. Pero desde luego si hay algo que Python no hace nada bien, es la "ley de indentación obligatoria por que me sale de los cojones", creo que dentro de Python no hay regla más tediosa e improductiva en términos de tiempo de desarrollo... a menos que uses una IDE que lo haga por ti sin que debas hacer esfuerzo alguno para indentar cuando se te obligue a hacerlo, claro está.

Un saludo.

Por lo bueno, me refiero, que con un simple print en python se imprime un "Hola mundo". Y utilizando C++ se necesitan mas lineas. Como comentas, productivamente, puede ser peor C++ en esta cuestion. Tampoco trato de hacer un debate esteril comparando lenguajes.
La duda venia sobre este aspecto en concreto. Si mas facil adaptarse a un nuevo lenguaje donde se necesitan menos lineas de codigo que al reves.

Como siempre ha tenido esa fama de lenguaje terrorifico y complicado el lenguaje C++, ahora que he utilizado python, tenia curiosidad por conocer este otro lenguaje.

Comentas que la identacion es aberrante en python. En cambio a mi me gusta. Supongo que la mayoria de por aqui usa editores para crear codigo. Es decir, no usa el bloc de notas de windows. Por lo tanto, con solo apretar la tecla <enter> del teclado las lineas se identan solas. No encuentro que eso sea improductivo.

En cambio, a mi no me gusta nada como queda el codigo de C++. Pero eso debe ser por haberme acostumbrado a python.
Esta claro que podria haber escogido conocer otro lenguaje. Pero el reto esta ahi. La fama que tiene C++ con los punteros, la gestion de memoria y cosas de esas.

Todos sabemos que python, muchas veces, te da las cosas casi hechas. Y no es raro ver a gente que dice que domina un lenguaje o varios, y en cambio, no sabe hacer algoritmos de ordenacion, ni estructuras de arboles o grafos. Porque claro, si solo nos limitamos a conocer las estructuras simples es muy facil decir que uno domina mil lenguajes.

Pero bueno, ya comento que aqui no trato de decir que lenguaje es mejor o peor. Cada cual tiene sus gustos o manias.

MCKSys Argentina

En mi caso, mi motivación para aprender otros leguajes es simple: trabajo.

Por supuesto, no aprendo todo acerca del lenguaje, sinó lo necesrio para realizar mi tarea.

Aparte, hoy día, hay muchas herramientas, información e IDEs que te ayudan a aprender (al menos la sintaxis) de un lenguaje rápidamente.

Desde que aprendí Python lo uso mucho, aunque, al ser interpretado, es lento para algunas cosas. En esos casos, salto bruscamente a ASM (incluso mi amado VB6).

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Yidu

Cita de: tincopasan en  3 Marzo 2019, 20:48 PM

Ahora en cuanto a la indentación, puede molestar, pero cada lenguaje tiene cosas molestas, en lo personal me molestan los corchetes{} y los punto y coma; esos si que están muy al vicio, no aportan nada y si interrumpen la ejecución de los programas. todos los lenguajes tienen algo bueno y algo malo, cada programador lo hace bueno o malo (dentro del canon que cada uno entienda), defender un lenguaje como lo único es totalmente de mentes cerradas.

Yo tambien comparto ese punto de visto. A esto iba la pregunta del post. No se trata de decir que lenguaje es mejor o peor. Como bien dices, en python se eliminan muchas cosas superfluas de otros lenguajes. Y claro, al crear algunas lineas en C++ despues de usar python uno piensa: ¡Que toston de puntos, comas y corchetes!

Yidu

Cita de: MCKSys Argentina en  3 Marzo 2019, 21:05 PM
En mi caso, mi motivación para aprender otros leguajes es simple: trabajo.

Por supuesto, no aprendo todo acerca del lenguaje, sinó lo necesrio para realizar mi tarea.



Ahi esta el quid de la cuestion. No creo que haya mucha gente que de todos los lenguajes que dice conocer sea de forma profunda. Que por otra parte es logico.

Como comente, todo el mundo tiene un lenguaje favorito. En mi caso python. Y claro, al preguntarme que otro lenguaje queria conocer me decante por C++ por las razones expuestas. No me interesa ningun nuevo lenguaje de moda o que son mas de lo mismo.

Eleкtro

#9
Cita de: Yidu en  3 Marzo 2019, 21:05 PM
Comentas que la identacion es aberrante en python. En cambio a mi me gusta.

La indentación no me parece aberrante ni improductiva, de hecho es evidente que resulta elegante y practicamente necesaria para aumentar la legibilidad de un código complejo. Lo aberrante es la regla que te obliga a indentar sí o sí... la diferencia está entre hacer que algo sea opcional, u obligatorio.

Por cierto, y para que no se me malinterprete, lo que dije en ese comentario y lo que he dicho ahora es una opinión personal.

Cita de: Yidu en  3 Marzo 2019, 21:05 PMSupongo que la mayoria de por aqui usa editores para crear codigo. Es decir, no usa el bloc de notas de windows. Por lo tanto, con solo apretar la tecla <enter> del teclado las lineas se identan solas. No encuentro que eso sea improductivo.

Precisamente, la necesidad de tener que depender de una IDE con auto-formato de indentación para minimizar o eliminar los efectos negativos causados por esta regla de indentación hacia el tiempo de productividad del programador, no justifica de ninguna de las maneras la existencia de dicha regla. La regla sigue ahí, la obligación sigue estando presente, solo que puede ser en parte ignorada en el sentido de darle menor o nula importancia a dicha regla mientras se utilice una IDE que indente por ti y así no te haga perder el tiempo en indentar manualmente cuando sea necesario.

Pero el caso es que hay muchos programadores que poseen los conocimientos suficientes de Python como para no necesitar depender de una IDE para desarrollar scripts muy simples, ¿y que pasa si yo deseo coger el notepad y ponerme a escribir un script de digamos 30 o 40 lineas y lo quiero hacer lo más rápido posible simplemente para testear el resultado de ejecución del script?, ¿y si precisamente no deseo hacer uso de la indentación por que es un simple script de prueba y por eso quiero ignorar la idnentación para aumentar al máximo posible mi productividad ya que además pretendo hacerle cambios a cada rato a ese código hasta obtener el resultado esperado?, en ese caso simplemente me será imposible ser productivo, ya que estaré obligado a invertir varios segundos de más primero en observar y estar pendiente de que lineas necesitan indentación, y segundo en realizar los movimientos de muñeca necesarios para llevar a cabo la indentación, y todo eso solo por que así lo demanda el lenguaje... y al final esos segundos de más se traducirán en minutos u horas dependiendo de la complejidad del script, y eso es lo que me parece aberrante. Si deseo ser productivo, el lenguaje me obliga a usar una IDE que indente por mi para ahorrarme ese tiempo. Pero en fin, como ya he comentado esto es solo mi opinión personal.

Cita de: Yidu en  3 Marzo 2019, 21:05 PM
En cambio, a mi no me gusta nada como queda el codigo de C++.

¿Cuando se ha convertido esto en un debate de favoritismos?. ¿Ha sido mi culpa?, lo pregunto en serio. Solo pretendia dar mi opinión sobre lo que considero que Python hace mal (siempre bajo mi opinión personal como usuario, no soy ninguna autoridad de la verdad) como "mal hábito de programación" o mal hábito o fallo de diseño; esto respondiendo a tu pregunta, por que tu has preguntado sobre Python, pero yo no pretendía llegar a este tipo de discusión.

De todas formas a mi tampoco me gustan los lenguajes con sintaxis c-like, con ese tipo de símbolitos varios diseñados por académicos matemáticos que solo saben hacer las cosas más complicadas de lo realmente necesario, como los malditos corchetes o los operadores con signos de exclamación, son cosas que odio debido a la lejania de las teclas en la disposición del teclado lo que me hace consumir un tiempo adicional a la hora realizar las pulsaciones del teclado en comparación con la sintaxis de otros lenguajes, incluyendo lenguajes como VB.NET, que a pesar de estar "humanizados" y por ende requerir en muchos casos la inserción de mayor cantidad de caracteres (ya que son palabras en lugar de símbolos), sigo tardando mucho menos en esciribir así un codigo al completo ya que me resulta más cómodo que si lo hiciera en un lenguaje c-like.

De nuevo decir que esto es mi opinión personal, logicamente hay a quien le gusta esa sintaxis y a quien no, y aún así no en pocas ocasiones me veo forzado a programar en C#, tanto para ofrecer ayuda en el foro como para otros menesteres. De C/C++ paso olímpicamente, no me aportan nada, y al final la motivación personal consiste en eso... de elegir o descartar a un lenguaje según lo que este te ofrezca para lograr tus objetivos personales o profesionales.

Saludos