Hace 13 años | Por --86917-- a lwn.net
Publicado hace 13 años por --86917-- a lwn.net

Ya es oficial: el compilador GCC está cambiando a una implementación en C++. En el anuncio oficial se comenta que "el GCC Steering Committee y la FSF han aprobado el uso de C++ en el propio GCC. Por supuesto no hay razón para usar características de C++ sólo porque se puede. El objetivo es hacer un mejor compilador para los usuarios, no hacer un código base en C++." Visto en http://softlibre.barrapunto.com/article.pl?sid=10/05/31/1540255

Comentarios

k

#16: es Canal Plus Plus: es justo como el Canal Plus, pero con doble de Plus. No sé si mesplico. El GCC es en inglés el cambio climático, Global Climate Change.

D

#32

Un buen compilador tiene todo eso en cuenta y puede optimizar más que nadie "a mano" hoy día.

Hay cosas que el compilador no puede hacer por muy bueno que sea y por ello se continúan haciendo a mano, un ejemplo lo tienes en el encoder x264 con partes esenciales escritas directamente en ensamblador.

B

#32 El ultimo párrafo no es cierto del todo. Un compilador bueno optimiza para la plataforma (x86 por ejemplo) pero no para una máquina con una configuración en concreto (PIV 2.0Ghz con X de caché). Obviamente esto último es muy específico.

Y los compiladores muchas veces se pasan de listos y la arman optimizando. Me ha pasado varias veces ya.

Y luego la velocidad de ejecución de un mismo código intensivo en CPU compilado en C y en C++ son bastante diferentes.

D

#31 #32 Haiku OS está escrito en C++ http://es.wikipedia.org/wiki/Haiku_%28sistema_operativo%29 ... y lento no es que sea, vamos, está basado en BeosR5, así que directamente vuela.

difusion

#38 por cierto, el que documenta esa pagina soy yo

pawer13

#38 Yo hablo exclusivamente del kernel de Linux, donde Linus manda. Su opinión de C++ la tienes aquí:
http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918

Yo no comparto parte de sus opiniones, pero como soy "javero", supongo que es normal: para mí la POO significa comodidad y una forma de acercarse a los problemas intuitiva, aunque el problema de Java es el mismo que el de C++ o PHP: hay tanta gente que dice que es programador porque ha hecho un curso de 3 meses en el INEM o alguna academia que para encontrarte código decente tienes buscar mucho.
Obviamente no se me ocurriría hacer en Java un SO, pero un compilador sí se puede hacer en Java. De hecho algunos pinitos he hecho, con JFlex. Obviamente es más lento que un compilador en C o C++, pero realmente el tema de velocidad en ciertos casos es indiferente: un compilador en Java en un PC hoy día tardará bastante menos en compilar una aplicación que un compilador equivalente en C en un PC de hace 2 años.

D

#9 Lo sé , quería picarte para que lo compilaras .

Vauldon

#4 #6 #9 Si, es una broma, pero si no lo decimos podemos reirnos mas viendo a la gente despotricar

Vauldon

Hablando en plata, necesitamos sangre nueva, y para atraerla sin decirlo, vamos a usar un lenguaje ideado como una broma.

Me ha costado encontrarlo, la habia leido hace tiempo en otra pagina, pero está poco extendido... http://www.redcientifica.com/gaia/reir/cpp_c.htm

D

#2 si fuera de verdad sería la bomba

D

#2, #4, #5: Es una broma, aúnque a veces la realidad supera la ficción.

D

#6
Sí, ya sé que es una broma, lo había captado. Sobre todo por la pregunta final:

¿Crees que esta entrevista es mentira?

Es mentira Es verdad

Pasando el ratón por encima de cada vínculo ves si es verdad o mentira.

D

#3 Dicen que un Alien Arena compilado con LLVM consiguió 40 FPS a 800x600 en una cpu de 2GHZ sin aceleración gráfica alguna por parte de la tarjeta ... ojala lo portaran a Haiku , puesto que ahora no hay OpenGL por hardware, hasta que porten los drivers libres de Linux . Los de ATI están en proceso, y ahora andan con Nvidia/Nouveau+Gallium .
#6 No es broma, un binario en C++ de un jodido Hello World me pesa mas que si lo escribo en C.

D

#2
Me he leído la entrevista, está muy bien

prejudice

#2 Me he reido mucho.
La verdad es que hay que saber cuando hay que usar la navaja (programar C), y cuando la granada (programar en C++), por que si usas C++ solo por que es orientado a objectos y el proyecto es suficientemente pequeño para hacerlo en C, probablemente la granada te acabe explotando en las manos.
En cualquier caso yo recomiendo usar una AK47 ...quería decir usar python, y como mucho realizar en C / C++ las partes que necesites mucho rendimiento (accediendo a esas partes desde código python atraves de wrappers)

Fingolfin

LLVM presiona....

Patxi_

Es bastante interesante el hilo de Barrapunto. Es de esas veces que piensas que Barrapunto vuelve a ser lo que era.

Einash

POO rules

y

#17, no le veo la gracia. Estoy con Sir Clive Sinclair:

"Nuestras máquinas eran ágiles y fuertes. Hoy en día se abusa de la incorporación de memoria a causa de las exigencias de software pero es algo completamente inútil: hay que esperar a que los malditos arranquen, que inicien, que carguen programas residentes, ¡Es un caos absoluto!"

