Cotilleando un poco por aquí y por allá, veo el índice de popularidad de los diferentes lenguajes y me resulta especialmente curioso el texto que les acompaña… Básicamente dicen algo como que el C/C++ están de capa caída porque no incluyen recolector de basura ¿? ¿? ¿?
Puffff, si es que no hay que mezclar las cosas… Que si vas al río a pescar, no vas a traerte un jamón curado.
Tenemos que Java es el dominante y que luego le sigue C y luego el resto. Vale, me parece lógico. El mundo web tira mucho (por no decir que es más de la mitad de toda la oferta disponible) y ahí no vamos a salirnos de Java, .Net o PHP (aunque haya otras opciones, pero a nivel empresarial son los más usados).
Pero cuando queremos cambiar de contexto y hacer aplicaciones a nivel de escritorio, ya podemos empezar a tomar otras opciones. Quizás podríamos seguir con Java si es una aplicación más del tipo de gestión, o inclusive tirar de Visual Basic (¡¡lagarto, lagarto!!); pero realmente lo que toma ya cuerpo es tirar del C/C++, porque en este terreno hay aplicaciones que sí que lo piden como alma que lleva el diablo y que hay que usar, sí o sí.
El motivo es sencillo: la potencia que se gana está muy por encima de la que puedes obtener a base de máquina. El problema está claro, bajas de nivel y por tanto las posibilidades de encontrar fallos en el desarrollo son mayores pero… ¿la experiencia no te da la suficiente habilidad como para lidiar con ellos?
Sinceramente me parece muy irrisoria la comparativa. Esta claro que el mercado tiene más aplicaciones de gestión y web que otras cosas y, en esos campos, lo normal no es bajar de nivel para buscar potencia así que, es normal la tendencia… pero pardiez, no mezclemos cosas saliendo por tangentes de recolectores de basura como única explicación…
Vía: The Inquirer
Enlace: TIOBE
Disquete Enmascarado says:
Cada lenguaje para lo suyo, desde luego. Lo que pasa es que ahora hay mucho más desarrollo en entornos web que en casi todo lo demás junto y en ese ambiente la elección segura actual es Java.
Como dicen por ahí, Java es el nuevo Cobol, el preferido de los negocios. Le ha costado llegar ahí, no ha sido cosa de un día ni dos, y por eso me parece tonto darles interpretaciones a encuestas anuales cuando un cambio de lenguaje (o incluso de versiones, según qué jefes) es algo muy serio que no se puede hacer a la ligera.
Sobre lo de si la dificultad de C no es superable por la experiencia, pues sí que lo es, pero recordemos que quienes deciden quieren programadores buenos, bonitos y baratos, y como no se puede tener todo se quedan con los baratos.
Neal Stephenson decía en algún lado (“En el principio fue la línea de comandos”, creo) que si los sistemas operativos son herramientas, Windows (el clásico, no el basado en NT) es un taladro de oferta del super, que durará lo que durará y tiene unas cuantas cosas tontas “por tu seguridad” y Unix es un taladro profesional que desayuna granito pero que te puede partir el brazo si no sabes sujetarlo. Pues C es ese taladro. Ojo que no creo que Java sea el taladro de oferta, eso sería VB.
brie says:
Puaaaaa!!! Aquí ya me he perdido… voy a hacerme un esquema :D (snif, snif, no puedo dejarte uno de esos comentario míos tan currados y elaborados…)
Black Hole says:
1. Me encantan tus comentarios, pardiez, ¡qué bueno lo de Neal Stephenson! :D
Pd. Mira tu mail pronto ;)
2. Cuando acabes, ¡¡pásalos!! ;)
Ucedaman says:
Tenemos que Java es el dominante y que luego le sigue C y luego el resto. Vale, me parece lógico.
Pienso recordarte esta frase cuando te vuelvas a poner pesao con los punteros a matrices de objetos nulos y esas cosas del C++ ;)
Hypnotoad says:
Bueno, todo sea dicho, Java (fuera de entorno web) esta bastante bien, pero ni ofrece la potencia de C/C++ (la de recursos que chupa la maquina virtual) ni considero que te proporcione un conocimiento del SO y de la gestion de memeoria que si te puede dar C.
El recolector de basura esta muy bien, te olvidas de hacer free y todo eso, pero creo que como programador te hace mas descuidado.
Hail to the Hypnotoad!
Drizzt says:
Creo que los VS .NET te permiten programar con C++ y recolector de basura. Solo tienes que declarar la clase como “__gc class” y ale listo. La pega es que todo atributo (no variable local de metodo) en esa clase debe ser o tipo primitivo o una instancia de otra __gc class. Esa extensión también creo que se la traga el IntelCompilerC++ (que es con lo que se compilan todos esos codecs de audio/video chachiguays ultrarápidos con bucles vectorizados y tal).
A las clases __gc las llaman “managed” o algo así.
El problema de Java es la VM y las especificaciones de VM y de los bytecodes (aka “tiene que funcionar en lavadoras”), no el lenguaje en si… salvo por los void* y pasar funciones como parámetro, Java creo ofrece toda la expresividad que necesitas y ademas me parece elegante.
Black Hole says:
4. Ñeñeñeñeñeñeñeñe
5. Doy fe de que te hace más descuidado :P
6. La leche, pues es una curiosa opción. Y sobre la VM, en parte la veo como la apuesta de futuro de Sun, pero hacia otros derroteros que no tienen nada que ver con lo que hay ahora.
Y cierto, Java como lenguaje me gusta, un término medio entre Pascal y C++… pero la perversión del J2EE es demasiado para el lenguaje :S
sleepwalker says:
En la facultad en Gijón, exceptuando en las asignaturas de intensificación, solo nos daban C++, y luego se escuchaba por ahí que fuera no valía para nada, que se iba a utilizar Java… me niego! a mi me gusta más snif snif, aunque me vale cualquiera con tal de que me quiten de encima el php, me sale por las orejas!!!
Black Hole says:
Jajajaja, ¿y eso? ¿te han torturado a fuego lento mientras veías código en PHP? O_O
sleepwalker says:
xDDD Nooo! hasta esos extremos no llegan, todavía… O_O pero entre alguna que otra asignatura, que dan php, el proyecto que tuve que hacer para Ingeniería del Software, también en php, y mi PFC que, advininas en que es? jajajaj
Black Hole says:
Pues… pues… pues… ¡¡sorpréndeme!! :P