logistark

#c-18" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2622277/order/18">#18 Java es "interpretado" pero generalmente, una aplicación que esta en ejecución en la JVM al final quedan compiladas a máquina las partes más usadas con JIT. Fíjate que al final Android va a volver a compilación JIT.

Y lo de que nadie sabe hacer compiladores, es de una ignorancia tremenda. Esos compiladores, Java, Scala, Haskell, C#, F#, Python, Clojure, Rust, Swift, Javascript, etc... Son de una complejidad mucho mayor que compilador más complejo de C. De hecho, muchos de los lenguajes que nombro compilan a la LLVM y luego esta se encarga de optimizarlos para máquina.

Y te equivocas con lo de que estos lenguajes al contrario no capan los avances, sino que permiten aprovecharlos mejor. El caso de uso más común hoy en día es la programación multinucleo. ¿Como serías capaz de aprovechar un multinucleo con threads de C sin interlocks, sin corromper datos, y además aprovechando al máximo el procesador o cluster? Esa tarea en un lenguaje ensamblador o en C en un programa grande es muy muy difícil. Sin embargo, nos hemos dado cuenta ahora, que el paradigma de la programación funcional encaja mejor en este tipo de sistemas, y todos estos lenguajes soportan Higher Order Functions. Nos hemos dado cuenta, que si hacemos los datos immutables, los dividimos/particionamos y les aplicamos funciones de transformación, y agregación podemos aprovechar eficientemente múltiples núcleos/equipos y además hacerlo de una forma en la que se puede razonar mejor con lo que estamos programando. Consiguiendo no solamente mejor rendimiento, sino que además conseguimos tener menos errores en el código.

Y ahora en 2016, 39 años después desde que el creador de Fortran John Backus en su discurso de cuando gano el Turing abogaba por el uso de un estilo funcional de programación. Ojo, antes de tu 8088 naciera.

D

#21 Una pregunta: ¿Existe LLVM para Python?
Estaría de PM

logistark

#25 hombre, si buscas rapidamente en google encuentras esto https://github.com/dropbox/pyston

D

#26 Si, pero me gustaría que alguien de por aquí, me contara su experiencia con este tipo de compiladores JIT en Python.

logistark

#27 ni idea, también estaba Jython. Pero no se yo si realmente se puede hacer JIT con Python o cualquier lenguaje dinámico. En un lenguaje con tipado estático supongo que se pueden hacer asunciones a la hora de optimizar a código máquina. Del tipo que determinada variable va a ser siempre un entero y puedas dejar esa parte compilada a código máquina. En cambio en un lenguaje dinámico mi impresión es que ese tipo de asunciones no se pueden hacer ya que en debido a alguna condición esa variable podría pasar de comportarse como un entero a una cadena de caracteres. Aunque supongo que existirá alguna técnica para que se pueda hacer de alguna forma.

HORMAX

#21 LLVM, precisamente VM es la abreviatura de Virtual Machine.

Eso no son compiladores, los compiladores generan lenguaje maquina directamente ejecutable, esos son pseudocompiladores que generan un lenguaje intermedio de pseudocodigos pero que sigue necesitando una máquina virtual, que ocupa memoria para interpretar los pseudocódigos, algo que consume tiempo de maquina..

Fíjate si es viejo que ya en la época del Basic se utilizaban y se les llamaba pseudo-compiladores.

Si, desarrollar y mantener código en C es jodido, nadie lo niega, pero aprovechar las nuevas funcionalidades a nivel hardware se hace precisamente en C que es donde eso se hace, en los sistemas operativos, los programas mas grandes y complejos que existen.

Lo dicho no se ha avanzado nada y se ha retrocedido mucho. Los únicos beneficiados, los vagos que quieren resultados rápidos y espectaculares con el mínimo esfuerzo posible.

logistark

