Você está na página 1de 10

C es un lenguaje de programacin de propsito general sencillo y no est especializado en ningn

tipo de aplicacin y sobre todo, se aprende rpidamente. Este lenguaje no est ligado a ningn sistema
operativo ni a ninguna mquina concreta. Se le suele llamar lenguaje de programacin de sistemas
debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se puede
desarrollar otro tipo de aplicacin.

- C: El original: compacto, poderoso, te lleva a cualquier sitio... Es el todo-terreno original, utilizado


incluso por los militares.

- C++: Es el C evolucionado: mucho ms grande, ms rpido, ms potente... Una bestia parda. Se


utiliza en todo tipo de entornos hostiles, pero si lo usas sin el entrenamiento adecuado, probablemente
te la pegues. Es el Humbee.

- C#: Es el Hummer, la versin civil de Humbee. Es como C++ pero adaptado para adaptado para la
vida civil: con ms facilidades, ms medidas de seguridad... y con soporte directo por parte del
fabricante. Mientras te quedes cerca de la civilizacin no tienes problema. Eso s, a muchos les llamar
la atencin, y no positivamente.

- COBOL: aunque su reputacin le precede, ningn programador que se precie admitir haber
conducido uno. Es una furgoneta de reparto, voluminosa y fea, pero hace el trabajo!

- ENSAMBLADOR: es un motor "pelado". Tienes que construir el coche t mismo (como si lo


hubieras comprado en IKEA) y suministrar manualmente gasolina mientras conduces, pero si eres
bueno puedes llegar a ser el rey de la carretera.

- FORTRAN: De los primeros coches que salieron al mercado. Se dice que aqullos que se iniciaron
con Fortran son incapaces de aprender a manejar ningn otro modelo.

- JAVA: Un coche familiar con todos los extras: manos libres, climatizador bi-zona, airbags por
doquier, Sin embargo su alto consumo es inexplicable. Una maana te lo encuentras aparcado en tu

garaje y te preguntas cundo he comprado yo esto?

- OBJECTIVE-C / Swift: Mini Clubman. Se trata de un coche "con personalidad", para aquellos que
buscan alejarse de los lenguajes coches tradicionales pero que al mismo tiempo buscan moverse con
con cierta tranquilidad y seguridad.

- PERL: sola servir el mismo propsito que Python, pero ahora slo lo utilizan barbudos ex-hippies.

- PHP: Es como una Limusina, rara y difcil de manejar pero todo el mundo quiere una.

- PHYTON: es el preferido por los principiantes; lo puedes conducir sin carn. Si no necesitas ir muy
rpido, ni meterte en terrenos farragosos, nunca necesitars otro coche.

- SQL: El coche de las "mams". Diseado para salir airoso en cualquier circunstancia, pero pesa ms
de 2 toneladas y su potencia mxima...solo 163CV. No habr mejores modelos con las mismas
prestaciones?

Segn otros ndices los resultados son incluso peores para Visual Basic. Por ejemplo, el ndice PYPL
que se basa en la disponibilidad de cursos y tutoriales disponibles para cada lenguaje (un indicador de
demanda), C# es el 4 lenguaje ms popular con un 8,8%, y VB.NET est en decimotercer lugar con un
2.2% y cayendo bastante.

Si consideramos la popularidad dentro de los proyectos Open Source, entonces GitHub es un buen sitio
donde mirar, ya que actualmente es donde se "cuece" todo lo que tiene que ver con este movimiento de
software libre. Segn los datos de GitHub el lenguaje ms popular con mucha diferencia es JavaScript,
pero de los dos que nos ocupan, el nico que aparece siquiera en los rankings es C# (en 10 lugar).

C/C++
Estos son buenos lenguajes, pero con una sintaxis complicada que no facilita su aprendizaje. Adems el
uso de punteros hace que su uso, incluso para los profesionales, sea complicado. La ventaja es que
estos lenguajes pueden ser utilizados en diversas plataformas (despus de compilacin) y que, una vez
dominados, hacen que los otros parezcan simples. Estos lenguajes son an muy utilizados en el mundo
profesional. Utilzalo si se deseas hacer de la informtica tu profesin.

