Hace 5 años | Por --525300-- a genbeta.com
Publicado hace 5 años por --525300-- a genbeta.com

A mediados de 2018, Guido van Rossum, el creador de Python y también conocido entre la comunidad como el "Dictador Benevolente de por Vida" del desarrollo del lenguaje, decidió que abandonaba el barco y se tomaría unas vacaciones permanentes tras 30 años al mando. Sus razones: estaba cansado del odio y de tener que pelear por propuestas para mejorar Python.

Comentarios

D

#8 Igual que hay un directorio de emojis, Menéame debería incluir un directorio de frases hechas y refranes:

"El camino al infierno está empedrado de buenas intenciones"

D

#13 Si haces un paste de algun codigo en un sitio
Yo programo en muchos lenguajes

Ya... roll

dinky

#26 puedes definir variables en serio, hay un módulo estándar llamado ctypes otro llamado array, pero la comprobación estática de tipos, en python, es opcional

lo que no podéis hacer todos es juzgar lo que no conocéis

D

#29 qué pasa

Pues que has sustituido la referencia de a al objeto 4 de tipo "int" por una referencia al objeto a de tipo "str".

Además de demostrar que no tienes ni idea de´la diferencia entre "débilmente tipado" y "dinámicamente tipado", por supuesto.

En términos que hasta alguien más empeñado en diatribas barriobajeras que en aprender algo podría entender: en Python las variables no son cajas, son etiquetas.

p

#56 Ya he sido profesor (programación Android) y acabaron muy contentos los alumnos. También fui muchos años monitor de tiempo libre en diferentes ámbitos y nunca tuve un problema para "ganarme" a la gente. De hecho una de las características que más pesan a la hora de que te valoren los demás es precisamente el no dejarse amilanar (que no es lo mismo que abusar).

Sucede que en forma presencial la gente no se atreve a trollear o a abrir tanto la boca sin saber.

Cuando alguien hace una afirmación de ese tipo desde la ignorancia y con la intención de creerse superior y provocando, hay que ponerle en su sitio. No por el propio sujeto, que por mí puede comer una ensalada de cuchillas de afeitar o criar champiñones, es por no extender mitos sobre la materia repetidos hasta la saciedad una y otra vez y que como ofrecen razomaientos fáciles pueden contagiar a gente que tiene menos experiencia.

Y este es un troll conocido.

D

#83 Si no le ves ventajas al tipado estático, es porque no has escrito ningún programa lo suficientemente grande o crítico. Python está muy bien para cosas pequeñas, pero no para un programa de cientos de miles de líneas de código. No sabe que datos acepta y que devuelve cada función, o que te pete el programa en algún punto aleatorio porque no has escrito bien el nombre de una variable no es nada divertido.

Y sí, Java es un horror, en eso estamos los dos de acuerdo, yo lo estoy sufriendo ahora. Pero el mundo del tipado estático es infinitamente más amplio que Java.

deverdad

#11 Un buen programador es vago por definición: la cosa está en programar la maquina para que hace el trabajo por ti.

Endor_Fino

Vamos a ver cómo de bien lo hacen los que le criticaban.

Ya he visto muchas veces quitar al "malvado dictador" para instaurar una democracia y que la cosa no funcione ni un poco. La mayoría de las veces nadie se atreve a reconocer que el dictador realmente no lo era, y que la ausencia de orden posterior es el principio del fin. Lo he visto en foros, en comunidades virtuales y en mogollón de proyectos.

El infierno está cargado de buenas intenciones ... / #5

D

#5 En realidad acabó con uno, con Python 2.7 concretamente

Un año (aún) le queda a ese pobre desgraciado que, tras una larga vida y una impecable hoja de servicios, ha tenido sufrir una lenta agonía a manos de una jauría armada con discos flexibles y atrincherada tras oxidados mainframes que, habiendo olvidado lo poco que alguna vez supieron sobre programación, se empecinaron en rechazar los modestos cambios que, como implica el cambio de major, recibió hace ya nueve años.

a

#57 Bajo mi punto de vista tienes parte de razón pero creo que se te nota que la POO no es del todo lo tuyo. Yo pensaba como tú al principio pero cuando se te mete la POO en la cabeza ya no hay manera de escribir código sin ella. Es cierto que cuesta. A mí me costó pero te ahorra chorrecientos IF porque no hay que comprobar ni chequear constantamente ya que está implícito en la estrucutra que has hecho.

Te pongo un ejemplo ... tienes que hacer un IF para ver que se cumple una condición y "disparar" algo ... un proceso, una función, un callback ... lo que sea. Si eso mismo lo haces con POO y un patrón de observadores, ese proceso se disparará solo, sin que tengas nada que comprobar. La condición va implícita en el diseño.

Mola la POO. MUCHO

D

#c-95" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3059149/order/95">#95 Empecemos por el final

