Linus odia C++
por : Javier Pastor: 24 Sep 2007, 11:17
Todos sabemos que Linus Torvalds no suele morderse la lengua, y tampoco lo ha hecho recientemente al dar su opinión del lenguaje de programación C++, del que afirma que es “un lenguaje de programación horrible”. Y eso sólo para empezar.
Las declaraciones de Linus vieron la luz gracias a uno de sus famosos mensajes en las listas de correo para desarrolladores, en concreto una relacionada con git, el sistema de control de versiones que utiliza Linus.
En el mensaje previo, un usuario afirmaba que no entendía cómo era posible que git no estuviese programado en C++ y aún utilizase C. Y la respuesta de Linus fue tajante:
“No dices más que gilipolleces. C++ es un lenguaje horrible. E incluso es más horrible por el hecho de que un montón de programadores de segundo nivel lo usan, hasta el punto de que es aún más y más fácil generar basura sin utilidad con él. Sinceramente, incluso si la decisión de haber usado C no tuviera *nada* más que ver con el hecho de mantener a los programadores de C++ fuera del proyecto, esa hubiera sido una gran razón para usar C.”
El resto del mensaje, con algún que otro improperio más, aquí.
vINQulos
BlogeMonk



Comentarios
[...] Linus odia C++www.theinquirer.es/2007/09/24/linus_odia_c.html por kalashnikov hace pocos segundos [...]
Si no le gusta C++, podría plantearse usar D que tiene muchas características de lenguajes de más alto nivel que C como Java, C# y otros como Ruby y Python.
En algunos comentarios ya hablan sobre este lenguaje.
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_D
Jaaajaja, tiene toda la razón. Viva el vino, digo Viva C.
Pues en mi humilde opinión Linus tiene toda la razón, es un lenguaje lleno de sutilezas y exotismos que estorban más de lo que ayudan.
El problema es que no existe otro lenguaje orientado a objetos y compilado que pueda alcanzar su eficiencia.
Los que usamos C++ tenemos claro que no nos complace, pero altertativas no hay.
“El problema es que no existe otro lenguaje orientado a objetos y compilado que pueda alcanzar su eficiencia.”
Los hay, y a patadas…
“Los que usamos C++ tenemos claro que no nos complace, pero altertativas no hay.”
http://www.digitalmars.com/d/
http://shootout.alioth.debian.org/debian/benchmark.php?test=all&lang=dlang&lang2=gpp
Sólo hay que darles tiempo: http://www.tiobe.com/tpci.htm ;)
Salu2!
en mi humilde opinión creo que linus deveria entender el significado de la palabra educación
Que conste que aunque piense que tenga razón sus formas son intolerables.
Recomiendo leer el enlace al foro.
Si no le gusta C++, podría plantearse usar D que tiene muchas características de lenguajes de más alto nivel que C como Java, C# y otros como Ruby y Python conservando el acceso a bajo nivel de C.
En algunos comentarios del hilo ya hablan sobre este lenguaje.
#alg: sin saber mucho de este lenguaje, entre sus bondades (sesgún sus desarrolladores comentan) es que es compilado y puede tener la misma eficiencia que C++ o más (según las capacidades de los desarrolladores de C++ y D) teniendo una sintaxis más clara y simple sin perder la expresividad de C++
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_D
No me extraña nada su opinión, ni por el fondo ni por la forma. Sus mensajes en las listas de correo del núcleo son muy vehementes cuando se trata de un off-topic. Sólo hace falta recordar el flame KDE vs. Gnome.
Y no le falta razón. C++ es un lenguaje obtuso. Su única aportación fue reconvertir a los programadores de C, estructurado, al nuevo lenguaje, orientado a objetos.
Pero la programación orientada a objetos presenta una ventaja organizacional que lo justifica… Es más dificil, y por mucho, revisar un programa en C, por mucho que lo comentes y por muy organizado que esté.
Cuando los proyectos crecen, el que se convierte en un estorbo es el código escrito en C.
y por qué no usar JAVA, ya que es un lenguaje robusto y OO?
Porque Java no es compilable y no hace, si no, que consumir recursos con su máquina virtual.
si no saben programar en c++ abstenganc de kritikarlo, es muy facil decir “es horrible” si solo han programado su lindo hola-mundo.
http://www.research.att.com/~bs/applications.html
a la industria parece gustarle, no asi a los ignorantes k tienen flojera de aprender algo mas
#laut: porque Java no es compilado, corre sobre una máquina virtual y es muy bueno para lo que se inventó, correr en todo tipo de máquinas -creas la máquina virtual en un lenguaje compilado, nativa para cada procesador y sistema operativo y lo que haces con java se ejecuta en ESA máquina virtual-.El problema es que es lento y muy limitado el acceso al hardware, sistema operativo, etc.
Que cada uno utilice el lenguaje que mas le guste, el que mejor conozca o el que mejor se adapte a sus necesidades…… hay virguerias hechas en Cobol y funcionando, otros hechos en RealBasic, o en Python, Lisp, Prolog, PHP, Perl, Java…… cada lenguaje tiene sus “cosas” y si no te gusta C++ (personalmente tampoco me gusta) pues elige otro …. y yasta. Si de lo que hablamos es de Sistemas Operativos o accesos a bajo nivel aun quedan C o si tienes agallas o eres masoca: ASM.
Dariorodt, C++ tiene una serie de limitaciones que lo hacen incompatible con muchos desarrollos. Por ejemplo, es lento, muy lento. Consume además demasiada memoria. La mantenibilidad de un proyecto no depende del paradigma del lenguaje utilizado en el desarrollo, ni mucho menos. Hay aplicaciones enormes en lenguajes primitivos que siguen siendo mantenidas.
C es un lenguaje muy bueno cuando se necesita un término medio entre alto y bajo nivel.
PUES DE C ++ A USAR C # , LA VERDAD ME QUEDO CON C ++ QUEDANDO CLARO LA MIERDA DE MICROSOFT QUE CREO SOLO PERJUDICANDO AL BENDITO C
Dios, como me alegra ver que no soy el único que opina que C++ es una basura.
Morrotron, pues C# es una muy buena alternativa a Java para ciertas aplicaciones. Cierto es que no tiene la enorme biblioteca de Java, pero con .NET se defiende.
mmm, más polémica por parte de mr linus, no me parece que sea una buena táctica entrevistarle cuando esta borracho, solo así se comprende…
c++ es una herramienta muy poderosa, que no deja de ser c por muchas vueltas que le des, es cierto que se puede escribir mucha basura, tambien es cierto que escribir basura no tiene nada que ver con el lenguaje en el que está escrita.
Aviso a los que me recomiendan D
Este lenguaje está en versión draft y tiene una mínima implantación, querer comparar D con C++ es como comparar un prototipo de coche con otro implantado en el mercado durante muchos años.
Por favor, no comparemos peras con manzanas.
La verdad es que si Linus califica algo como una “Gilipollez” seguro que tiene razón porque él tiene mucha experiencia en eso. De hecho debe ser uno de los personajes que más Gilipolleces es capaz de pronunciar por minuto.
En mi opinión, lo que pasa con Linus es que tiene un desaforado afán de notoriedad y lo combina con unos modales claramente barriobajeros.
No sería mala idea que se fuese jubilando y que dejase “su proyecto” en manos de personas un poco más profesionales y sobre todo mejor educadas.
Sobre esa memez de que C++ es un lenguaje horrible espero que Bjarne Stroustrup le dé la respuesta que merece.
Que es el lenguaje D.
Y cual es la mejor opción de lenguajes orientado a objetos
Benceno, Linus podrá parecer maleducado en sus mensajes a la lista del kernel, pero te aseguro que no es una persona poco profesional o de modales barriobajeros. No conozco a nadie que haya sacado adelante un proyecto tan grande y caótico como Linux, como tampoco conozco a nadie que recomiende C++, sobre todo después de haber programado en Java o C#.
Stroustrup puede decir lo que quiera. Al fin y al cabo, es el creador de C++ y no va a tirar piedras contra su tejado. Linus da su opinión, y dejando de lado la cuestión de la forma, en el fondo tiene más razón que un santo.
Cada quien es libre de opinar lo que se le venga en gana sobre C++. A mí, en lo personal, lo que me podría molestar es la manera en que Linus califica al lenguaje C++: es decir, su manera de expresar lo que piensa.
Me disgusta un poco, pero eso no quiere decir que no le dé la razón. Y sinceramente comparto la misma opinión, aunque no soy quién para juzgar o descalificar al C++.
La verdad es que Linus tiene razón en el caso de Git porque es una herramienta enfocada al Kernel de un sistema operativo en el cual se requiere rendimiento. Y en dicho caso C es mejor que C++.
Pero tampoco puede decir que el lenguaje es horrible, todo depende del contexto y el tipo de aplicación que se desea desarrollar. Si quieres aprovechar los patrones de diseño para la creación de clases que funcionen como Plug-ins, es más fácil hacerlo en C++. Lo mismo que el manejo de eventos. Encuentro mucho más elegante el manejo de eventos que hace QT o el que hacía Borland C++ Builder que el que hace GTK o el API de Win32.
Como dice el clásico refrán, pastelero a tus pasteles.
Oh, Linus ha dicho que C++ es horrible. Corramos a erradicar C++ de todas partes, como si nunca hubiera exitido.
wel, C# será una alternativa a Java en el momento en el que .NET sea multiplataforma. Antes es tontería ni siquiera pensarlo.
C++ será optimo o no, pero que te da pocas ganas de usarlo para programar es así.
Hay algunos que dicen que si sos fanático de C++ tenés algunos tornillos flojos, pero no lo pienso yo, tan solo lo repito…
Menuda gilipollez…
Linus Torvalds es un perfecto cretino. Se supone que es el líder de un sistema operativo alternativo y se comporta continuamente como un colegial enfadado. Creo que en el fondo él odiaría que Linux se extendiese más allá del feudo de los programadores. Así le va a Linux.
Poco importa, en realidad, qué lenguaje es mejor. La cuestión es que una persona con responsabilidad debería saber cuál es el alcance de sus palabras y de sus modos y este tío, con los suyos, se está convirtiendo en la losa más grande que tiene Linux encima.
Ojalá un día de estos algún equipo profesional con dinero de IBM, Sun o quien quiera, inicie un fork del kernel y el mundo Linux se deshaga de este chiquillo irresponsable.
Yo he conocido varios de esos gurus del C++ que por supuesto luego se cambian al C# .net … etc.
Personalmente preferir prefiero C, pero lo importante de verdad, es el contenido de la aplicación… como esta diseñada, algo si influirá el lenguaje elegido en cuanto a optimización, “la ventaja organizacional” son *paparruchadas*, al menos para mi, quedan muy bien esas *consignas* en esos soporíferos powerpoints con los que se vende estos proyectos a dirección (que no tiene ni idea de lo que le hablan generalmente) Si una aplicación no esta bien diseñada en papel, ya puedes programar en X#++ con OOAA (Object Oriented Absurd Abstraction)…
En fins…
Las opiniones de algunos dan miedo.
O sea, una persona, según cómo exprese sus opiniones, es mejor o peor. Que sea el líder de un proyecto tan exitoso como Linux no cuenta.
Increíble. Supongo que si Teresa de Calcuta hubiese dicho en vida que los yanquis son unos burros, más de uno de los lectores de The Inquirer habría comprado un billete a la India para escupir sobre su tumba.
Me da que este se le ha subido el ego y cada vez es mas matado….Que razón tiene RMS
[...] Fuente : http://www.theinquirer.es/2007/09/24/linus_odia_c.html [...]
Me aprece que teneís que revisar un poco el hilo y revisar el tema con detalle. Linus habla en el mismo tono y términos de la persona que hace el comentario inicial (es el otro el que dice primero lo de la gilipollez). Cuando se le han dado explicaciones de por que no se usaba C++ ha seguido con que si dinosaurios y etc (sin dar motivos ninguno que fundamenten por que usar C++). Y es entonces cuando la cosa ha subido un poco de tono (insultas por dos veces sin dar motivos uando se te han expuesto varios puntos débiles de lo que tu pides).
Vamos que es como si yo entrase en tu casa por primera vez el día que nos conocemos y de buenas a primeras te dijese que por que usas (pongase aquí el programa que se quiera) si es una mierda de programa. Me dieses depués las razones de por qué diciendome que una mierda es el que te estoy recomendando y tú me digas que soy un dinosaurio que no tengo ni idea…
No sé si Linus ha programado algo que no sea un Kernel o similar. De ser así, debería saber para qué sirve C++, porque evidentemente no lo sabe. Por muy admirable que sea como programador.
Es verdad que C++ tiene muchos defectos, que no tiene sentido empezar a analizar ahora, pero no me imagino afrontar un proyecto del volumen usual en este siglo con un lenguaje estructurado.
Y aunque hay alternativas a lenguajes OO, hay que tener en cuenta que cuando se escoge un lenguaje o plataforma, se tienen en cuenta muchas cosas, que hacen que Java o C# puedan no ser los más adecuados.
Por otro lado, es un p%%o sobrado.
Quien crea que lo puede hacer mejor que Linus no tiene excusa: paso al frente y fork al canto. Si es que cuanto bocazas suelto de tecla hay en este foro…
En cuanto a lo de lenguajes de programación, estoy con Linus… Un imbécil en ensamblador no es capaz de hacer nada. En Java son capaces de destrozar cualquier proyecto y necesitas mil ojos para vigilarlos.
pero que va! si es su opinion, que no le guste el C++ no se va ir al diablo el kernel.
Si me diesen para escoger en hacer una aplicacion con visual basic .net o con java, naturalmente respondería lo mismo: que VB es un lenguaje horrible. E incluso es más horrible por el hecho de que un montón de programadores de segundo nivel lo usan, hasta el punto de que es aún más y más fácil generar basura sin utilidad con él. … etc etc etc
Solo es eso: un comentario
Hay verdades que duelen, pero siempre es mejor decirlas antes de hacerse el huevón. ¿Qué quién es dueño de la verdad? … Bueno, es fácil: el que dice las cosas tal como son y punto. Nunca ha existido necesidad alguna, de que venga un santo a decírtelas en la cara tampoco.
Wel dijo: “tiene una serie de limitaciones que lo hacen incompatible con muchos desarrollos. Por ejemplo, es lento, muy lento. Consume además demasiada memoria”
Pero hombre, a estas alturas confundiendo problemas del compilador/bisoñez del programador con el propio lenguaje. Que paciencia hay que tener con los pequeñuelos, en fin … yo no cambio la programación orientada a objetos por nada, ¡ni siquiera para pequeños proyectos!. Y para los grandes, eso de arreglar el problema en un solo lugar y no en miles de sitios es … casi orgásmico. ¡Viva la concatenación de strings, vivan las clases de fecha y hora! ¡Abajo el strcpy! (Bueno, salvo encapsulado, claro ;-) )
deberian haberle preguntado por qué no hacerlo en Pascal. Seguro que se hubiera migrado todo el código a este ultimo y dado una bonificación al usuario.
Saludos a todos… y opinando un poco:
- Cada problema tiene sus complicaciones, pero:
1) No es lo mismo hacer aplicaciones utilitarias o de gestión que hacer un kernel de sistema operativo o una herramienta de análisis exhaustiva.
2) La discución de Linus no enmarca a lenguajes como c# o Java y si los compilas con algún kit debes ver cual es la implementación de sus librerías (algoritmos, recursos, etc..)
3) El paradigma puede mejorar la solución que elijas, pero no saber como funciona tu herramienta de programación (perfomance, uso de la memoria, uso del procesador, etc..) es peligroso en software de base (kernel, compiladores etc..)
4) La orientación a objetos es muy limpia si es legible y si la implementación del compilador es eficiente, prolija y refactorizada (por el motor oop), sino es un dolor de cabeza cuando aumenta la complejidad del sistema.
5) no siempre la oop dio buenos resultados a la hora de mantener codigo, también se puede mal programas en oop. Es una opción para abstraerse (la cual no dio buenos frutos por mucho tiempo y al final muchos terminan usando frameworks para poder mantener codigo y ambientes RAD)
6) siempre se hablo de software de base, nunca se podría comparar con otro tipo de desarrollo, es como comparar herramientas para hacer un Ferrari contras las usadas para hacer un vehiculo tipo A para las masas o una utilitario.
pd.:quizás implementando java con bajo nivel y compilador nativo propio habría que ver si se mejora lo productivo o se crea otro enriedo más.
Es mejor pulir un lenguaje como C, mejorar su implementación en binario o tener un framework o un kit para mejorar el desarrollo a bajo nivel que usar motores oop. La oop fue creada para modelar el mundo real humano para simulación (originalmente) y creo que en eso es bueno (como componentes de alto nivel) pero implementarlo eficiemtemente siempre fue un desastre para la Ing. en Software.
saludos.-
jeje, me extendi mucho mis disculpas, pero igual Linus usa un lenguaje normal para alguien que trabaja en bajo nivel por muchas horas… nadie que haya tenido esa experiencia puede decir que siempre estuvo de buena onda todo el tiempo… sobre todo en este proyecto de llevar un proyecto de este tipo. Con tanto estúpido que se siente sentimental y se enoja cuando usan alguna palabrota y al final nunca ayudan a solucionar ningún problema…jejeje
[...] Fuente: The Inquirer. [...]
kien dijo k C++ es lento? o k konsume mucha memoria? C++ puede ser tan rapido (o a veces mas rapido) k C
si usas excepciones, el konsumo de memoria y el rendimiento obviamente dekreceran, pero NO dekreceran mas de lo k seria el ekivalente en C (donde para ver si hubo un error tienes k andar regresando ceros o unos para ver si las funciones de abajo no tuvieron problemas, de hecho el kompilador de C++ de Intel implementa las excepciones asi)
si no kieres usar herencia, no la uses; tu programa NO sufrira sobrecarga por algo k NO uses (principio fundamental del diseño del lenguaje)
no hablen si no saben -_-
si kieren ver un area donde C++ puede ser mas rapido k C, busken “sort vs qsort” en google (”… STL’s sort runs 20% to 50% faster than the hand-coded quicksort or the C …”)
Mambo dijo: … yo no cambio la programación orientada a objetos por nada …
Fetichísta de mierda !! :)
Saludos.
Entrevista humorística sobre C++ a Bjarne Stroustrup:
http://www.gra2.com/article.php/20031118123221418
me gustó y me parece muy cierto el comentario de wel, ciertamente no es la primera vez ni la última que un lector poseedor de conociemintos en materia de tecnología como wel me quitan la palabra de la boca.
salu2.
a linus lo que necesita es un par de bofetadas y unas patadas en el trasero linus eres estiercol tu y tu kernelde porqueria.
Concuerdo con well en muchos aspectos, y vamos… hay que reconocer que programar en c++ es como la mie* y que el paradigma no justifica lo inecesariamente complejo de c++
y sipo.. linus es grosero, pero y? y que? cuando tenga un sistema operativo que sea el proyecto open source mas grande del mundo y se llame fernandox quizas tambien seria grosero :p
“If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one?”.
protected abstract virtual base pure virtual private destructor mi_funcion() {
8-)
Mambo, ¿pequeñuelo? No hagas juicios si no sabes con quién estás hablando.
Primero, atente al entorno que nos ocupa y dime sin rodeos que C++ es más rápido que C. Sólo por la necesidad de tener un segmento de memoria para el heap, y que cada llamada a una función deba pasar primero por ahí y luego sea redirigida a través de un nuevo puntero, C++ es más lento que C a igualdad de condiciones. No tengo que explicar por qué consume más memoria, supongo.
Aparte, Linus tiene razón en otra cosa. Un programador inexperto puede mandar todo al traste con sólo asignar mal un puntero, corrompiendo así el heap. Es más, la combinación de C++ y punteros en manos de una persona sin experiencia resulta fatal. Y eso no lo digo yo, lo puede decir cualquiera.
Todo esto es más viejo que el tiempo, no se porque cada vez que alguno de estos supuestos gurus dice algo todo el mundo forma un revuelo, sino recuerdo mal en el 2003 salio un articulo del creador de c++ donde indicaba que al ver que habia demasiados programadores en C creo esa supuesta basura para asi elevar el nivel y poder cobrar más.
Nota: No tengo ni idea de C ni nada que se le parezca, yo conocí el ensamblador y para mi este, C y demas parecidos es un lenguaje para artesanos de la programación.
El comentario de Linus solamente indica su gran desconocimiento de lo que es C++ y falta de experiencia en ingeniería de codigo moderna.
Vale que no quiera aprender pero de ahí a las descalificaciones.. en fin que todos respetamos a Linus por lo mucho que ha hecho pero también a veces tiene cosas de peon caminero.
C++ permite saltar el modelo de objetos o mezclar estructurado y objetos en un mismo sistema (por eso es un hibrido). Sumado a programadores y diseñadores no disciplinados tenemos una gran ensalada.
Tambien estan los programadores de C que usan C++ como si fuera C. Gran error son cosas distintas
Java, lento lei por ahi??!! jaja, que prejuiciosos y anticuados, estamos en el 2007 gente!!
Querido wel: Despotricar contra un lenguaje determinado por sus características es de auténtico novato (a menos que seas Linus Torvald claro) Puedes pasarte horas hablando del stack, de las funciones virtuales, del sexo de las variables o de cualquier otra cosa que pilles por ahí (por lo visto sin comprender), pero si no mencionas el porqué ni el objetivo de esas técnicas queda en evidencia que hablas sin saber, o al menos con ridícula suficiencia.
¿Perdona?
O sea, que tengo que explicar las peculiaridades de C++ y su implementación, porque, de otro modo, no puedo criticarlo.
Es decir, para criticar dos de los puntos flacos más conocidos de C++ he de realizar un análisis completo y pormenorizado. Ridículo.
Significativas son tus falacias ad hominem, que descubren tu incapacidad para llevar el debate por otro camino.
pd. la llamada a funcion mediante puntero, es solo para funciones virtuales. toma un libro y ponte a leer, lo necesitas
wel: lo uniko k nos keda klaro es k no sabes C++.
se puede programar estilo C en C++, si decides usar las caracteristikas unicas de C++, la sobrecarga impuesta es la misma (O MENOR) de la k tu mismo hubieras introducido si lo hubieras implementado tu
“Por wei: Sólo por la necesidad de tener un segmento de memoria para el heap, y que cada llamada a una función deba pasar primero por ahí y luego sea redirigida a través de un nuevo puntero, C++ es más lento que C a igualdad de condiciones.”
eso es SOLO para funciones virtuales. eso en java no en C++ por dios! agarra un libro y ponte a leer
si NO necesitas funciones virtuales, NO uses funciones virtuales, esto pasa pk novatos k apenas tienen un kurso de 1 mes “introduccion a C++” ya kreen k lo saben todo
wel: lo uniko k nos keda klaro es k no sabes C++.
se puede programar estilo C en C++, si decides usar las caracteristikas unicas de C++, la sobrecarga impuesta es la misma (O MENOR) de la k tu mismo hubieras introducido si lo hubieras implementado tu
“Por wei: Sólo por la necesidad de tener un segmento de memoria para el heap, y que cada llamada a una función deba pasar primero por ahí y luego sea redirigida a través de un nuevo puntero, C++ es más lento que C a igualdad de condiciones.”
eso es SOLO para funciones virtuales. eso en java no en C++ por dios! agarra un libro y ponte a leer
si NO necesitas funciones virtuales, NO uses funciones virtuales, esto pasa pk novatos k apenas tienen un kurso de 1 mes “introduccion a C++” ya kreen k lo saben todo
y porqué no usan P ? o Q?
De verdad importa eso a estas alturas?
Linus rules, el mejor programador del mundo, viva Linux!
Basta de decir tantas estupideces, Linus tiene que moderar sus comentarios C++.
Soy una persona que utiliza C++ para programar pero también uso linux. En vez de decir tantas animaladas porque no decir las cosas como son.
Linux el mejor Sistema Operativo
C++ el mejor Lenguaje de Programación.
U saludo a todos.
Perico, hablo del espacio de memoria para objetos.
Por otra parte, si no necesitas las características de C++, ¿para qué coño utilizar ese lenguaje? Limítate a C y no seas tarugo.
Lo que hay que aguantar… ¿Así que tengo que ponerme a leer? ¿Pero tú tienes idea de cómo funciona un programa? ¿Sabes que las funciones tienen su propio espacio de memoria, una vez es ejecutado? ¿Sabes que lo mismo ocurre para los objetos? No estoy hablando de cuestiones triviales sobre definiciones del lenguaje, sino del funcionamiento de la aplicación sobre la máquina.
Y por última vez lo repito: los juicios sin saber nada sobre una persona te los puedes ahorrar tú y quién sea, porque estás metiendo la pata hasta el fondo, y seguramente he desensamblado y trazado muchas más aplicaciones que tú.
no entendiste NADA
el espacio de memoria para objetos es:
-si no tiene nada virtual, IGUAL k un struct en C
-si tiene algo virtual, UN puntero por objeto
-el “kampo tipo (enumerador)” k necesitarias en C para simularlo, seguramente mide al menos una palabra
- el kodigo “switch” k necesitarias en C para simularlo, korre en tiempo lineal kon respecto al numero de tipos buskados, en C++ es en tiempo CONSTANTE
las funciones miembro son ekivalentes a un funcion ordinaria con un parametro puntero extra, lo MISMO k tu deklaras kuando “simulas” programacion orientada a objetos en C, pasando el struct a una funcion k hace algo kon el
la sobrecarga de las caracteristicas de C++ es EKIVALENTE a lo k mismo hubieras hecho en C si lo hubieras necesitado
yo SI se de C++ Y de ensamblador, por eso puedo hablar
te puedo voltear dramatikamente kualkier argumento estupido k digas, pk yo si se de lo k hablo
Para Perico: Hmmm, hunca había pensado lo del tiempo contante para la selección del mecanismo virtual en C++ (versus el uso de swich o if en C). Porque aunque uses punteros a función … en algún momento hay que seleccionarlos bajo algún criterio. ¡Nunca te acostarás sin aprender algo nuevo! (Menos ortografía, de eso no … ;-P )
Por cierto … ¡ODIO QUE ESTE CHISME AJAXIANO TRANSCRIBA TODO LO QUE ESCRIBO EN EL FORO ANTES DE ENVIAR EL COMENTARIO!
¡Un poco de intimidad 2.0 por favor!
el compilador conoce el offset correcto con respecto a la tabla donde esta la funcion k debe llamar, lo k no sabe es a k tabla apunta, eso se sabe solo al momento de krear el objeto del k se va a usar el mekanismo virtual, pk en ese momento se inicializa el puntero a la tabla
pd. la tabla se hace en tiempo de kompilacion (y por lo tanto se sabe de antemano donde esta)
el konstructor de una klase en especifiko solo inicia el puntero kon ese valor konocido (asi k tmb esto se hace en tiempo constante)
Diferentes klases lo inician kon diferentes valores, ahi es unikamente donde depende el tipo de objeto k se krea: el valor k se le dara a ese puntero al ejekutar el konstructor k korresponda
Ridículo. Y tilda mis argumentos de estúpidos.
En fin, con tu pan te lo comas. Sólo diré lo siguiente, y me retiraré.
- El overhead creado por las continuas llamadas al constructor es innegable.
- Cada objeto tiene un espacio de memoria, a través del cual hay que acceder si se necesita llamar a una función de dicho objeto.
Y una apreciación fuera de la técnica. Si C++ fuese tan bueno, y tan cojonudo como algunos decís, ¿por qué está siendo barrido por Java y .NET? ¿Por qué los jefes de proyecto, que no los desarrolladores, escogen cada vez más utilizar Java y su monstruosa biblioteca?
Como ves, perico, yo no necesito las falacias ad hominem para discutir. Hala, ciao.
@wel sin animos de provocar o polemizar para mi y en cuanto a mi única verdad solo puedo decir que gnu linux se está destacando por su estabilidad y no está escrito… ni en java ni en .net, algo de c++ si pero sobre todo c y mucho bastante assembler entre líneas en algunos casos más que nada a nivel hardware o donde el alto nivel no hace lo que el desarrollador quiere.
si gnu linux es tan bueno , está creciendo tanto y es tan estable……… algún mérito debemos darle a LINUS en sus creencias con respeto a C no crees wel?
salu2.
bueno en resumidas cuentas estamos de acuerdo con respecto a c++, salu2.
Wel: … con todo mi cariño:
- El overhead se crea cuando RESERVAS RECURSOS, lo hagas en un constructor o inicializando las “struct”. ¿O es que eso no se hace todo el tiempo en C?
- Cada objeto tiene su espacio de memoria … y cada struct/union/loqueuses también. ¡A menos que lo programes todo con arrays! (Espero que no, por tu propio bien ;-).
Sin acritud …
[...] of Linux father, Linus Torvalds, have received quite a lot of attention from several web sites (the inquirer, digg, and many [...]
Bueno, sin ánimos ni de ofender ni de polemizar…
Creo que cada lenguaje tienes sus puntos fuertes y débiles. Yo con toda seguridad recomendaría a C++ para realizar software embebido antes que Java o C# (así que ya conocen a uno que lo recomendaría después de programar en esos lenguajes). No lo recomendaría para hacer una aplicación de escritorio para Windows, porque ahí supongo que C# llevaría las de ganar.
Pelear e insultarse porque si X es mejor que Y, cada quien que con su pan lo coma. Mal código se puede escribir en el lenguaje que sea : ASM, C, C++, D, PHP, COBOL, Python, Perl, lo que sea. Código eficiente, también se puede escribir en el lenguaje que sea, vámos, que hoy en día un par de ciclos no los nota ni el procesador más lento ;-)
Que Linus tenga esos arrebatos es cosa suya… Que llegue a las noticias y a oídos/ojos de mucha gente que podría considerar a Linux como su SO por esos arrebatos, es triste. Creo que con esa actitud, Linus podría llegar a ser un serio lastre para Linux.
En fin, sólo es mi opinión.
Hay opciones a C++ , esta el objective C que a muchos se les hace mas elegante y muy parecido a su original C, tambien esta el smalltalk
y si el chiste es usar objetos y un lenguaje capaz de hacer programas que funcionen por si mismos sin interprete esta tambien
el ADA, el Object Pascal , y muchos mas
Publica un nuevo comentario