Hace 5 años | Por ccguy a mail.python.org
Publicado hace 5 años por ccguy a mail.python.org

[Directamente de su correo a la lista de desarrolladores]: "Me gustaría retirarme por completo del proceso de decisión. Voy a todavía estar allí por un tiempo como un desarrollador del core más, y seguiré estando disponible para guiar a la gente. Pero me estoy dando unas vacaciones permanentes como dictador benevolente. No voy a nombre un sucesor. ¿qué vais a hacer? ¿crear una dictadura? ¿democracia? ¿anarquía? ¿federación?"

Comentarios

Am_Shaegar

#1 Y le pondrían un camello para llegar hasta allí.

pkreuzt

#2 Un dromedario, quieres decir

D

#3 si la abadía está en la zona norteafricana y península arábiga si es correcto, si es una abadía del desierto de Gobi entonces es un camello.

D

#15 mea culpa, no estaba al tanto de los simbolismos de Perl. Pensaba que estabas hablando de otro tema. wall

f

#17 Da lo mismo, piensalo como "Y le pondrían hasta un camello para llegar hasta allí" Lo de que el animalico no esté en su entorno es lo de menos

D

#36
Te doy positivo por el "megacalzador para soltar la mía" que te has marcao.
Con dos par de huevos o huevas!

f

#51 es que no pretendia que fuera un , es que me hizo gracia al pensarlo y ale... lo solté así, tal cual

jorgemf

#19 sin ánimo de apoyar el otro comentario, ¿eres consciente que los usos que comentas son bindings a librerías escritas en otros lenguajes? Python está bien para algunas cosas pero es cierto que al final el código "importante" no está escrito en Python.

#32 " ¿eres consciente que los usos que comentas son bindings a librerías escritas en otros lenguajes?"

Y?

Me estas queriendo decir que esos lenguajes tan molones y tan potentes son tan jodidamente complicados de usar que al final tiene que venir un lenguaje sencillote como python para que la gente pueda usar esos bindings???

Que si, que C, assembler y demas estan muy bien (y tienen usos brutales y fantasticos), pero para el 80% de lo que hace la gente, lenguajes de MUY alto nivel funcionan perfectamente, otra cosa son los sistemas empotrados y demas cosas.

D

#39 En resumen,

- Lenguajes de bajo nivel son jodidos pero difíciles, e imprescindibles para hacer librerías. Muy poco prácticos para hacer interfaces de usuario o programas sencillos como dices que hacen el 80% de la gente.

- Lenguajes de alto nivel son fáciles de usar e imprescindibles para que un programador sea productivo, pero al final dependen totalmente de liberías escritas en bajo nivel.

Una comparación es absurda, se complementan y necesitan. Como el Yin y el Yang, como el hombre y la mujer

llorencs

#50 Tu corrector ortográfico del móvil te ha jugado una mala pasada. A que lenguaje te referías dónde pone Usted?

P

#56 Js*

D

#56 yo siempre programo de tu, usted es muy formal

D

#49 Pero hay que forzar su uso al 50/50, que si no uno se siente oprimido

m

#39 c y asembler.. tanto como brutales y fantásticos...lol

jorgemf

#39 hay lenguajes de alto nivel que no tiene tanto sentido bindings. Python es horrible de usar para proyectos serios de un tamaño considerable. Lo sé porque lo uso a diario y preferiría usar otras cosas.

p

#32 depende de lo que entiendas por "importante". Son lenguajes complementarios, al igual que ocurre con otras tecnologias.

Ejemplo equivalente: Java+JNI o en el caso de Android Java+NDK (que para el caso es lo mismo). Las partes en las que requieres mayor eficiencia las haces en lenguaje compilado y el resto en lenguajes de mas alto nivel. Es la parte de bajo nivel la mas importante? No, necesariamente.

Ejemplo más claro usando Java como referencia: hadoop (big data en general), Cassandra, kafka,... estan escritos en lenguaje de mucho más alto nivel y funcionan perfectamente.

