Hace 8 años | Por mr_b a planetadiego.com
Publicado hace 8 años por mr_b a planetadiego.com

Intel acaba de sumar a Python a los lenguajes de programación que pueden ser utilizados con su Math Kernel Library (Intel MKL), una biblioteca matemática desarrollada para aprovechar el potencial de los procesadores matemáticos de la empresa. Además, acaba de poner a disposición de los desarrolladores una distribución de Python que incluye, además de la MKL, los paquetes especializados en usos científicos y matemáticos NumPy y SciPy.

Comentarios

alcornoque

#21 jajaja, demasiada costumbre a comenzar los vectores por 0. Recuerdo algún lenguaje que empezaba en 1, y se me hacía totalmente bizarro.

Arcueid

#23 Es otra manera de programar, y si se trabaja con Python hay que hacerse a ella; al igual que hay lenguajes que "secuestran la libertad" obligando a definir un tipo, o un número de posiciones de memoria, o definir previamente los métodos. Cada lenguaje con sus peculiaridades y filosofía.

Además, hoy día muchos trabajan con IDEs que permiten indentar adecuadamente sin esfuerzo. Incluso sin IDE, darle cuatro toques al espacio no es un gran esfuerzo. El resultado final aboga por la legibilidad y mantenimiento del código, cosa que algunos -me incluyo- agradecemos mucho al leer lo de otros.

m

#24: Si no te digo que no, pero a mi esto de que te toque tragar con Python o nada... en fin, que respeto que a otros les guste ese lenguaje, pero que no se piensen que su gusto es compartido por todos, porque hay bastante gente que no soporta Python.

Es que me da asco eso, que van en plan "y como es en Python es molón", pues no, es molón para quién le mole ese lenguaje, para los que no es un asco.

Arcueid

#25 No veo por qué "toca tragar con Python". Intel ha apostado por ese lenguaje por unas motivaciones concretas, pero si no necesitas usarlo en tu trabajo o proyectos no estás obligado a usarlo... En tu primer mensaje estarías incitando a que la gente "tuviese que tragar" con node.js por un gusto estético de una persona... Es lo mismo.

En mi caso no trago tener que instalar paquetes a través de npm, pero si fuese necesario para hacer algo ya miraría de entenderlo y acostumbrarme. Antes de empezar a trabajar con Python también me quejaba de las indentaciones (queja por excelencia de los que empiezan con Python o han tocado poco) y ahora me he acostumbrado, entiendo el porqué de que se requieran y poniéndolo en la balanza creo que merece la pena. En comparación con otros lenguajes, leer y mantener sw en Python se me hace más llevadero que, p.e., Java o JS.

Respecto a lo de si es molón o no, estéticamente a mí me gusta por su simplicidad. Pero vamos, que no se puede evitar a veces cierta comunidad fanboy, y a veces peco también de ello, p.e. Python vs Ruby. Aunque es algo que creo que pasa en varios lenguajes, y también he conocido a defensores a ultranza de frameworks JS que con su trabajo hacen que en algún momento me toque usarlo. Con esto digo que hay "tiranteces" por los dos extremos; de alguna manera tendremos que "convivir".

m

#27: Lo ideal sería que cuando se hicieran las cosas, se hicieran versiones para varios lenguajes, sobretodo si sólo son fachadas y tras de ellas hay código en lenguajes compilados como C. Más que nada por eso, porque muchos no tragan con JS y muchos no tragamos (ni vamos a tragar) con Python.

Arcueid

#30 Nota bene: el comentario #35 va en respuesta a éste. Editando se debe haber ido a Cuenca.

Morporkiano

#36 Eso es que no lo has indentado bien.

AlphaFreak

#30 La MKL es una alternativa a BLAS/OpenBLAS/ATLAS, y a priori no está ligada a Python. Supongo que Intel ha optado por priorizar las plataformas con más uso en el momento de "liberar" la librería.

PythonMan8

#25 tienes un problema con python que sólo tú puedes solucionar. En la noticia comentan que añadirán python a la lista de lenguajes soportados y citan las mejoras de velocidad respecto al python estándar. A partir de allí entras en modo "paranoia-python-me-persigue-y-se-esconde-detrás-de-las-esquinas" y empiezas a tener pesadillas con personajes de ciencia ficción en tu cerebro que te obligan a utilizar python y que afirman que "como es python es molon..." y te dan mucho asco porque la estética del lenguaje no se adapta a tu particular visión de la estética a la hora de identidar el código.
Tomate las cosas menos en serio.

