| C no es un lenguaje de «muy alto
nivel»... y no está especializado en ningún
área particular de aplicación. Pero su ausencia
de restricciones y su generalidad lo hacen más conveniente
y efectivo para muchas tareas que lenguajes supuestamente más
potentes..
Brian W. Kernighan
y Dennis M. Ritchie
El lenguaje de programación C. 1978 |
|
| Realmente
me encanta este lenguaje y aunque he hecho muchas cosas en otros
lenguajes creo que gracias a él he aprendido a ser mucho
más ordenado y ha cometer menos errores de los que podría
haber cometido, y claro, tienes que aprender a ser muy cuidadoso
si quieres que las cosas funcionen en C, C no es para todos, es
para la élite. |
|
No es sencillo programar en C (ni lo es tampoco
en su variante orientada a objetos: C++), es costoso
en tiempo de desarrollo, y existen métodos más fiables
de crear aplicaciones, además si no haces las cosas planificadamente,
con mucho cuidado y esmero, puedes terminar con un código
del todo inmanejable y eso sin mencionar el mantenimiento y la
reusabilidad... pero que puedo decir... le tengo mucho
cariño y gracias a que lo aprendí primero no tuve
que hacer el «doloroso camino» de los que, para su
mal, comenzaron con lenguajes más fáciles
y necesitaron luego aprender C. Digamos que hice el servicio militar
con 20 kilos extras de punteros sobre la espalda mientras que
otros ni siquiera tuvieron que molestarse por declarar una simple
variable. Así las cosas, cuando llegó la hora de
ir al frente, de enterrarse en las sucias trincheras de la depuración,
en esta eterna guerra contra los siempre tan hábiles e
insanos bugs que intentan invadir a toda costa las aplicaciones
de la vida real; no me sorprendió tanto encontrarme con
tantos soldados (programadores) heridos de muerte y desesperación,
incapaces de descubrir al bicho que los acosaba (muchas veces
en frente de sus propias narices), cuando en su vida habían
tenido ellos que distinguir entre mayúsculas y minúsculas,
en esas idílicas sesiones de entrenamiento donde la preocupación
principal radicaba en jalar y acomodar los botones para que esos
divertidos programas que calculaban el área del
triángulo o te decía la hora pudieran funcionar.
|
|
Bienvenido al C-lan. |
|
Todo buen programador sabe que la herramienta
a emplear depende siempre de las circunstancias en las que se
encuentre. Y por eso es importante recordar que C nació
como un lenguaje de bajo y medio nivel con el cual se podía
programar casi de todo (y es que siempre habrá uno que
otro microcontrolador que sólo aceptará el ensamblador),
pero esto no significa que será siempre el más apropiado
para todo. Hay ocasiones en que las facilidades de verificación
y reusabilidad que ofrecen lenguajes modernos de alto nivel son
preferibles a la velocidad y optimización que obtienes
con C, y esto se hace mas evidente a medida que los proyectos
se hacen mas grandes y ya no puedes programarlo todo y dependes
del código de otros para completar tu misión. Así
pues no te sorprendas si los ingenieros de software te dicen que
C es un lenguaje inseguro para desarrollar sistemas fiables
y flexibles, te repetirán una y otra vez su empalagoso
lema: DISEÑA, NO DEPURES y te declarán
anatema si en su presencia mencionas la palabra apuntador
de memoria... no, ellos odian los punteros como al demonio
mismo... ;]
Y quizás tengan algo de razón
en ello, después de todo son ellos los que han tenido que
enfrentarse a la complejidad de desarrollar sistemas gigantescos...
solo imagínate un millón de líneas de código
llenas de variables y funciones globales controlados por miles
de encabezados #ifdef
distribuidos en cientos de archivos H... ¿No puedes? Yo
lo he visto y es temible... pobre de aquel que tenga que dar mantenimiento
a ese código... (en realidad dar mantenimiento a un sistema
de ese tamaño y de cuyo desarrollo no hayas participado
será siempre dificultoso aunque esté escrito en
cualquier lenguaje) Pero un momento, ¿Significará
todo esto que C es un lenguaje caduco y obsoleto?... Personalmente
creo que no, C me sigue siendo muy útil cuando quiero probar
nuevos algoritmos o conceptos, cuando quiero crear DLLs que hagan
el trabajo duro que otros lenguajes no pueden o hacen muy lentamente
o cuando quiero crear pequeños utilitarios para mi uso
personal... en fin, que ningún gurú de
la programación orientada a objetos te engañe, el
arte de programar requiere ante todo de concentración y
disciplina y eso es algo que ningún lenguaje o paradigma
trae consigo, es algo que se aprende, y si eres un buen programador
en C yo creo ningún lenguaje o paradigma nuevo puede ser
problema para ti... sabrás dominarlo fácilmente
y convertirlo en un arma más de tu arsenal personal. Además
no olvides que lenguajes más seguros como Java
o C# han sido creados sobre un subconjunto de C y comparten muchas
características de sintaxis comunes. |
| |
| |
| |
Fractal
Programa que grafica el fractal de Mandelbrot. Usa
la librería gráfica y fue escrito y compilado
usando Borland C++ 3.1.
|
| |
|
| |
Codizy
Sencillo encriptador y fragmentador de archivos de
texto. (Borland C++ 3.1)
|
| |
|
| |
ScreenPwd
Revela la contraseña del protector de pantalla
para W98.
(VC++ 6)
|
| |
|
| |
Xiomy
Juego incompleto. Usa la librería gráfica.
(Borland C++ 3.1)
|
| |
|
|
| |
|