Otro ejemplo: para una empresa muchas veces la parte más importante va a ser la lógica de negocio. Lo que interesa es poder adaptarte rápidamente a las necesidades, por eso las empresas de nueva creacion (start-ups,...) prefieren el uso de lenguajes que agilicen el desarrollo (PHP, Python, NodeJS,...).

Python nace con la finalidad de poder interaccionar directamente con codigo nativo (ej: hecho en C/C++), lo que conlleva a grandes condicionantes en su diseño. En el caso de la implementación estándar de Python (CPython) a utilizar técnicas de interbloqueo (GIL) que merman la eficiencia multithread/multicore radicalmente.

Cada lenguaje es para lo que es, es un error prejuzgar. Al final quieras o no todo se sustenta en lo más bajo sobre codigo nativo (ej: maquina virtual de Java o .NET estan hechas en C++), sin embargo lo que mantiene tu negocio a flote suele ser la parte de negocio. Ej: github se puede decir que vive de "git" como base, el negocio de github es todos los servicios añadidos que brindan al rededor de ese gestor de versiones (y eso es alto nivel).

jorgemf

#40 a ver... Python no sirve para proyectos relativamente grandes. El multithreading es horrible, básicamente no existe. No tiene tipado fuerte. Y un alero etc. Java es d ealto nivel y se hacen cosas muchísimo más complejas de lo que harías en Python.

p

#66 http://www.hartmannsoftware.com/Blog//Companies_Using_Python

Créeme, hay proyectos "muy tochos" hechos con Python. Mirate Tornado, de Facebook y preguntate porque una empresa de ese nivel iba a crear un framework completo de programación asincrona en Python. Youtube, Dropbox,... hasta los crawlers de Google (en este caso si lo usan solo como lenguaje de apoyo).

No hay lenguaje mejor ni peor. Hay lenguajes más adaptados a unas problemáticas que otras. Python es muy polivalente y combina bien con casi cualquier otro lenguaje.

Sobre el tipado del lenguaje, es como hablar de la formalidad e integridad de las bases de datos relacionales vs las NOSQL. Las primeras son sin duda alguna a nivel de arquutectura mucho mas complejas y brindan muchas características interesantes (integridad, atomicidad, transaccionalidad,...), pero para una gran inmensidad de proyectos se está demostrando que no necesitas todo eso y te basta con algo "más simple" (aunque hay algunas NOSQL que de simple por dentro no tienen nada ).

Hace años yo tambien veia Python como un juguete (piensas: se aprende en 3 horas, tabulaciones en vez de llaves?,...). Luego descubres que le pasa como a C++, tardas años en dominar bien ambos y entender todas las bondades.

jorgemf

#70 no veo a Python como un juguete, simplemente considero que es un error usarlo para proyectos de cierta envergadura. Es muy fácil añadir Bugs que son muy difíciles de depurar. Los tabuladores también son un dolor de muelas y añaden Bugs inesperados. Python es un lenguaje de scripting para hacer prototipado rápido y cosas pequeñas. Y para eso es genial usarlo, pero para poco más. Y aún así por mi creo que hay lenguajes mucho mejores para hacer lo que hace Python. En Python es complicado hacer algo concurrente que requiera usar bastante RAM, y hay lenguajes que es super fácil.

D

#32 ? "Bindings" jajajajajaja

jorgemf

#46 si explicas que tiene tanta gracia nos reímos todos. Sino entiendes a que me refiero con bindings te lo explico sin problemas.

D

#32 Si seguís esa lógica y por ese razonamiento, el único lenguaje "importante" es ensamblador, o ya si somos 100% puretas, el lenguaje máquina puro y duro. Y ninguno de los que estáis aquí despotricando de Python tenéis ni puta idea de programar a bajísimo nivel. Así que dejad de escribir tonterías, por favor.

jorgemf

#48 importante no significa bajo nivel. Java es un lenguaje mucho más serio que Python con el que se puede hacer muchas más cosas, más grandes y más fáciles de mantener. Yo uso Python a diario y se lo que es pegarse con el.