Me recuerdas a un amigo que era fan de Masserati y cuando alguien hablaba bien de Ferrari se le caiga el mundo encima. Acababa insultando a todos los ferraristas porque, desde su punto de vista, iban de güays, creyéndose mejores y que molaban más.

AlphaFreak

La distribución Anaconda también incorpora la MKL a partir de la versión 2.5.

https://www.continuum.io/downloads

g

#46 Si, yo creo que al final javascript no ha conseguido 100% una solución a este problema de los callbacks.

Por cierto, #12 a nombrado al stack de Anaconda, otro proyecto muy chulo que estamos empezando a utilizar en la empresa es Jupyter (www.jupyter.org)

alcornoque

#47 Entendí mal. Primero pensé que sois los de Anaconda, luego los de Jupyter, releí tras no encontrar la localización de los proyectos y ya me enteré. Parece chulo, aunque es un área de desconocimiento para nuestras empresas.

g

#49 Jajaja no, no soy de Anaconda ni de Jupyter solamente empezamos a utilizar Jupyter hace poco y Anaconda ya te da todo hecho para utilizar Jupyter sin estar instalando paquetes con Pip.

Yo creo que en España, salvo contadas empresas (ojo no quiero menospreciar a nadie) estan 3 o 4 años atrasadas tecnológicamente de lo que se hace en otros sitios y creo que es bueno para nosotros los desarrolladores tocar estas cosas aunque sea de forma autodidácta, porque al final la tecnología no tiene barreras y todo llegará (un poco más tarde, pero llegará)

alcornoque

#50 Estoy de acuerdo. Sí, cuando me refiero en mis empresas no es porque no lo conozcamos porque no damos a más, sino que no nos dedicamos al sector de las "analíticas" y estudios. Estamos en otros sectores, y ahí también estamos con tendencias rara vez vistas en España.

También te digo otra cosa, no muchas veces lo último es lo mejor. Hay cosas muy testadas difícilmente superables en un tramo tan corto de tiempo, se nota mucho "hype" sobre todo en los más jóvenes.

Por otro lado, estar en la punta de lanza es algo duro, pero cuando se está en algún ámbito es todo gloria. Nosotros actualmente estamos desarrollando una librería en JS para procesamiento de PDF que no existe en el mundo (PDFKit y PDFMake vienen a ser 1/3 de lo que ahora estamos creando), al menos que se sepa (a no ser que lleven el proyecto sin publicar, como nostros). El problema está en que hay tantas variantes, tecnologías y librerías (no solo en JS) que es prácticamente imposible estar al día, y muchas veces es importante echar el freno y pensar fríamente.

Ánimo.

g

#51 Entiendo a lo que dices del hype, está claro que no se puede estar a la última en tecnología porque es una locura, pero en España por ejemplo ¿cuántas empresas conoces que utilizan CouchDB, Redis, Cassandra, Firebase o MongoDB mismamente? ¿Cuántas conoces que utilicen node.js, angular-js, django o react/react native?, ya no hablemos de utilizar Hadoop o Apache Ignite... la mayoría no sale de sus PHP, Java, MySQL y Oracle.
Se que no tienen nada que ver los propositos de dichas bases de datos... pero me apuesto a que si tienen la oportunidad de hacerlo por X requerimiento seguirán utilizando MySQL para guardar las sesiones (por nombrar un escenario que lo he visto con mis ojos).

alcornoque

#52 Sí, lo comparto. Aunque no sé las metodologías y estudios que pueden tener a sus espaldas como para querer mantenerse siempre en lo mismo. Solo lo entendería si tienen un sistema más que probado, las ventajas no son tan fuertes como los inconvenientes al saltar a una nueva tecnología y llevan años desarrollando y entendiendo alguna de las tecnologías anteriores. Por ejemplo, yo a excepción de dos plataformas internas que usamos, ya solo uso PostGreSQL a nivel de BBDD relacional. Ya puede venir MySQL con algo muy potente y que no tenga PostGres, que me costará muchísimo salir de mi entorno (sobre todo porque tengo ya un gran conocimiento y software específico para el mismo). Imagino que esto les pase al resto con sus Java y demás.