Y gracias por el comentario de las interfaces. Así es ... un parche porque no admite herencia múltiple. Y yo me pregunto si es un parche porque sí o es un parche porque precisamente el ser tan fuertemente tipado hace muy difícil que el compilador pueda con esa herencia múltiple.

https://en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem

El problema de la herencia múltiple es que da lugar a ambigüedades en el caso de que dos o más clases padre definan métodos con el mismo nombre, o que dos o más clases padre hereden de la misma clase abuela. Python lo resuelve aplicando la herencia secuencialmente, en el orden en el que las clases están escritas en el código. C++ utiliza un modelo más complejo pero flexible. En general es un problema bastante difícil de resolver.

Los creadores de Java y de C# decidieron no permitir herencia múltiple, y al final han acabado metiendo interfaces con métodos con implementación por defecto, lo cual es una puta ñapa terrible.

A ver. Reconozco que tengo cierta querencia por Python ya que es el primer POO que aprendí. Y reconzco que Java y C# tienen su cosa. Por ejemplo .. gracias a Java me hice mucho más "fuerte" en la POO ya que Java es la única opción que te deja. Y eso me ayudó a ser mejor y a cambiar mi manera de pensar como programador.

Yo aprendí Python allá por el 2005, porque todo el mundo decía que es un lenguaje maravilloso, y es cierto que se aprende en seguida y que puedes hacer mucho con poco esfuerzo, pero cuando el programa crece se vuelve inmanejable. Java tiene muchas otras malas decisiones, como la carencia de tipos enteros sin signo, la diferencia entre objetos y tipos primitivos, la carencia de tipos por valor, etc. Y luego el puto ecosistema, que está horriblemente inflado y para hacer cualquier tontería tienes que instanciar 20 clases wall

Lo que yo digo es que el que sea fuertemente tipado o no lo sea, no lo hace mejor o peor. JavaScript es una caca ... pero me gusta lo que se puede hacer con él. TypeScript es básicamente lo mismo pero en "bonito" y con mucha mejor estructura y, sinceramente, creo que la diferencia entre JavaScript y TypeScript es, básicamente, que ves de una manera más sencilla la estructura de los datos y de las clases. Nada más. Hacen casi lo mismo y se ejecutan más o menos en el mismo tipo de entornos.

Una cosa es dinámico/estático, y otra fuerte/débil Lo primero tiene una definición clara, lo segundo no, aunque se suele usar como sinómino de conversión automática de tipos. JavaScript es dinámico y débil, Python es dinámico y fuerte. En general, casi cualquier programador sensato considera el tipado débil como un gran error.

Lo de TypeScript, ¿te parece poco? En mi experiencia cuando programas pasas un 10% del tiempo escribiendo código, y un 90% leyendo. Cualquier cosa que ayude a hacer el código más comprensible es buena.

Luego te encuentras con mierdas como el JQuery que para mi gusto es insoportable. Tiene una sintaxis de locos y hace que cualquier chorrada sea una mierda difícilmente legible.

Yo jQuery lo he usado poco, para hacer cuatro animaciones sencillitas y algún formulario dinámico, y para según que cosas te facilita mucho la vida. Para cosas complejas puede ser bastante loco, pero la verdad es que el desarrollo web en general me parece una puta locura

chemari

#13 #6 alt? Sois conscientes de que los creadores de Python (entre otros lenguajes) no usan teclado español no?

D

#13 te pones un autopep8 en tu ide favorito y te ahorras la aspirina.

P

#13 trabaja con un ide decente y te olvidarás de esos problemas

D

#_36 su libro de cabecera

D

#c-88" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3059149/order/88">#88 A ver, vayamos por partes. Las interfaces de Java son una ñapa que se sacaron por no querer implementar herencia múltiple. C++ no necesita interfaces, y es estático. JavaScript es dinámico, y hasta hace poco su modelo de objetos era infumable.

Y precisamente cuando tienes que manejar estructuras de datos complejas es cuando mas útil resulta el tipado estático. Yo en lenguajes como C++ o C# he definido estructuras muy complicadas con mil templates que en Python serían imposibles de manejar. En un lenguaje estático el compilador te ayuda a verificar que haces un uso correcto de los tipos y de las variables, en uno dinámico tienes que escribir mil tests. ¿Por qué tengo que perder el tiempo verificando yo algo que el compilador puede hacer por mí?

Te lo vuelvo a decir, ni C# tiene porqué ser ningún horror, ni Python es esa maravilla que dices. He visto código en C# muy legible, y código en Python que te hacía querer arrancarte los ojos.

Y en serio, mira más allá de estos lenguajes. Mira lenguajes como Haskell, Rust, la familia ML, Scala, Kotlin, TypeScript, etc. como ejemplo de lenguajes estáticos modernos.

D

