Hace 2 años | Por ccguy a genbeta.com
Publicado hace 2 años por ccguy a genbeta.com

¿Nos hemos preguntado alguna vez qué lenguaje de programación es más sostenible? Ciertamente, no es un dato que estemos acostumbrados a plantearnos a la hora de optar entre C# y Java, entre Rust o Pascal, o entre JavaScript y Python, por ejemplo. Factores como bajo/alto nivel, cantidad de documentación disponible o la disponibilidad multiplataforma sí, pero ¿gasto eléctrico? …parece raro incluso planteárselo.

Comentarios

D

#14 casi me atraganto lol lol

D

#14 no uses luz.tolower()

m

#23: Es java, en realidad la función es esta:
realWorldTM.physicalUniverse.mainUniverse.galaxias.víaLáctea.sistemasPlanetarios.sistemaSolar.planetaTierra.
(sigue) países.España.madrid.AvenidaDelPwnage.num54,piso4.puertaC.habitaciónDePwnencio.servicios.luz.toLower()

Nota: Pwnencio es la persona de la factura de la luz de IberTROLLa: Autoconsumo: Alemania también cobrará a las instalaciones renovables/c15#c-15

Vichejo

#14 Ya te digo la peña que lo flipa con que Java no sea el mas rápido debieron aprender a programar en los 80

pkreuzt

#28 Minetest (en realidad es solo un motor, sobre el hay kilo y medio de juegos y mods), Voxelands, y había otro más que no recuerdo el nombre Todos ellos open source.

pkreuzt

#26 No se de que me hablas, los juegos que conozco de ese estilo son en C o C++

ronko

#27 Bedrock edition supongo.

D

A ver si se enteran los script kiddies

Shotokax

Ensamblador será más verde digo yo.

¿No dicen que Rust tiene mejor rendimiento que C?

¿Java el quinto? ¿Qué se me está escapando?

e

#3 Te me adelantaste #2

jonolulu

#5 Afortunadamente con Flash y los pop ups supomos reaccionar a tiempo antes del colapso

pkreuzt

#6 No se que te diga ¿eh? El otro día en una página de descargas se me abrieron como 12 o 15 pop-ups y otras tantas pestañas nuevas (y esto no es broma).

ronko

#c-5" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3585845/order/5">#5 Pero gracias a Java sabemos sobrevivir en un mundo de cubos con criaturas #$#&* que explotan y te jod digo fastidian todo.

D

#c-26" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3585845/order/26">#26 Criaturas #$%* que explotan es el Nethack.

AdaSH

#5 Es curioso que Android sea un Linux comunicándose con una capa de Java, y los teléfonos móviles tienden a consumir la menor cantidad de energía posible.

tranki

#2 Depende. Si estamos hablando de procesadores pequeños monotarea, seguro que sí.
Pero si hablamos de procesadores grandes (PC) hay que conocer muy bien la máquina para saber optimizar todos los recursos, multitarea, etc.
Y si hay que entrar en el Kernel para acceso a entradas / salidas en ensamblador, que Monesvol nos ayude.

Desde luego un ensamblador bien programado sobre una CPU bien conocida, es lo más verde, rápido y compacto que hay, pero por encima en segundo puesto está c, sin duda·

Shotokax

#8 por lo que he visto en Google; hay análisis que dicen que C está por encima de Rust en rendimiento, pero otros parece que indican lo contrario. Por ejemplo:

https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust.html

s

#8 Tenemos en cuenta el tiempo que necesita el programador para programarlo?

Estoy seguro de que esa tabla es inversa si se tiene en cuenta ese factor.

En todo caso, el lenguaje más verde sería aquel cuyo tiempo de programación + total de ejecuciones sea menor.

Shotokax

#16 me había parecido leer eso en algún lado, pero no estaba seguro. Nunca he hecho nada con Rust.

d

#2 Con JIT los programas de java pueden ser tan rápidos como código nativo, luego ya depende de lo óptimo que sea el código creado por cada compilador. En cualquier caso la ejecución en una JVM sin JIT nunca va a ser peor que la ejecución de lenguajes interpretados.

Shotokax

#37 puedo entender que lleguen a ser tan rápidos como código nativo; pero de ahí a que todos los lenguajes de compilación nativa sean más lentos que Java con excepción de cuatro de ellos va un trecho que me cuesta comprender, si bien no soy un experto en el tema, por eso preguntaba si se me escapaba algo.

A

Un programa bien hecho en C siempre será más eficiente que otro programa bien hecho en cualquier otro lenguaje.

Pero un programa mal hecho en C puede ser más ineficiente que bien hecho en otro lenguaje, y resulta que hacer programas bien hechos es más fácil en otros lenguajes que en C

verocla