Nunca he mirado bajo o medio niveles lenguajes como C.


El consenso general en la programacin-comunidad-at-large es que "un programador que ha aprendido
algo como C, francamente, no puede manejar los conceptos de programacin como punteros, tipos de
datos, pasar valores por referencia, etc.".
No estoy de acuerdo. Sostengo:
1. Porque los lenguajes de nivel altos son fcilmente accesibles, ms "non-programmers" bucear y
hacen un desastre
2. Para realmente hacer algo en un lenguaje de alto nivel, uno necesita entender los mismos
conceptos similares que la mayora los partidarios de "aprender-bajo-nivel-primero" evangelizar
sobre.
Algunas personas necesitan saber C; esas personas tienen empleos que requieren para escribir cdigo
de nivel medio bajo. Seguro que C es impresionante, y estoy seguro de que hay unos malos
programadores que saben C.
Por qu el sesgo? Como un programador Bueno, honesto, hambre, si yo tuve que aprender C (por
alguna razn imprevista), aprendera C. Teniendo en cuenta la multitud de idiomas, no debera enfocar
bien programadores aprendiendo lo que nos avanza? No deberamos aprender lo que nos interesa?
Deberamos no utilizamos nuestro tiempo finito en movimiento Adelante? Por qu algunos
programadores en desacuerdo con esto?
Creo que la bsqueda de la excelencia en lo que haces es el rasgo fundamental determinista entre
programadores buenos y malos.
Alguien tiene alguna ejemplos del mundo real de cmo algo escrito en un lenguaje de alto nivel
dice Pascal, Java, PHP o Javascript verdaderamente beneficiado de un conocimiento previo de C?
Ejemplos sera ms apreciados.

Sobre la importancia de saber programar en C


March 5, 2010

Hace cerca de 15 aos, en la Universidad de los Andes, la programacin se enseaba usando C, un


lenguaje de programacin muy popular desarrollado en los 70, en paralelo con el desarrollo del sistema
operativo UNIX. En los 90, lenguajes de programacin como Java fueron reemplazando al lenguaje C
tanto en la empresa como en las aulas. Hoy en da, segn me dicen, la programacin se ensea usando
Java y los estudiantes simplemente no aprenden C.
Este cambio preocupa a ciertos de mis colegas quienes consideran que, an si no se va a usar este
lenguaje, un programador debera saber programar en C. Muchos de estos colegas se quejan de los
programadores ms jovenes acusandolos de no saber que es un apuntador, lo cual parece ser, por el
tono de la queja, algo muy grave. Qu tan realmente es importante saber programar en C para un
programador? Cual es el realmente el fondo del asunto.
Yo supongo que lo que deploran mis colegas es el hecho de que al no haber tenido contacto con un
lenguaje con manejo explicito de la memoria, aritmetica de apuntadores, acceso directo a ciertas
funciones del sistema, etc, los programadores de hoy en dia sean menos concientes de qu es lo que
ocurre con los recursos de la maquina cuando un programa es ejecutado. El verdadero debate es
entonces sobre que tanto necesita conocer un programador sobre la manera como sus programas
actuaran en terminos de los mecanismos de base de un computador. Personalmente creo que es
importante. Por esta misma razon, creo que es importante tener idea de como est implementado un
compilador.
Por otra parte, recordemos a Edsger Dijkstra, quin dijo: computer Science is no more about
computers than astronomy is about telescopes.

Ventajas y Desventajas del lenguaje C.