#87 #77 Comparto mucho vuestras opiniones, al final se trata de alternativas diferentes con sus pros y sus contras. En general creo que los informáticos valoran poco su formación teórica y muchos programan por improvisación. Respecto al uso de patrones, me parece que tiene el problema que a veces el código que te queda es totalmente irreconocible a menos que conozcas muy a fondo cual es toda la estructura.

También imagina que quieres tocar un código con el que no eres familiar, con el que quieres hacer algo simple, o que tienes que añadir alguna funcionalidad nueva (que quizás ya no sea tan simple). A veces tener diseños muy elaborados se convierte en un obstáculo en el que la lógica de lo que quieres hacer no es evidente porque está oculta en el diseño informático.

D

#23 Un lenguaje de programación que no es fuertemente tipado no puede considerarse en serio.

Endor_Fino

#7 Pues eso me cuadra bastante más. Curiosamente a la gente sencilla con frecuencia se la tilda de dictadora por no responder a las provocaciones y pasar del tema. El no querer perder el tiempo en cruces de insultos estériles suele ser confundido con un "hace lo que le da la gana".

Han derrocado más personas válidas los ofendiditos que hacen bandera de cualquier gilipollez que cualquier otra cosa.

D

#4 Python es el lenguaje que utilizan aquellos niños vagos que no saben ni quieren programar correctamente.

Nathaniel.Maris

#18@admin tomad nota de esta propuesta, que me parece cojonuda. Si añadimos un buscador de wikiquote que enlace las frases con sus autores reales lo bordamos.

D

#11 Pues está ya entre los más usados del mundo y subiendo. Quizá lo esté usando alguien más....

p

#28 Sigues negando la mayor, ¿has leído lo que puse? No sabes ni de lo que estoy hablando, dudo que quepa en tu cabeza. Pero bueno, ser ignorante es libre.

Decir que C tiene tipado fuerte cuando un byte es lo mismo que un char y un puntero puedes cambiarlo por un int y otras muchas promiscuidades y puedes mezclarlo todo como te dé la real gana es de risa. Tiene un tipado tan fuerte que no paran de salir vulnerabilidades cada poco precisamente por ello.

Pero cuando la neurona no da para más, la única deducción posible que os queda mientras os babáis encima es que si ves los tipos es tipado fuerte y si no los ves no.

Si vas a contestar, intenta no cagarte encima por el esfuerzo.

D

#6 no, alt graph y llave, las dos teclas están pegadas, busca otra escusa.
#4 #3 Lo que si es un crimen es la confusión espacios, tabs, y mierdas, que encima no se ven.
Si haces un paste de algun codigo en un sitio jodido, preparate a sufrir, para encontrar al puto tab (o espacio) de más.
Típico ejemplo de poner algo cool que nadie pedía, con resultado desastroso.
Yo programo en muchos lenguajes, y cuando me toca python me entran los picores solo de preparar el entorno, sorry.

M

#74 Esto mismo es lo que me encanta de Ruby. Cuando abres una clase, te está contando la lógica de negocio como si fuera un manual. Nada más.

Toda la lógica de infraestructura está escondida y se expresa en forma de DSL.

e

Yo he programado en basic, c, c++, pro*c, pascal, shell, sql, pl/sql y derivados y ahora estoy con java. He visto de refilon visualBasic, asp, php, javascript y ultimamente he mirado algo de python. aunque tengo 20 de experiencia, yo soy como vosotros, soy muy mal programador, de esos que buscan el google y miran e SOvf. Realmente despues de ver muchos programas, la verdad es la esencia es la misma, lo que importa es el algoritmo, lo demas es estructura y sintaxis.
Con c podias tener 1000 errores en 100 lineas de codigo que compilan. Es un lenguge que si te apetece abres llavas y te programas una rutina en ensamblador. Un buen programador en c es para un semi Dios y un programa bien hecho en c le da mil patadas a cualquiera. Las cosas serias se programan en c, kernel, motores3d, etc.. Ahora bien, subiendo un nivel estan todos los demas, realmente cada lenguage tienen sus cosas buenas y sus cosas malas, y estan orientados a cierto tipo de problemas.
Lo que si he visto ultimamente es la aparicion de chorrocientos frameworks varios...Eso si me pone de los nervisos.
Aprender y debugar programas es un infierno, en mi caso lo digo especialmente por java. La gente la llama magia, yo la magia negra. Codigo que se ejecuta automaticamente sin yo haberlo llamado, 100Mb de codigo para poner "Hola mundo", metodos que si les cambias el nombre no funciona, eso si me pone frito.
Python me lo recomnedaron porque aparentemete no tenia las historias de java, pero el tema de identado si me parecio peligroso.

m

Con que consigan que un hola mundo de hoy funcione dentro de 10 años ya lo habrán hecho mejor que él.

m

#77: Si, pero imagina que empiezas un proyecto experimento donde no sabes:
- Qué vas a poder hacer y qué no.
- Cómo lo vas a programar.
- Dónde vas a acabar si te lías a añadir cosas.
- Casi ni siquiera qué uso va a tener.