#20 Amo el C

m

#45:

Eso no es cierto. Un programa informática si está en uso requiere mucho mantenimiento. Tanto las necesidades del usuario son cambiantes, como el resto de programas y sistemas con lo que se integra.

Sí, meter animaciones que nadie pidió, salvo algún diseñador ocioso.

Llamamos mantenimiento a modificar un programa para que tenga un funcionamiento diferente. Eso generalmente se hace a través de refactors. La reescritura completa solo es necesaria cuando la deuda técnica en el programa es tal, que impide refactorizarlo.

Sí, y de paso meter la suficiente morralla para hacer que una aplicación que ocupaba 10 megas pase a ocupar 400, no sea que a gente renuncie a comprarse un teléfono nuevo, o mantenga su ordenador más de 6 años. ¡Que le den al medio ambiente!
Y por supuesto meter animaciones, que el procesador no puede bajar del 100%.

Sólo los programas que se actualizan sobreviven, yo creo que hay que escuchar lo que las empresas y personas demandan, no lo que a uno le vendría bien.

Sí, voy a dejar de usar un programa porque no me haga animaciones estúpidas que yo nunca pedí.
¡O búsquedas indexadas en tiempo real, así no necesitaré saber qué es un directorio y liberar el uso de una neurona!

Los programas informáticos no suelen ser mas o menos eficientes en relación a la tecnología con la que están construídos. Un compilador o una máquina virtual son formas mucho mas eficientes de optimizar, por que optimizando en un sitio, optimizar todos los programas. Y cada nueva arquitectura solo requiere cambios en el compilador, no la readaptación de millones de programas

¿Y si mantenemos las arquitecturas o hacemos que estas sean retrocompatibles?
¡No, no, de ninguna manera, puesto que la gente podría renunciara comprarse un ordenador o teléfono nuevo! Luego que le den al medio ambiente, que arreen las generaciones venideras.

Las computadoras con mas memoria (espacio) permiten ejecutar multiples programas interactivos a la vez sin que se vea afectado el rendimiento. Además permiten ofrecer funcionalidades modernas, como la busqueda indexada en tiempo real, lo cual ha permitido simplificar la gestión de ficheros eliminando el concepto de directorio ante el usuario final.

Vale: ¿Y si toda esa morralla se la dejas a los que no conocen lo que es un directorio y a mi me dejas una aplicación que no me obligue a cambiar de teléfono? Porque... ¿Sabes? Prefiero gastar el dinero en otras cosas que me aportan más satisfacción personal que la tecnología. Y sí, digo morralla porque son funciones que a mí no me aportan nada, sé usar un ordenador, sé lo que es un directorio, lo que es una búsqueda, lo que es un fichero... no necesito que me traten como si mi CI no pasase de 60. También sé lo que es una broca de un taladro o lo que es el detergente en una lavadora y para qué sirve el centrifugado. Yo prefiero saber cómo funcionan las cosas y hacer yo las cosas, sobretodo si eso me permite ahorrar al medio ambiente unos cuántos teléfonos móviles, ordenadores y energía.

Y lo digo en serio, no necesito que al enviar un fichero este haga un movimiento como si se fuera a algún sitio... ya sé lo que es enviar un fichero, y cuando lo envío tengo claro lo que ocurre.

Además: ¿Quién te ha dicho que la persona no prefiera tener menos RAM, pagar menos por ella, consumir menos batería o electricidad de la red, tener menos calor en su habitación...? Ah, que así ponemos un aire acondicionado... que nos estábamos escaqueando...

¡Viva el despilfarro, muerte a la Tierra!

e

Hombre no me he leído el artículo pero se debe referir a lenguajes de programación compilados y/o interpretados porque si no me da a mí que programar en ensamblador es bastante más "verde"

ccguy

#3 ni de coña escribes tú nada en ensamblador más eficiente que un compilador actual

e

#11 no se habla de eficiencia se habla de energía necesaria para ejecutar código.
Y en cualquier caso todo dependería de lo que necesites programar... La forma más eficiente de explotar las microinstrucciones de un SoC sigue siendo en assembly...

Pero estaría de acuerdo que ningún lenguaje como ensamblador debería compararse con uno de alto nivel.

Tienen finalidades totalmente distintas.

ccguy

#15 un compilador de C genera automáticamente el mismo binario que puedas hacer tú con un ensamblador.

Lo que digo es que el código que genera un compilador es más eficiente que el que puedas hacer tú a mano.

Ya hace mucho que los compiladores superan a los humanos.

e

#21 assembly ni se compila ni se interpreta (menor gasto energético) así que según el titular (quién es más verde, o quién gastaría menos energía en "funcionar") sobre papel es assembly.