ventajas
Un ncleo del lenguaje simple, con funcionalidades aadidas importantes, como
funciones matemticas y de manejo de archivos, proporcionadas por bibliotecas.
Es un lenguaje muy flexible que permite programar con mltiples estilos.
Uno de los ms empleados es el estructurado "no llevado al extremo"
(permitiendo ciertas licencias de ruptura).
Un sistema de tipos que impide operaciones sin sentido.
Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como
definir macros e incluir mltiples archivos de cdigo fuente.
Acceso a memoria de bajo nivel mediante el uso de punteros.
Interrupciones al procesador con uniones.
Un conjunto reducido de palabras clave.
Por defecto, el paso de parmetros a una funcin se realiza por valor. El
paso por referencia se consigue pasando explcitamente a las funciones las
direcciones de memoria de dichos parmetros.
Punteros a funciones y variables estticas, que permiten una forma
rudimentaria de encapsulado y polimorfismo.
Tipos de datos agregados (struct) que permiten que datos relacionados
(como un empleado, que tiene un id, un nombre y un salario) se combinen y
se manipulen como un todo (en una nica variable "empleado").

Desventajas
Recoleccin de basura nativa, sin embargo se encuentran a tal efecto bibliotecas
como la "libgc" desarrollada por Sun Microsystems, o el Recolector de basura de
Boehm.
Soporte para programacin orientada a objetos, aunque la implementacin
original de C++ fue un preprocesador que traduca cdigo fuente de C++ a
C.
Encapsulacin.
Funciones anidadas, aunque GCC tiene esta caracterstica como extensin.
Polimorfismo en tiempo de cdigo en forma de sobrecarga, sobrecarga de
operadores y slo dispone de un soporte rudimentario para la programacin
genrica.
Soporte nativo para programacin multihilo y redes de computadores.

Aunque la lista de las caractersticas tiles de las que carece C es larga,


este factor ha sido importante para su aceptacin, porque escribir
rpidamente nuevos compiladores para nuevas plataformas, mantiene lo
que realmente hace el programa bajo el control directo del programador, y
permite implementar la solucin ms natural para cada plataforma. sta es
la causa de que a menudo C sea ms eficiente que otros lenguajes.
Tpicamente, slo la programacin cuidadosa en lenguaje ensamblador
produce un cdigo ms rpido, pues da control total sobre la mquina,
aunque los avances en los compiladores de C y la complejidad creciente de
los microprocesadores modernos han reducido gradualmente esta
diferencia.
En algunos casos, una caracterstica inexistente puede aproximarse. Por
ejemplo, la implementacin original de C++ consista en un preprocesador
que traduca cdigo fuente C++ a C. La mayora de las funciones orientadas
a objetos incluyen un puntero especial, que normalmente recibe el nombre
"this", que se refiere al objeto al que pertenece la funcin. Mediante el paso
de este puntero como un argumento de funcin, esta funcionalidad puede
desempearse en C.

Ventajas
* Un ncleo del lenguaje simple, con funcionalidades aadidas importantes, como funciones
matemticas y de manejo de archivos, proporcionadas por bibliotecas.
* Es un lenguaje muy flexible que permite programar con mltiples estilos. Uno de los ms
empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura).
* Un sistema de tipos que impide operaciones sin sentido.
* Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e
incluir mltiples archivos de cdigo fuente.
* Acceso a memoria de bajo nivel mediante el uso de punteros.
* Interrupciones al procesador con uniones.
* Un conjunto reducido de palabras clave.
* Por defecto, el paso de parmetros a una funcin se realiza por valor. El paso por referencia se
consigue pasando explcitamente a las funciones las direcciones de memoria de dichos parmetros.

* Punteros a funciones y variables estticas, que permiten una forma rudimentaria de encapsulado
y polimorfismo.
* Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que
tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una nica
variable "empleado.

Desventajas
* Recoleccin de basura nativa, sin embargo se encuentran a tal efecto bibliotecas como la "libgc"
desarrollada por Sun Microsystems, o el Recolector de basura de Boehm.
* Soporte para programacin orientada a objetos, aunque la implementacin original de C++ fue un
preprocesador que traduca cdigo fuente de C++ a C.
* Encapsulacin.
* Funciones anidadas, aunque GCC tiene esta caracterstica como extensin.
* Polimorfismo en tiempo de cdigo en forma de sobrecarga, sobrecarga de operadores y slo
dispone de un soporte rudimentario para la programacin genrica.
* Soporte nativo para programacin multihilo y redes de computadores.

Você também pode gostar