Ya digo que es lo que tiene la programación "casual", que se te ocurre una idea, y primero pruebas a ver qué sale, y luego si funciona lo implementas un poquito mejor y intentas añadir algo, si funciona añades más cosas... así hasta que o bien llegas a una barrera infranqueable (para mi) o bien crees que la idea está lo suficientemente trillada y no da más de si, y como mucho lo decoras, lo traduces al inglés o lo subes a una página web para que la gente lo use, subes el código a Github con algunos comentarios y tratando de explicar lo que haces como buenamente puedes, y finalmente te desentiendes.

Luego miras el código... y vale, será una birria, pero si no se hubiera hecho así, no habría nada.

A veces pasa que tienes la idea, intentas desarrollarla... y no da más de si desde el primer momento, y lo deshechas.

m

#89: tiene estructura nada más empezar.

Es que a veces uno ni siquiera sabe qué va a hacer 30 líneas de código después. Solo tienes un fichero en formato propietario con una imagen incrustada dentro, y la quieres sacar a un "canvas" o a lo que sea mediante JavaScript y una página web. Pues bien, primero empiezas mirando si eres capaz de leer un determinado byte del fichero. ¿Eres capaz de leerlo? Guay. Luego miras a ver si puedes poner un puntito rojo en un "canvas" (lienzo), y pruebas a poner un pixel rojo, y ahí empiezan los problemas, que por el motivo que sea, el "canvas" no hace ni caso, miras códigos, haces cambios a ver si suena la flauta... hasta que al final consigues poner un punto rojo, y entonces ya es cuando te pones a enlazar una cosa y la otra poco a poco hasta que consigues lo que intentabas al principio.

Y luego si todo va bien, lo mismo intentas añadir alguna funcionalidad nueva, algún botón para hacer algo que se te ocurra...

Pero primero tienes que conseguir eso, ser capaz de leer el fichero y de conseguir colocar ese contenido en un lienzo. Para mucha gente es algo obvio, pero para mi, que he estudiado una carrera con una única asignatura de programación... no.

D

#11 Vamos, que la corrección está en el lenguaje, no en el código...

Python es escueto, pero no tanto como tu lenguaje, capaz de demostrar que alguien no sabe programar correctamente en una sola línea roll

M

#13 No me compares levantar un entorno python que se hace en 2 patadas.
Con jaleos de Java (tanto el de cárnica como el de Android) o peor el invento ahora de nodejs que hasta ellos mismos lo reconocen con cosas como los boiler plates o los cli o los --init para empezar a hacer un hola mundo.

a

#94 Para mucha gente es algo obvio, pero para mi, que he estudiado una carrera con una única asignatura de programación... no.

Nada es obvio y haber estudiado una carrera dedicada a la programación o haber aprendido por tu cuenta requiere (hoy en día gracias a Internet) prácticamente el mismo esfuerzo. Ese esfuerzo lo puedes hacer en tus ratos libres o de 8 a 2 en la facultad. Pero costar a todos nos ha costado.

En cuanto a lo otro que dices es que yo creo de verdad que "no has llegado". Sin ningún ánimo de ofender y sin ir de sobrado. Yo puedo hacer 3 pruebas o 23 para ver cómo coño pongo ese puntito en el canvas pero en cuanto lo he puesto, esas pruebas no son EL CÓDIGO, sino que pasan a formar parte del código. Que es muy distinto. En cuanto resuelvo el problema, le meto estructura a todo y luego lo dejo crecer.

Prueba la próxima vez y verás que aunque cuesta esfuerzo, cuando lo has hecho dices .... coño, qué bonito!! Porque no se trata (para mí) sólo de lo que haces ... sino de cómo lo haces. Y el código a veces lo sientes como si fuera poesía ... lo ves hermoso y no puedes parar de mirarlo una y otra vez. No sé .... tal vez esté exagerando bastante pero yo me siento mejor cuando he escrito algo bueno. No solamente cuando he resuelto un problema (que también me hace sentir bien).

freeCode

#134 pues de tu lista, golang no lo he usado todavía, y a perl no llegué a cogerle el gusto. Pero con el resto sí me he llegado a sentir muy cómodo.

Pero Python está en mi top. Me pareció muy intuitivo desde el principio, y eso se agradece. Lo he usado sobre todo para hacer servicios y demonios, y un poco de escritorio con pyqt hace tiempo.

systembd

#2 Síii... Deja que el odio crezca en tu interior. Fuerza a todos a destrozar sus manos con absurdos comandos Alt+teclaAlejadaYCercaDelEnter. Siente el poder del mal, deja que entre en tí... la cedilla. Muhahahaha....

jazzman

#5 Yo no sé tú, pero python2 hace mucho que no lo toco ya.

D