Todo esto otra vez sin tener en cuenta que no son lenguajes comparables y que assembly está totalmente acotado.

D

#31 Ensamblador sí se compila. Un fichero fuente escrito en asm no es ejecutable, hay que compilarlo.

D

También hay que contar la energía que consumen las personas que construyen los programas, y cuantos programas pueden construir en un tiempo determinado.

m

#1: Depende de si el programa lo ejecutas unas pocas veces o lo ejecutas miles.

D

#17 Todo programa tiene un mantenimiento, sobretodo si se ejecuta miles de veces.

m

#38: Sí, pero aún así es mínimo, y además, si el programa está bien hecho el mantenimiento es mínimo, salvo que llamemos "mantenimiento" a coger algo que funciona, reescribirlo desde cero y tener algo que en el mejor de los casos, funciona. O cambios de interfaz que nadie pidió antes y que habitualmente suelen empeorar las cosas respecto a las versiones antiguas. Pero claro... como el que tiene que pagar un ordenador o móvil nuevo es el usuario... ¿qué más da hacer un código con una birria de eficiencia?

Es que no es solo lo que consume el programa, es que si te obligan a comprar un ordenador con 1564646 gigas de RAM para que no se atasque, eso también tiene un consumo incluso cuando no usas el programa, el procesador al menos puede estar en un estado latente de bajo consumo.

D

#42

Sí, pero aún así es mínimo, y además, si el programa está bien hecho el mantenimiento es mínimo

Eso no es cierto. Un programa informática si está en uso requiere mucho mantenimiento. Tanto las necesidades del usuario son cambiantes, como el resto de programas y sistemas con lo que se integra.

salvo que llamemos "mantenimiento" a coger algo que funciona, reescribirlo desde cero y tener algo que en el mejor de los casos, funciona.

Llamamos mantenimiento a modificar un programa para que tenga un funcionamiento diferente. Eso generalmente se hace a través de refactors. La reescritura completa solo es necesaria cuando la deuda técnica en el programa es tal, que impide refactorizarlo.

O cambios de interfaz que nadie pidió antes y que habitualmente suelen empeorar las cosas respecto a las versiones antiguas.

Sólo los programas que se actualizan sobreviven, yo creo que hay que escuchar lo que las empresas y personas demandan, no lo que a uno le vendría bien.

Pero claro... como el que tiene que pagar un ordenador o móvil nuevo es el usuario... ¿qué más da hacer un código con una birria de eficiencia?

Los programas informáticos no suelen ser mas o menos eficientes en relación a la tecnología con la que están construídos. Un compilador o una máquina virtual son formas mucho mas eficientes de optimizar, por que optimizando en un sitio, optimizar todos los programas. Y cada nueva arquitectura solo requiere cambios en el compilador, no la readaptación de millones de programas

Es que no es solo lo que consume el programa, es que si te obligan a comprar un ordenador con 1564646 gigas de RAM para que no se atasque, eso también tiene un consumo incluso cuando no usas el programa, el procesador al menos puede estar en un estado latente de bajo consumo.

Las computadoras con mas memoria (espacio) permiten ejecutar multiples programas interactivos a la vez sin que se vea afectado el rendimiento. Además permiten ofrecer funcionalidades modernas, como la busqueda indexada en tiempo real, lo cual ha permitido simplificar la gestión de ficheros eliminando el concepto de directorio ante el usuario final.

Cidwel

No tengo tan claro, ¿Cuantos recursos gastamos en buscar como cojones pasar un array en una funcion? O en cómo convertir un char en un string?

s

#7 como decía mi abuelo. Una vez visto todo el mundo es listo.

Vamos que ninguno si ya lo tienes aprendido. Igual que todos los lenguajes. Una vez que sabes usarlos no gastas recursos en aprender a hacerlo.

¿O es que los otros se aprenden solos?

D

#7 fechas... Las putas fechas... Sobretodo entre cualquier lenguaje + sql y con servidores diferentes....

Cidwel

#22 dios no me hables... tantos años usando lenguajes para humanos que vas a C y lo ves todo involutivo. No sé cuanto hace que no programaba una función para convertir horas.

D

#33 yo empece con basic y dps pascal... No ha llovido ni nada jajaja

Edito: empecé con logo en el colegio.

l

¿Soy al único que me parece una idiotez de tema que sólo vale para que genbeta meta con calzador algo de tecnología que se sume a la moda de hablar de lo ecológico?

D

#40 No, de hecho es la mayor subnormalidad del mundo. Tan irrelevante como ponerse a calcular cual es la forma más eficiente de atarse los cordones por la mañana, cuando 20 segundos más de horno al calentar la pizza o encender la radio en el coche ya van a tirar por tierra todas las 'optimizaciones conseguidas' en cuanto a energía y giliecología.