P.D. antes no escribí ninguna tontería pero tú prejuzgaste muy rápido.

D

#68 Java y TODOS los lenguajes se compilan a ensamblador y código máquina, así que no, no te he prejuzgado y sí, si estáis diciendo tonterías.

jorgemf

#72 si eres capaz de decir que todos los lenguajes se compilan a ensamblador y decir que otro dice tonterías te quedas solo en esta conversación. Porque cualquiera con un mínimo de conocimiento ha estudiado que hay lenguajes interpretados que no se compilan. Java en concreto se compilan a bitecode que es interpretado por la máquina virtual y a veces esta máquina virtual decide compilar partes del código para hacerlo más rápido. Android ha hecho otras cosas con java durante algunas versiones pero eso es otra historia y un caso particular. En resumen, eres un ignorante bocazas

mrwylli

#c-7" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2980779/order/7">#7 #19 JjaJAJaJAa "gente que realmente sabe programar" Porque claro C++, C# o Javascript no es programar de verdad, ¿verdad churri?

Ay cómo están los trolls.

xyzzy

#7 "lenguaje de script" lol

Jakeukalane

#23 ¿python no es un lenguaje de script? ¿Y bash?

D

#26 comparar Python con Bash denota un problema de niputeismo.

Jakeukalane

#43 es una pregunta. He puesto la pregunta y luego otro lenguaje que estoy 100% seguro que es un lenguaje de script.

jorgemf

#43 ambos son lenguajes de script, la comparación es correcta.

D

#7 te falta otro ejemplo de uso muy común. Dentro de la comunidad de seguridad, para hacer el outline y ejecución del código que realmente explota la vulnerabilidad, este último generalmente escrito en un lenguaje de verdad (C) .

Fdo - un tipo que come gracias a python :^)

Conde_Lito

#7 Yo programo directamente en código máquina, ni ensamblador ni hostias.

#7 mmm, no. Python es un lenguaje muy potente, y al mismo tiempo sencillo de aprender (eso si, programar muy bien en python lleva tiempo). Personalmente estoy muy cansado de la gente que se dice "Soy programador de X" (donde x es java, .net. php o lo que sea)... personalmente programo (a diario) en java, python, js y bash... ocasionalmente en php y R... si algo me ha ensenyado el usar varios lenguajes es que cada uno tiene su aplicacion.

#35 yo no se que es programar de verdad, en matlab he escrito un pequeño código que detecta cambios de intensidad de luz en imagenes(que aún no funciona) y la automatización de pasar imagenes al programa la hago con python. Los dos son esenciales

D

#7 ya me daría vergüenza escribir tu primer patrafo. No tiene ningún sentido.

D

#7 vaya tonterías las que sueltas sin rubor.

p

#9 a todo se acostumbra uno

En mi opinion, realmente se deben ver como dos lenguajes distintos. Especialmente con la aparición de asyncio hay diferencias lo suficientemente grandes como para así considerarlos,ya que no existen compatibilidades hacia atrás.

Afortunadamente, Python 2 esta cayendo en desuso, por lo menos yo lo he notado así especialmente en este último año.

D

#21 Calla calla , que estoy aprendiendo python ahora para reciclarme y hasta que me di cuenta que los ejemplos no me funcionaban porque estaban en 2 y estoy usando 3 , ....
Una de las cosas que estoy usando ahora , Medusa, esta en python 2 , y me lo estoy pasando teta intentando traducirlo a 3 lol

llorencs

#22 Por suerte, todo lo que me es útil ya está migrado a Python 3. Así que me puedo dedicar a tareas productivas.

D

#28 Bueno , yo estoy aprendiendo ahora y este me esta resultando un ejercicio de lo mas instructivo.

m

#22: Y luego critican JavaScript.

llorencs

#29 Python es ultra consistente y no es caotico como JavaScript.