#26 ¿Has mirado Nim? https://nim-lang.org/

D

#50 lol lol lol lol lol lol lol Casi me orino encima

dinky

#c-40" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3059149/order/40">#40 si te gusta C, usa C, yo no voy por ahí quejándome de que ADA no sea F#

P

#57 como decía el que fue mi jefe y "mentor" por decirlo de alguna forma "quien dice que programa sin usar arquitecturas, patrones, etc miente, los usa lo que pasa es que en su caso son una mierda".

No te lo vayas a tomar como un ataque, hablo de una perspectiva profesional, si es por diversión, no es tu trabajo, etc... Cualquier cosa vale, pero en un trabajo... Cualquier codigo "para leer datos y mostrarlos por pantalla" termina creciendo y a la larga pagas el no haber dedicado un rato a plantear el problema...

P

#100 si sí, por eso te decía que no lo tomes como un ataque

dinky

#29 eso es tipado dinámico, para comprobar el tipado estricto prueba a sumar un str y un int.

D

#54 cuando estaba aprendiendo, ahora consulto de vez en cuando pero nunca copio y pego, intento entender el código y adaptarlo a mis necesidades.

Janet_Yellen

#6 programas con teclado en español? Te va el masoquismo? 😐

D

#c-74" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3059149/order/74">#74 Pero eso no es culpa del lenguaje, si no de las bibliotecas y la metodología de desarrollo que uses. Yo me tiré 2 años programando en C# y lo que vi es que el código era tan compacto como en Python, pero con la ventaja adicional de usar tipado estático.

M

#93 Lo del informático friki que no se ducha, es un poco un tema del pasado. Conozco a bastantes programadores que hacen mucho deporte y se cuidan.

Además, a las mujeres les gustan los tíos inteligentes y con buenos trabajos. 😁

D

#108 ¿Más natural por qué? Es algo que se oye muy a menudo con este tipo de lenguajes (no digamos ya con Ruby), pero aún no he encontrado ningún argumento que lo demuestre.

Y en tu comentario #107 me hablas de GTK y de los frameworks. Lo primero es que GTK es un truño, usa Qt Lo segundo es que al final es lo que yo te digo, no es tanto cuestión del lenguaje como del entorno que utilices. Los frameworks para Java están todos infladísimos por alguna razón que aún no termino de comprender. Pero prueba a trabajar sin un framework y me cuentas. Los lenguajes dinámicos exigen muchísima más disciplina si no quieres que te explote todo.

Y en serio, olvídate de Java y prueba un lenguaje estático moderno. Incluso C++17 es mejor que Java

D

Hastío en lo profundo.

p

#39 Depende mucho. Tras conocer un lenguaje super estricto como Rust, para cosas como sistemas o programación con asíncrona es muy valioso ya que te evita un montón de errores complicados de evitar y muy fáciles de cometer sin saberlo.

De hecho C y C++ como lenguajes son una mierda pinchada en un palo en este aspecto. Son auténticos coladeros de problemas invisibles. Mucho tipado y mucha historia y no sirven para evitar casi nada en la práctica.

Para la mayoría de casos de aplicaciones no críticas, es sólo relativamente relevante.

D

#36 ese tipo de programador

D

#53 que algunos repiten cosas que leen por ahi sin pensarlo. Tengo dos de estos en el curro.

D

#23 Déjalos que ya se crearon su propio infierno lol lol lol . Tienen que mantener su propio codigo.

a

#c-24" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3059149/order/24">#24 Pero vaya chorrada acabas de escribir. Llevo 5 años trabajando con Python y 2 con Java y ... ¿Sabes una cosa que me encanta del Python?

Que cada puta línea de código que escribo sé para qué es y por qué coño esta ahí. Eso no pasa con Java o con C# que si no es por el IDE que te mete código a cascoporro sin saber por qué ni para qué, no podrías escribir ni un puto programa de tirón.

Y de verdad que flipo con todas esas mierdas de la inyección de dependencias. Son parches (malos) por lo fuertemente tipado que es el C# o el Java. Parches para hacer lo que con Python haces de una manera natural ... sin darte apenas cuenta.

Por no hablar ya de leer código que ha escrito otro. En mierdas como Java a veces es una puta pesadilla.

Pero bueno, sigue diciendo chorradas sin saber.

D

#68 Sólo dos? Qué suerte lol

t

#7 Cuenta, cuenta. He usado python pero no estaba al tanto de lo que pasaba entre bambalinas

D

#34 #29

a=4
a='4'

¿Esto es tipado fuerte? lol lol lol

anv

#106 Ba... como si no hubieras leído hilos en meneame o en cualquier otra parte. Si la cosa se extiende puede terminar así.

D

#12 Una pena que se torne en algo personal, pero estaría de acuerdo en que me parecería mejor no incluirlo.