#28 la LLVM da un backend para compilar Ahead of Time o Just in Time. Con o sin Garbage Collector. Es decir, tu puedes definirte un lenguaje y crear un compilador que compile a lenguaje intermedio de LLVM. Y LLVM ya se encarga de compilarlo a código máquina. Y de ahí ya obtienes un binario con tus unos y ceros para que se ejecute directamente. Y ahí esta el compilador https://en.wikipedia.org/wiki/Clang. Que compila C, C++, Objective-C, Objective-C++, OpenMP, OpenCL y CUDA a código máquina usando LLVM. Es el compilador por defecto de FreeBSD, MINIX. Se usa también para compilar con Xcode para dispositivos iOs y Mac Os X. Pero vamos como es una abreviatura de Virtual Machine sera una Virtual Machine.

Pero bueno, una "máquina virtual" tiene que ser más lenta ¿no? Pues no. http://www.javaworld.com/article/2076593/performance-tests-show-java-as-fast-as-c--.html?page=2

En fin, que hablas de cosas que no tienes ni puta idea. Estudia compiladores, infórmate y aprende.

logistark

#8 puede que venga porque el lenguaje en el que esta escrito es Rust.

D

#18 Ahí te he visto fino

logistark

Me parece una visión muy simplista de una rama de la ciencia, la computación, que no llega ni a los 100 años de historia. En comparación con las matematicas, fisica, biología, etc...

Es ahora cuando estamos empezando a darnos cuenta, de los isomorfismos que existen entre el lambda calculus, la lógica, la topología y la física cuántica. Todas ellas unidas a través de la teoría de categorías. http://arxiv.org/pdf/0903.0340.pdf
Evidentemente ahí existe algo, que aún queda por ver que hay al fondo del todo.

Además que este tío intenta comparar la mente como si una computadora se tratara, cuando en realidad lo que hay que estudiar un modelo lógico/computacional que sea equivalente. Me parece muy aventurado decir esas cosas.

logistark

#170 #161 hombre a esta gente, cuando le preguntas. Son del tipo, ¿Por qué tengo que pagar con mis impuestos, la sanidad de otras personas?. O "Me gusta el modelo sanitario de EEUU, funciona muy bien".

ChukNorris

#186 . Son del tipo, ¿Por qué tengo que pagar con mis impuestos, la sanidad de otras personas?.

¿Eso que tiene que ver con las subvenciones agrícolas o el proteccionismo estatal?

e

#188 No tiene argumentos y tiene que usar los chascarrillos.

logistark

#146 las subvenciones agrícolas, es medida proteccionista. Para evitar que entren al país productos competitivos de fuera del país. Estos que tanto hablan de liberalismo económico y tal, y poniendo siempre de referencia a EEUU como modelo a seguir. Resulta que EEUU es uno de los países que tiene unas subvenciones agrícolas brutales. Al punto que impide el desarrollo de los países a los que exporta alimentos, ya que son artificialmente bajos.

Por eso, las subvenciones de las renovables impides que se compre petroleo para producir energía o uranio. Materias primas que no tenemos en España. Una materia que si tenemos en España es luz solar y buen tiempo y aquí estamos desperdiciandola. Tan absurdo como el impuesto al Sol.

No se tu, pero yo para que se compre petroleo y se lleve el jeque árabe de turno. Prefiero que se quede en España. Y es cierto, que las grandes eléctricas también se llevaron lo suyo. Pero las pequeñas/medianas empresas, también vieron una oportunidad, y el gobierno con su visión cortoplacista se cargo a esas empresas.

ChukNorris

#159 lol ¿Qué liberal pone de ejemplo a EEUU?

e

#159 Como dice #161 ¿que liberal pone de ejemplo EEUU?

Por otra parte a mí me da igual petróleo, que energía solar ... lo que me sea a mí más rentable que soy el que pago.

logistark

#170 #161 hombre a esta gente, cuando le preguntas. Son del tipo, ¿Por qué tengo que pagar con mis impuestos, la sanidad de otras personas?. O "Me gusta el modelo sanitario de EEUU, funciona muy bien".

ChukNorris

#186 . Son del tipo, ¿Por qué tengo que pagar con mis impuestos, la sanidad de otras personas?.

¿Eso que tiene que ver con las subvenciones agrícolas o el proteccionismo estatal?

e

#188 No tiene argumentos y tiene que usar los chascarrillos.