Si hay cambios importantes de la 2 a la 3. Incluso que hacen que sean incompatibles entre ellas, pero el código se puede migrar relativamente fácil.

m

#30: JavaScript es según lo escribas, de hecho su libertad en mi opinión es una virtud.

D

#30 ultra consistente? Ni siquiera los imports es capaz de mantener una consistencia entre versiones. roll

llorencs

#21 En Python 3 estan ya todas las librerías de terceros que puedan ser importantes, e incluso muchas librerías ya abandonan el Python 2 totalmente.

jacapaca

Martes y trece , cruz y raya y ahora los monthy..... dios cry

D

A ver si alguien consigue quitarse de encima el GIL, que es lo peor con diferencia.
https://wiki.python.org/moin/GlobalInterpreterLock

D

#41 Un lenguaje que te dice que hacer threads no es posible y que tu no deberías intentarlo por no ser ‘buena práctica’ tendría que estar en el cubo de la basura.

D

#44 bueno, está asyncio, que viene a ser como las promises... Cada instancia ocupa muy poca ram, asi que puedes escalar por procesos y te olvidas en ambos casos de los threads, dela mutex y muchos líos.

p

#44 ignorancia se llama lo tuyo. Por lo que para evitar este tipo de desinformación y que se propague, a otros nos toca informar.

Es posible hacer threads pero tienen sus limitaciones (debido al GIL tan solo es posible aprovechar al maximo combinandolo con programación asincrona):
https://docs.python.org/3/library/threading.html

Tambien es posible utilizar el paradigma de programacion asíncrona (asyncio), que tan de moda se han puesto en la última decada (ej: NodeJS). Ver uvloop para implementación más optima:

https://github.com/MagicStack/uvloop

Es posible usar threadpools y processpool executors:

https://docs.python.org/3/library/concurrent.futures.html

Cuando estás usando tornado por ejemplo para hacer servicios, es posible hasta hacer microservicios con soporte multicore + asincronos.

https://www.programcreek.com/python/example/91351/tornado.process.fork_processes

Tienes que entender un lenguaje, su diseño interno y tener experiencia con el mismo antes de hablar.

Un saludo.

D

#60 o usar su version 2.7, que se que todos vivis en el 'bleeding edge', pero otros no.

CPython implementation detail: In CPython, due to the Global Interpreter Lock, only one thread can execute Python code at once (even though certain performance-oriented libraries might overcome this limitation). If you want your application to make better use of the computational resources of multi-core machines, you are advised to use multiprocessing. However, threading is still an appropriate model if you want to run multiple I/O-bound tasks simultaneously.

D

#41 Una comparacion odiosa
http://yaketyhack.blogspot.com/2010/07/threading-perl-vs-python.html

Para el mismo problema:
Perl: Threads reported 43.3241600990295 combined runtime
Python: Threads reported 120.4 combined runtime

Here we see where the global interpreter lock causing us problems. Each additional thread causes it to take the same amount more time. That's because only a single thread can run at any time, yielding no time savings for running four threads. It's equivalent to running them in sequence, in this case.

slepo

#11 siento el negativo.
Te compenso.

vaiano

#12 ni te molestes, a mi no me preocupa, buenas noches .

dani.oro.5

Será muy interesante seguir el cambio de forma de gobierno de una dictadura a lo que elijan.

D

#11 Ofendido? Que va. Estaba sorprendido, pero si era una coña no digo na!

Nos queda su obra

D

Po' fale.

g

Las assignment expressions van a dar mucho que hablar durante mucho tiempo

e

Que mal... Espero que no hagan locuras sin el... Es mi lenguaje favorito y vivo de el también.

a

#25 Estoy como tú. De todas maneras queda gente muy buena currando en el equipo, pero Jode que Guido se retire. Es un genio.

vaiano

Esto es MNM, solo aquí tiene portada una noticia así, de echo con ese nombre no se como puede dirigir ni su libro de familia .

vaiano

#10 era una coña pero a lo hecho pecho, igual estás ofendido tú también .