No tengo claro lo d que simplemente puedas ignorarlo cuando no deja de ser un lenguaje de uso común. En gran medida el propio lenguaje se convierte en decálogo de normas de uso. Ese lenguaje y su sintaxis restringe las cosas que puedes hacer.

llorencs

#28 Demuestras no tener idea, porque C no tiene tipado fuerte, es tipado débil. C es estático y débil. Python es dinámico y fuerte.

D

#35 Soy de la vieja escuela. No uso ide, solo vim, un lenguaje no debería de ir asociado a la herramienta de introduccion.
Con cualquier otro lenguaje en el editor pulsando un shortcut me queda todo auto indentado, en python eso no es posible.
Ya me direis donde está la ventaja.
En proyectos complejos todas estas mierdas se notan bastante, hice un proyecto con pyqt y nunca mais, mucho más comodo y rápido programar en c++.

D

#43 (aplausos)

P

#47 muchos if son eliminables aplicando ciertos patrones y principios de POO (estrategy, inyección de dependencias, etc). Evidentemente if no es malo y sin if la programacion orientada a objetos se queda en algo un tanto inútil, el problema es el abuso (null checks en tu propio código, if repitidos n veces en una clase que te dan pistas de que en realidad son dos o tres clases diferentes y mierdas así).

D

#52 vim tiene plug de autopep8, python mode, pylint etc.. asi como 426423674mil plugins de todas clases, no es escusa lol

Has pasado de hablar de juguetes a decirnos que picas en un pizarrin

D

#146 Más triste tiene que ser tu vida cuando te limites a ofender a los demás sin conocerlos.

dreierfahrer

Pues muy bien no lo hizo Guido...

El solo consiguio empezar con 1 lenguaje de programacion y acabar con 2....

m

#2: De hecho en mi opinión deberían inventar un Python con la notación de Javascript, es decir, que puedas definir variables "en serio" (int32, uint64... y si das soporte para tipos extra (punto fijo), mucho mejor), vectores y matrices (de dos dimensiones o más) como tal, y no como estructuras y estructuras anidadas... pero sin la sintaxis de Python donde la indentación juega un papel fundamental y complica bastante en mi opinión la modificación del código, por ejemplo, envolviendo un trozo en un IF porque lo quieres saltar.

Conste que adoro JavaScript, porque para cosas pequeñas va bastante bien, solo necesitas el Bloc de notas de Windows y el mismo navegador FireFox, pero por favor, definir una matriz así es estúpido:
https://stackoverflow.com/questions/8301400/how-do-you-easily-create-empty-matrices-javascript
En C es como un vector con unos corchetes adicionales y con esas puedes hacer tantas dimensiones como necesites.

m

#38: Si, pero... ¿Y si ponemos las cosas "por defecto" como en C?

Me parece increíble que C, siendo más rígido, maneje mejor algunas cosas que JavaScript. Y bueno, eso se puede arreglar, porque o de no separar con llaves de Python, pues eso, para rehacer el lenguaje desde cero...

m

#41: Pues si no pones IF me dirás a ver cómo lo haces. lol

A ver, no dudo que a ciertos niveles no pueda haber una forma de programar donde no haya IF, pero a un nivel más general... la gente usa todo lo que tiene a mano y conoce. Si a mi me dices que vuelva a programar una miniaplicación llamada [TEXTO ELIMINADO POR LA CIBERPOLICÍA] o esta que hace [TEXTO ELIMINADO POR LA CIBERPOLICÍA] sin IFs o con menos IFs... posiblemente fuera incapaz de hacerlo.

Es lo mismo que los que dicen que no hay que poner código en el HTML y ni siquiera quieren la llamada a las funciones de los botones... si, muy bien, pero da la casualidad de que a mi eso si me funciona, y el rodeo propuesto no, y yo lo que quiero hacer es leer la imagen de un fichero [TEXTO ELIMINADO POR LA CIBERPOLICÍA] y no un programa que se adhiera a un criterio que en mi opinión complica las cosas de forma innecesaria.

Al que esté programando a alto nivel, bien, pero a los que programamos de forma casual, que tenemos que mirar Google cada poco, pues eso, que pondremos IF, pondremos código en el "onclick" del HTML y seguramente el código de más vueltas de las necesarias, pero al menos funciona, se puede compartir para que lo use quién lo vea interesante, y eso es lo importante.

redscare

#23 Leo este tipo de mensajes y me parto la caja. Creo que no sois ni medio conscientes que los servidores de medio Internet funcionan con java lol

D

Sin SWIG Python sería otro de esos lenguajes anecdóticos.

m

#55: Vale, muy bien, pero... ¿Y si solo quiero leer unos valores dentro de un archivo y mostrar el resultado por pantalla, o realizar unos cálculos a partir de unos datos mostrados por el usuario y dibujarlo en pantalla?

