Python es casi tan rápido como Go y C++

El problema de las N damas, que es una generalización de clásico problema del ajedrez, de poner 8 reinas en un tablero sin que se ataquen mutuamente, se resuelve muchas veces recursivamente, lo que significa que se van poniendo las damas en el tablero.

Si de pronto una dama ya no se puede poner, se va un paso atrás, se cambia de posición la última dama puesta y se vuelve a intentar poner la siguiente dama. Esto es un proceso de recursión y backtrack y resuelve el problema para tableros de NxN y N damas.

¿Y si usamos Python?

Un programa que resuelva esto en Python, Go y C++ demuestra que Python es lento, pero hay que decir que Python incluye la verificación de errores y eso hace que sea más lento.

Pero si se usa Numba, un compilador de Python, aunque no destrona a C++, quedando Go en segundo sitio, por un 6% del tiempo y Numba Python en tercero, con apenas 12% más lento.

Los investigadores argumentan que Numba Python es suficientemente rápido para ser usado en el contexto de la investigación, por su velocidad para generar prototipos. Go es también atractivo, pero se argumenta que tiene tantas características que lo hace menos fácil de usar cuando se está experimentando con código.

Es interesante que Julia, que también está en el grupo de lenguajes «rápidos», tiene el potencial de ser una alternativa atractiva a Numba Python. Desafortunadamente, hay algunos obstáculos para su adopción: Por una parte es un lenguaje relativamente nuevo y muchas de sus características son aún experimentales. Por otra parte, el número de bibliotecas es limitado.

Python, por otra parte, tiene un sinfín de bibliotecas de desarrollo, incluso algunas para aprendizaje profundo, las cuales son básicas en la investigación de hoy.

Además, tiene características de diseño que lo diferencian de los lenguajes más populares, como arreglos de un sólo índice, entre otras. Como sea, parece nada fácil migrar de un lenguaje establecido como Python a lo nuevo que podría tener Julia.

Una de las 72 soluciones para un tablero de 8×8

Para uso científico, el equipo de pruebas hizo comparaciones sobre las implementaciones en paralelo y con Numba las cosas fueron más fáciles, incluso aunque el uso de Python estándar no pudiese manejarse de esta manera. Se usaron dos forma de paralelizar Python, Para y Pool, y se compararon contra el código original de Numba, Go y C++. Numba en este caso fue tan bueno como Go y C++, aunque este último sigue siendo ligeramente más rápido.

Python es quizás el mejor lenguaje para aprender a programar

La conclusión de reporte es: Usamos el problema conocido de las 8 reinas como una forma de probar que una vez compilando con Numba, Python puede ser tan competitivo como C++ y Go en términos de velocidad de ejecución para poder hacer prototipos rápidos.

Esto resultó cierto para programas paralelos y secuenciales. En todos los casos, se puede desarrollar en Python estándar para luego de identificar los cuellos de botella, usar Numba para quitarlos».

La entrada Python es casi tan rápido como Go y C++ se publicó primero en Unocero: Especialistas en tecnología y estilo de vida digital.

Etiquetado: / / /

ENCUESTA: ¿Cuál es tu lenguaje de programación favorito?

En la encuesta de esta semana, quisimos adentrarnos en el ADN de la tecnología y hacer una pregunta que para quienes se dedican al desarrollo de software y a la programación.

Python es el lenguaje más popular hoy por hoy

Sabemos que ningún código es igual a otro, y que cuando se trata de elegir un lenguaje, cada persona tiene una preferencia y un estilo diferente. Así que nos gustaría que compartieran su opción favorita.

¿Prefieres algún otro? ¡No olvides dejar tus comentarios!

La entrada ENCUESTA: ¿Cuál es tu lenguaje de programación favorito? se publicó primero en unocero.

Etiquetado: / / /

Python podrá utilizarse de manera más sencilla en Windows 10

Python está adquiriendo mucho “momentum” y se está convirtiendo en el lenguaje más popular. Probablemente porque una de sus grandes virtudes es que puede usarse como un intérprete y esto hace que la depuración sea muy sencilla.

Steve Dower, ingeniero de software de Microsoft, publicó buenas noticias en el blog de la compañía:

“Microsoft se ha involucrado con la comunidad de Python por alrededor de doce años y actualmente tiene contratados a cuatro de los contribuyentes claves al lenguaje.

El crecimiento de Python ha sido increíble y ya tiene cabida en una gran cantidad de nichos: científicos de datos, desarrolladores web, estudiantes y administradores de sistemas, entre otros y aproximadamente la mitad del trabajo hecho ocurre en la plataforma Windows. Curiosamente, los desarrolladores de Python hallan bajo Windows más problemas que en otras plataformas”.

Una ayudadita por parte de MS

Lo que está haciendo Microsoft es poner un enlace a Python en Windows para que los desarrolladores tomen la distribución del lenguaje directamente de la tienda de Windows.