Y pensando como "empleador", encontrar un administrador y desarrollador para Redis es más complicado que uno para MySQL, de ahí que si me baso en "ejercitos" junior lo tengo más fácil.

Tampoco sé como será en las grandes urbes, al menos por la zona norte no he visto mucho movimiento. Nos hemos acostumbrado a tener rivales de perfil muy bajo a nivel tecnológico (conocimientos), otra cosa es la capacidad que tienen (inversiones, plantilla, proyectos).

Por cierto, Firebase no la conozco, e Ignite solo de oídas.

m

#31: Es que hay un problema: soy IT industrial, no informático de carrera, pero no por ello dejo de necesitar la programación.

Para quienes tenemos un nivel intermedio, Python es más un incordio que otra cosa.

D

#38 Python se utiliza para enseñar a programar, si crees que tienes un nivel intermedio te estás sobreestimando.

Un recién titulado con grado y master en informática lleva programando 5 o 6 años todos los dias y es un principiante.

Un intermedio es alguien que lleva 10 años programando y se maneja con varios lenguajes y varios paradigmas completamente distintos. Para un intermedio Python es una maravilla.

Toranks

¿Trabajo gratis, decían?

e

Perdón por mi ignorancia pero por que intel tiene que sacar una distribución python para incluir la librería, no sería mejor liberarla en la distribución general, en el articulo no lo indican el por que, supongo que sera algún problema de licencias. De todas formas los desarrolladores de pruebas tendrán que ser en proyecto muy especializados que hagan uso intensivo matematico, supongo que en simulaciones y cosas parecidas, no en un uso generalista.

D

#5 seguramente sea un binario que aproveche las instrucciones del procesador, y muy probablemente no las hayan liberado. La historia de siempre.

D

#5 "...por que intel tiene que sacar una distribución python para incluir la librería..." joe porque va en sus microprocesadores, unos billones de ellos vendidos ... asi que le interesa, no son unos apaticos de esos sin motivacion

e

#17 Ya lo se pero que me refería a por que no liberar directamente la librería optimizada para sus procesadores con los binarios correspondientes, lanzar toda una distribución del lenguaje para incluir una librería me parece exagerado, claro esta que supongo que no sera solo esa librería la que incluira.

m

#55: Me refería a otro programa más orientado a ingeniería.

alcornoque

#41 Con promises aparecen las Pyramid of Doom.

D

Intel lo que deberia hacer es liberar los drives de sus atoms para para poder poner nuevos ROMs en los telefonos y tablets

alcornoque

#33 A mi siempre me pareció muy fácil de asimilar. Otra forma más, como en lisp (lexical/dyn binding) u otros modelos (box y borrow, en rust). Sigo pensando que JS es de los lenguajes más sencillos que hay (superado por Python y algunos otros en sencillez).

Ahora al menos let y const son "nativos", porque durante más de un año disminuían totalmente el rendimiento al usar babel/6to5/etc (salvo en navegadores, básicamente).

Arcueid

Eso cierto, sería ideal que todos los desarrolladores que sacan frameworks, librerías y demás se amoldasen a la experiencia y necesidades de muchos (ojalá, en cierto modo ;)) y sacasen bindings para los lenguajes que usamos en nuestros proyectos versiones para diferentes OSs, etc. Claro que nos facilitaría la vida, y algunos dan muchas alternativas. Pero a los que no les interese ir por ahí, poco se puede hacer.

Yo me quedo con esta frase de un tipo que dice haber trabajado durante mucho tiempo en programación y saber 20 lenguajes: "What I discovered after this journey of learning is that it's not the languages that matter but what you do with them. Actually, I always knew that, but I'd get distracted by the languages and forget it periodically. Now I never forget it, and neither should you.

Which programming language you learn and use doesn't matter. Do not get sucked into the religion surrounding programming languages as that will only blind you to their true purpose of being your tool for doing interesting things."

m

Que lancen una versión para node.js, que es mejor de programar en mi opinión.

m

#3: No digo que no se pueda mejorar, pero para escribir código lo prefiero 1000 veces más a Python, lenguage que no trago con sus sistema de estructuración basado en la indentación.

D

#3 El ámbito de las variables de javascript es para tirarse de los pelos.

megusta

#28 Eso esta arreglado con let y const. Tampoco es que fuera tan horrible, simplemente no se enseñaba como funcionaba y el comportamiento sorprendía al que venía de un lenguaje más "estático".