¿De verdad merece la pena meterse en POO, hacer complicados diagramas... cuando se busca algo relativamente simple y no ganas dinero por programar? Porque vale, a lo mejor no son aplicaciones escalables, mantenibles y todo eso, pero.... ¿es que a caso iban a ser escaladas? lol Demasiado si se las mantiene corrigiendo algún error que pudieran tener. lol

Hay programación a alto nivel, y también a bajo nivel, de gente que usa poco más que el Bloc de notas y como "gestión de versiones" copia y pega el fichero para hacer duplicados, o comparte el código en Github usando arrastrar y soltar.

D

#pollo Ya has quedado en ridículo antes con el ejemplo que te he puesto, donde claramente se demuestra que no tienes ni idea de lo que hablas. No te hagas más daño, por favor. Aparte de que utilizar el recurso del insulto es lo último que le queda al pobre que se ha quedado sin argumentos.

D

#66 me parto cuando alguien no sabe ni escribir lol lol lol lol

m

#76: Si, pero es que C se limita mucho a la consola, salvo que entres en bibliotecas especiales. JavaScript tiene la ventaja de que con un navegador y el bloc de notas ya lo usas.

A ver, que tampoco se cae el mundo por esos defectos, pero a uno le gustaría tener un poco más de control.

m

#82: No, ahora lo miro, aunque parece que no tiene llaves como C, que es algo que me gusta mucho de C o de JavaScript.

m

#98: Pero como digo en otros comentarios, es que el tipo de programación que hago es muy "casual", no me dedico a ello. Lo mismo no hago otro programa hasta dentro de 6 meses.

borteixo

#12 alguien propone cambiar la sintaxis de un lenguaje de programación y responden con ataques personales LOL lol

m

#93: Lo mismo que un oso panda la mayor parte del año.

borteixo

#122 aquí no recuerdo ver a nadie llegar a lo personal por temas de programación lol me parece muy nerd de nuestro señor jajaj

D

#115 Yo también se la he dado y no ha querido rebatirme.

D

#99 El novato más bien es el que me ha respondido.

D

#74 Me parece que no sabes qué es una función ni la encapsulación.

Endor_Fino

#133 en realidad me refería a la gente que rápidamente tacha de dictador al organizador de turno únicamente por no seguir su palo. Si ese pobre cae en el error de intentar contentar a todos para ser "demócrata" se convierte en un dictador por no conseguirlo.

J

¿Cuál es el problema?
Los proyectos que son 'libres' o para la comunidad de este calibre: lenguajes, frameworks, etc... no deberían ser el apéndice de nadie. "Muere" el ser que alimenta al apéndice, desaparece la esencia del proyecto y con más o menos suerte podrá o no sobrevivir y evolucionar.
Lo ideal es justamente tener un 'steering committee' o similar que se encargue de gestionar las necesidades de la comunidad de una forma justa, objetiva y democrática. El resto no es más que alimentar el ego de un pseudo-dictador o de un oligopolio que como no suelta el control de su apéndice es quién sabe más del mismo y se puede dar el lujo de decidir qué es bueno y qué no (luego que algunos no se quejen si surge alguna alternativa más democrática que la comunidad adopta en favor de ese apéndice).

Ejemplos no faltan... empezando por el kernel de Linux, cuyo desarrollador principal y creador recientemente se tuvo que tomar unas vacaciones para analizarse a sí mismo y a su ego.

Y creo que nadie discute la experiencia y conocimiento de ésta gente, simplemente la popularización, uso y finalmente dependencia de multitud de otros proyectos hace que algunos de estos se consideren a sí mismos como los únicos que pueden impartir conocimiento y sabiduría sobre su 'creación'. Es decir, el hecho de crear algo y que se popularice no implica que no surja alguien que acabe sabiendo más que tú, y quizás el problema está ahí... que la competencia es feroz y ataca al ego directamente.

M

#11 Claro, claro mejor programar todo en ensamblador, o mejor coger dos cables pelados y ahí con 0 y 1.

llorencs

#63 Eso mismo puedes hacer con C y cosas peores que no te permite hacer Python. Lo que tú has hecho es redefinir una variable, nada más.
Sigues confundiendo fuerte y débil con dinámico y estático.

Python no hace conversiones implícitas como te lo permiten C, Visual Basic o JavaScript. Python está más en la línea de Java.

"Smalltalk, Perl, Ruby, Python, and Self are all "strongly typed" in the sense that typing errors are prevented at runtime and they do little implicit type conversion, but these languages make no use of static type checking: the compiler does not check or enforce type constraint rules. The term duck typing is now used to describe the dynamic typing paradigm used by the languages in this group."

D

#63 Tengo la impresión de que, en realidad, cuando él habla de tipado fuerte o débil se refiere realmente a esto:

raster@debian:~$ python3
>>> "hola" + 5
Traceback (most recent call last):
File "", line 1, in
TypeError: can only concatenate str (not "int") to str
>>>