La distribución de Python en la tienda de Windows está totalmente mantenida por la comunidad, se instala fácilmente en Windows 10 y automáticamente hace que estén disponibles los comandos más comunes como python, pip e idle. También tiene el equivalente de los comandos con nímero de versión, python3 y python3.7.

El hecho de que Microsoft dé una ruta más sencilla para este lenguaje dentro de Windows habla de la importancia que está teniendo este lenguaje de programación. De acuerdo con Dower:

“Mientras Visual Studio sigue siendo un punto de inicio muy importante en Windows, muchos desarrolladores ahora prefieren adquirir herramientas individualmente y bajo demanda”, destacó.

Se espera que Python siga creciendo y se espera que dentro de 3 o 4 años sea el lenguaje preferido en general por los desarrolladores, como lo fue C en su momento en el siglo pasado. Por ello Microsoft está apostando a Python, sin duda.

Python para Windows puede descargarse también en este sitio.

La entrada Python podrá utilizarse de manera más sencilla en Windows 10 se publicó primero en unocero.

Etiquetado: / / /

Python es el lenguaje más popular hoy por hoy

Existe una medida, llamada índice TIOBE, que valora qué lenguajes de programación son más populares. Los datos salen de los foros de discusión técnicos en donde se observan cuantos internautas cambian impresiones sobre los diferentes lenguajes de programación. Ahora, en junio, el índica TIOBE ha sido publicado y revela que Python es el lenguaje más popular.

Aparentemente Python ha tomado la delantera, dejando atrás a C y Java, lenguajes sumamente populares y usados por muchísimos programadores en el mundo. Y Python parece ser el lenguaje que no solamente queremos usar, sino que ya estamos usando.

El índice TIOBE da a Python solamente 3 o 4 años antes de dejar a C y Java ya detrás de él y se ubica hoy mismo en el sitio número uno. Y la realidad es que el resultado sorprende en parte, porque muchos programadores han usado C y Java por muchísimos años y hay un número enorme de bibliotecas de programación para casi cualquier tema.

Termina tu tesis en un mes con este curso GRATIS en línea de la UNAM

Con respecto a Java, hay que decir que Oracle está matando la versión gratuita y libre a su manera, es decir, poniendo un sinfín de restricciones o eliminando posibilidades y características, las cuales Oracle quiere que sigan pero en una versión comercial. Este asunto pudiese terminar por liquidar a Java y llama la atención que Oracle no parece haber visto esta posibilidad, la cual parece evidente para muchos analistas.

Como sea, Python se ha convertido en un fenómeno y tal vez su popularidad se deba a que muchos nuevos programadores están empezando con este lenguaje. Igualmente, Python se está convirtiendo en una interesante opción para hacer redes neuronales e incluso, computación cuántica.

El índice TIOBE tiene sus propios argumentos para comprender por qué Python ha tomado la cabeza en popularidad. De acuerdo a su reporte:

“La razón principal [para el boom de Python] es que la ingeniería de software está convirtiéndose en un fenómeno.

Está atrayendo a muchos nuevos programadores. Java, por ejemplo, es ‘muy rollero’ para los principiantes. Para correr el programa más común ‘Hello, World!’ en Java, hay que saber de clases, métodos estáticos y packages. En C es un poco más fácil, pero tendrás que enfrentar el manejo directo de memoria. En Python este programa se escribe en una línea”.

Python tiene un entorno típico de los intérpretes y esto hace que la curva de aprendizaje sea menos dolorosa. Se puede usar Python como si se tratara de un lenguaje de script sin tener que entrar en la programación orientada a objetos.

Iodide, una nueva herramienta para la comunidad científica de datos

Más tarde se puede trabajar sobre estos temas avanzados e incluso llegar no solo a clases, sino a meta-clases. Así, Python es poderoso, sofisticado y un lenguaje moderno que se quiere parecer a la experiencia del BASIC cuando se está empezando.

Con respecto de los otros lenguajes, Ruby es cada vez menos popular y está en el lugar 13. Go está en el lugar 15 y Kotlin, que se usa para programar en Android, así como Rust, están cayendo inexplicablemente a los lugares 40 y 38, respectivamente, cerca, demasiado cerca de los lenguajes ADA, Haskell y Prolog.

Hay que decir que el índice TIOBE es una medida de la popularidad de un lenguaje y no hay que tomarlo demasiado en serio, porque muchas veces se impone una moda por un tiempo y después desaparece misteriosamente. Y aunque Python no parece ser específicamente una moda, bien podría ser desplazado en los siguientes meses.

En cualquiera de los casos, el índice TIOBE es como los bikinis: muestran un panorama interesante pero no la realidad completa.

La entrada Python es el lenguaje más popular hoy por hoy se publicó primero en unocero.

Etiquetado: / / /