http://www.fayerwayer.com/2010/03/sinclair-zx80-la-revolucionaria-computadora-de-mesa-cumplio-30-anos/

Donde esté el código máquina que se quite la POO.

La abstracción está bien para maximizar los beneficios: no requiere formación especializada.

Para sacarle el jugo a una máquina, hay que conocer su arquitectura. Y eso requiere personal especializado. Sólo así se consiguen sistemas 99.9% failsafe (por eso ahora no lo es ninguno).

takamura

#26 Para sacarle el jugo a una máquina, hay que conocer su arquitectura. Y eso requiere personal especializado. Sólo así se consiguen sistemas 99.9% failsafe (por eso ahora no lo es ninguno).

¿¿¿A prueba de fallos con ensamblador??? Me lo explique.

y

#27, dónde he puesto yo que haya que saltarse el debugging...

takamura

#29 Yo tampoco he dicho que haya que saltárselo. Lo que he dicho es que si esperas hacer un programa mínimamente complejo en ensamblador a prueba de fallos, lo llevas claro.

T

#26 tienes mucha razón, pero tampoco podemos ponernos con código máquina a machete hoy en día salvo casos puntuales, concretos o específicos (consolas, dispositivos con pocos recursos o limitados a una función, etc...).
El problema es que quién se ha peleado con lenguajes de 'bajo nivel' y va usando los de 'alto', máquinas virtuales o frameworks... sabe que éstos por debajo están hechos sobre los de niveles inferiores e intuye como estarán organizados y por tanto puede minimizar el impacto de uso de recursos, errores, etc... junto con los conocimientos teóricos que haya podido aprender, más de arquitectura que comentas.
Cuando alguién sin conocimientos teóricos y poca experiencia entra de lleno usando frameworks y demás es indudable que va a gastar muchísimos más recursos de la máquina donde ejecute su embolado, además del triple de errores.
Entender la POO, no ya a un nivel alto sino básico, tampoco es sólo menester de gente no especializada. Me remito a lo que he dicho en los párrafos anteriores.

B

#25 Menéame no creo que sea un foro de temática general. Es un foro de temática que interesa a los participantes. Si esto aparece en portada es porque interesa y no hay más.

#28 Con el C se puede programar ajustando bastante al hardware, teniendo en cuenta el tamaño de la caché para algunos algoritmos y cosas así, además de poder insertar de forma nativa código ensamblador.
Puedes programar normal todo el programa y en una segunda vuelta buscando eficiencia pasar algún algoritmo pesado a ensamblador si es un algoritmo fácil claro lol

t

#26 Pero qué ida de olla!!!!!!!

¿Trabajas?¿En qué? Ya me parece gili algo muy común en españa como que alguien que solo trabaja con php denoste java o este .net o este C+ o este yo que sé como para que encima alguien que supongo trabajará con sistemas en tiempo real o algún tipo de sistema embebido denoste..... LA POO Y LA ABSTRACCIÓN.

y

#36 no lo denosto. Digo que se hace un mal uso. Claro que para problemas complejos no se trata de estar reinventando la rueda cada día. Pero de ahí a crear programas arrastrando componentes en entorno gráfico...

Y sí. Lo de conocer las plataformas al detalle obviamente se aplica con sistemas empotrados... Como para conocer a fondo el hardware de cada tarjeta gráfica por poner un ejemplo.

Del Java y el .Net también se hace un mal uso. Y del flash. Y de la web en general...

Querer convertir el navegador en plataforma multi-purpose is a no-no. Y eso que no está saliendo del todo mal...

Definitivamente, me gustaba más la filosofía Sinclair.

Y con esto aún mucho más:

http://www.dailymail.co.uk/femail/article-1195788/Beauty-boffin-Why-young-lapdancer-finally-decided-wed-millionaire-Sir-Clive-Sinclair.html

Tipo listo, sí señor...

pawer13

#15 En negrita y todo... ¿catalano-parlante?

D

#22: Se me ve el plumero....

lawprier

Por fin punteros que una vez declarados son NULL. :_)

pedrobotero

a mi me la suda, yo utilizo linux, oh wait...

D

El próximo paso es el kernel.
C++ conquista el mundo muhahahah.

D

mierda!

orvtech

Me hule un poco a elitismo dolido

D

April Fools...

D

Pero si se utiliza C++ en el compilador de C, éste ya no será autocompilable...

D

#14: Supongo que será un compilador de C i C++, sino no tiene sentido.

D

Viendo los votos que tiene esta noticia 295 te das cuenta de la clase de gente que lee meneame. Porque si esa noticia la diera algun periodico el 99% de los lectores pasarian de largo o no se enterarian de lo que es.
En resumen meneame.net es una web de frikis del ordenador que adoran al PSOE.

Patxi_

#42 Entonces ya no te contamos que al que ha votao irrelevante lo tenemos en una olla enorme con agua, puerros y zanahorias, que entonces no sé qué pensaras de nosotros.

Tarod

Cuanto freaky

k

#23: yo también trabajo a veces con estas cosas, aunque es cierto que en un foro de temática más o menos general una discusión técnica está un poco fuera de lugar, sea sobre GCC, sobre la carboxilación de la hemoglobina o sobre los cátaros. Pero bueno, esto es mnm, que si quieres lees y si quieres no.