raster@debian:~$ python2
>>> "hola" + 5
Traceback (most recent call last):
File "", line 1, in
TypeError: cannot concatenate 'str' and 'int' objects
>>>


raster@debian:~$ gjs
gjs> "hola" + 5
"hola5"
gjs>

Con lo que, aunque en la función puedes meter variables con cualquier tipo, si luego en el código de dentro de la función los tipos no son los esperados, en python acabará dando un error, pero en javascript probablemente no lo de. De ahí que yo, personalmente, sí considere a python como de tipado fuerte, y a javascript de tipado débil.

(aunque luego hay excepciones, como "hola" * 5, pero bueno, ese es un caso específico, en mi opinión 😇 )

Luego lo de que C es de tipado débil, yo diría que no, porque aunque se pueden pasar tipos similares (meter un char donde hay un int), te envía un warning siempre que haga una conversión "problemática". Y un programador que acepte que su código en C compile con warnings no es un buen programador, en mi opinión.

D

#28 Python no tiene tipado fuerte obligatorio

No, tiene tipado fuerte... opcional lol Lo que se conoce en ambientes académicos como "tipado regulero".

a

#c-81" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3059149/order/81">#81 Sinceramente no le veo ninguna ventaja al tipado estático. Y el código es compacto pero no por el C# en sí, sino por el propio framework que normalmente te obliga a compactar y estructurar. Después de trabajar 3 años en Python y meterme con Java de repente va y me entero de que había una "cosa" llamada inyección de dependencias ... y yo me preguntaba cómo coño no me había enterado de que eso exisitía. Y es que en Python no sólo no es necesario, sino que no tiene ningún sentido. Al final cosas como esa (hay muchas más como los "interfaces" que no son más que un puto parche) son las que hace que tu código se llene de "cosas" que tienen que estar pero sólo tienes una idea "filosófica" de qué coño hacen.

Eso en python no pasa. A mí no me pasó ni cuando empezaba a trabajar con él.

a

#c-86" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3059149/order/86">#86 No he escrito código en Python de cientos de miles de líneas de código pero sí de decenas de miles de líneas de código y he tenido en python los mismos problemas que en Java o en C#. Porque si Java es un horror, C# es exactamente el mismo horror.

Y esos problemas que tú cuentas los resuelves antes de empezar a escribir planteando la arquitectura y, sobre todo, la estructura de los datos. Que siendo dinámicos en Python y no siendo fuertemente tipado te puedes hacer exactamente el mismo planteamiento pero sin mierdas como los "interfaces", por ejemplo.

a

#87 Y cómo crees que empiezo yo cualquier proyecto? O cualquier programa casual? Escribiendo algo que es poco más que un "hello world" y a partir de ahí añadiendo estructura.

Pero la diferencia de hacerlo con POO es que esa estructura se va haciendo grande de una manera casi natural. Cuando no trabajas así, en efecto, el final es de traca. Tienes un huevo de funciones desperdigadas e inconexas que al final se te hace imposible manejar. Eso no pasa con POO ya que aunque el experimento, programa o proyecto sea "casual" tiene estructura nada más empezar.

Como te dije antes cuando se te mete la POO en la cabeza ya no puedes pensar de otra manera pero es un poco como aprender un idioma ... primero vas traduciendo mentalmente a tu idioma materno y acabas sin darte cuenta simplemente expresando tus ideas en ese idioma. Y cuando llegas ahí, ya no hay vuelta atrás.

freeCode

#13 y qué lenguaje te gusta más?

a

#c-91" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3059149/order/91">#91 A ver. Reconozco que tengo cierta querencia por Python ya que es el primer POO que aprendí. Y reconzco que Java y C# tienen su cosa. Por ejemplo .. gracias a Java me hice mucho más "fuerte" en la POO ya que Java es la única opción que te deja. Y eso me ayudó a ser mejor y a cambiar mi manera de pensar como programador.

PERO

Lo que yo digo es que el que sea fuertemente tipado o no lo sea, no lo hace mejor o peor. JavaScript es una caca ... pero me gusta lo que se puede hacer con él. TypeScript es básicamente lo mismo pero en "bonito" y con mucha mejor estructura y, sinceramente, creo que la diferencia entre JavaScript y TypeScript es, básicamente, que ves de una manera más sencilla la estructura de los datos y de las clases. Nada más. Hacen casi lo mismo y se ejecutan más o menos en el mismo tipo de entornos.

Luego te encuentras con mierdas como el JQuery que para mi gusto es insoportable. Tiene una sintaxis de locos y hace que cualquier chorrada sea una mierda difícilmente legible.

Y gracias por el comentario de las interfaces. Así es ... un parche porque no admite herencia múltiple. Y yo me pregunto si es un parche porque sí o es un parche porque precisamente el ser tan fuertemente tipado hace muy difícil que el compilador pueda con esa herencia múltiple.

1 2