PythonMan8

#1 claro, los cientos de miles de matemáticos y datascientists que ya están habituados a las herramientas que citan mejor que cambien a node.js porque a mcfgdbbn3 le gusta mas.

Si dices que algo es mejor explica detalladamente el por qué. El "a mí me gusta más" no es un por qué.

m

#18 estarían pensando en que o lo dejas bien indentado o no funciona. Así al menos el que venga detrás lo leerá bien.

m

#22: Peor aún: lo dejas bien indentado o funciona mal sin avisarte de que hay algo que está mal.

Y aún así, yo dudo de secuestrar la libertad del usuario de escribir mal el código, puesto que a veces puede interesarte añadir un IF con idea de retirarlo después. ¿A indentar y desindentar todo sólo para hacer una prueba?

a

#23 Siguiendo el sistema de indentación y las recomendaciones de estilo del PEP8, ganamos dos cosas a mi parecer muy importantes: tener una idea clara de cómo tiene que "lucir" el código (perfecto para los que queremos las cosas claras) y que el que venga detrás lo pueda leer con facilidad. Cuando trabajas con proyectos de gran tamaño en el que participan diferentes programadores, facilita muchísimo el trabajo.
Además, cualquiera que programe en otros lenguajes de forma mínimamente correcta, debería indentar adecuadamente todas las líneas de código. El único caso en que podría ser una molestia sería el que comentas del "if" y, que quieres que te diga, llevo años programando en Python y va a ser que no le veo el problema. Pocas veces debo hacerlo y para los 2 segundos que me lleva con cualquier editor indentar en bloque, no sé yo. Creo que a este lenguaje se le podrían criticar otras cosas, pero precisamente esto...
P.D.: El positivo ha sido por error (tampoco quería votar negativo, sólo responder).

PythonMan8

#18 precisamente que sea un incordio añadir if a un nivel superior es una de las grandes maravillas del lenguaje. Si no entiendes el por qué tienes mucho que aprender. Simplemente no añadas if a nivel superior, piensa como apañartelas ya que (casi) siempre es posible. Como norma trata que tu código no tenga más de un if y a lo máximo dos niveles de if (pero los 2 if-if como excepción, no como norma).

D

#7 Ssi todavía no les hemos sacado del todo del Fortran.

kverko

#7 prueba con julialang.org

Intel sacó su librería para Julia hace 2 o 3 años: https://software.intel.com/en-us/articles/julia-with-intel-mkl-for-improved-performance

gustavocarra

#1 R que R

m

#9: El módulo de python de cierta aplicación de modelado sólido 3D libre ocupa sola 150 megas.

D

#16 Nos ha jodido, como que no tiene ni comparación. Blender no solo modula, también sirve como editor de vídeo, renderizado raytracing y vete a saber qué más.

Nitros

#1 Es broma. ¿No?

m

#11: Lo que para mi si que es broma es basar la estructura de código en el número de espacios que hay delante de cada línea.

Es que me parece... en fin, que no me hago a ese tipo de programación.

Si que admito que JS tiene algunos defectos, especialmente en mi opinión mezclar números y cadenas de texto sin una conversión, pero en lo demás lo veo mejor.

g

#15 Desde el mas profundo respeto te lo digo, prueba python un tiempo, prueba Django como framework web y verás que el tema de las indentaciones a la larga y en proyectos con muuucho código se vuelve una bendición.

PD: Ahora mismo estoy haciendo un proyecto django-rest-framework y backbone.js... y donde casualmente tengo código spaghetti (en realidad no es spaghetti pero compándolo con el de python si lo es) es en la parte javascript

EDIT+PD2: Y ya ni habla de callback hells y demas infierno insufrible (si, ya se que hay promises...)

D

#1 Javascript mejor de programar? Vaya, es la primera opinion a favor de ese lenguaje tan bien cuidado.

D

#1 Javascript no se considera ni programación, se considera iniciación a la programación.

m

#26: ¿Y qué es Python entonces, que basa su estructura en repetir carácteres?

deverdad

#29 La estructura de indentación de Python sigue un algoritmo bastante sencillo pero suficientemente complicado para que los que no deberían hacer programas complejas se quedan con Javascript.

D

Cuando pueda modificar windows para adaptarlo a mis necesidades os ayudaré a probarla, campeones