> santisev dijo: "desgracia histórica" ¿que desgracia ni que niño muerto? Cada lenguaje para lo que es y punto.
Estoy de acuerdo. El C como lenguaje para hacer cosas que, de otra manera, convendría hacer en ensamblador me parece perfecto: microcontraladores, firmwares varios, programación de sistema, etc.
Su uso generalizado para desarrollo de todo tipo de aplicaciones y por todo tipo de programadores me parece una desgracia.
> jonsy dijo: ¿Seguro que sabes programar en C?.
Aprendí C hace más de un cuarto de siglo haciendo programación de tiempo real para productos HW de mi empresa de entonces (una multinacional de las más conocidas). Luego he tenido que lidiar con multitud de curritos de todo tipo de procedencias que, para su desgracia y la mía, tenían que programar en C.
Sigo programando de vez en cuando en C y me gusta, como me gusta programar en ensambladores varios.
> jonsy dijo: Mejores optimizadores de código que para C no conozco
Sí, ahora. No he dicho que no los haya, sino que el lenguaje se diseñó para que la optimización la hiciese el programador (esos preincrementos y posincrementos de puntero insertados en medio de una asignación insertada en medio de una comparación, etc. etc.) porque, entonces, no había esos lujos.
> jonsy dijo: Y en cuanto al mantenimiento y la disciplina en el código... nunca ha sido problema del lenguaje, sino del programador
Por eso hablaba de la necesidad de disciplina exquisita en C, pero hay lenguajes que facilitan la claridad como, por ejemplo, Object Pascal, y otros que facilitan lo contrario, como C.
Pues yo opino que el lenguaje C está repleto de gravísimos errores que se han extendido como una mancha de aceite a todo lo que se ha hecho desde que fue elegido «lingua franca» de la programación. Tiene sus cosas buenas, no lo niego, y valoro mucho sus innovaciones en el momento histórico en que apareció, las circunstancias que propiciaron su creación y las buenas consecuencias que ha tenido, pero hay en su naturaleza una irremediable tendencia al caos, tanto formal como práctico. Estoy seguro de que el copyright del software no es sino una excusa para que los informáticos eviten la vergüenza de tener que enseñar su código, todo sucio, desordenado y lleno de ñapas. Y no es que no haya chapucillas en el código abierto, sino que no son «realmente» importantes. Me parece que las que debe de haber en los programas que llevan años generando millones y moviendo el mundo produciría un descoyuntamiento en las mandíbulas de decenas de miles de programadores en todo el mundo.
No es la primera vez que se construye algo partiendo de un mal paradigma (o, al menos, mejorable). Por ejemplo, ya jamás podremos quitarnos de encima el qwerty, la corriente eléctrica seguirá yendo en el sentido erróneo en los diagramas y esquemas electricos, y no hay manera de que los americanos entiendan que no tiene ningún sentido hablar de milésimas de pulgadas o de pies cúbicos. ¿Y por qué la letra griega ípsilon se translitera como y griega, u, i, uve o uve doble? ¿Por qué hay tantas variaciones entre los idiomas que emplean el alfabeto latino: diacríticos a mansalva, ligaduras, letras nórdicas, ordenaciones distintas? ¿Quién le dijo a San Cirilo que el mundo necesitaba un nuevo sistema de escritura? ¿Por qué nos empeñamos en que los ingleses están locos al tener el volante de los coches en la derecha, cuando la inmensa mayoría de la gente es diestra, y tiene más sentido que la mano más hábil esté siempre en el volante, y usar la otra para el cambio de marchas?
En fin, gracias a Mr. Dennis Ritchie por sus aportaciones. Que el Señor lo tenga en su Gloria.
@Feynnman: ¿Seguro que sabes programar en C?.
- Para sintaxis minimalista tienes el Perl. No confundas minimalismo con proximidad al lenguaje máquina (bajo nivel)
- Mejores optimizadores de código que para C no conozco
- Y en cuanto al mantenimiento y la disciplina en el código... nunca ha sido problema del lenguaje, sino del programador
- C++ no fue un "sucesor natural", más bien un sucesor "forzado", en el que los autores implementaron la orientación a objetos de la que C carecía.
Y en cuanto a si ha sido una desgracia o no... Pues quieres que te diga: sin dicho lenguaje no estaríamos siquiera escribiendo estas líneas
En cualquier caso y en mi opinión Dennis Ritchie ha sido uno de los grandes de la historia de la informática, mucho más que otros más "mediáticos". Yo he aprendido con su sistema, con su lenguaje, y con sus libros. Y aún hoy despues de muchos años siguen siendo parte indispensable de mi biblioteca técnica
Descanse en paz.
Yo también tuve el libro mítico, versión en inglés, sobre el lenguaje C. Es un lenguaje sencillo pero el más potente y cercano a la lengua que entiende el cerebro de un ordenador. Las auténticas maravillas son los compiladores como gcc y g++ o aquellos Borland ideales para aprender.
Yo con el lenguaje que más disfruté y me divertí aprendiéndolo en mi vida fue con C++ y el otro libro mítico, también en inglés, de Stroustrup. En cambio detesto Java aunque su utilidad es innegable.
Fynman,
"desgracia histórica" ¿que desgracia ni que niño muerto? Cada lenguaje para lo que es y punto.
Venga, Daniel, no te cortes y di claramente que las aportaciones de Ritchie son más importantes que las de Jobs. Al César lo que es del César.
Cuando la espiche Doneld Knuth tampoco se acordará de él ni Cristo, y ese también es un padre de la patria
El C es el mejor lenguaje de la historia, TODO se puede hacer con C, a diferencia de los demás lenguajes
Un saludo a la gente decente
En C no hay matrices, sino punteros. De modo que el direccionamiento es eprfecto. El Fortran para los que hacen calculos. El C para todo.
Como fruto de su época, C se caracteriza por, entre otras cosas,
- una sintaxis minimalista para minimizar esfuerzos de tecleo, espacio de memoria y disco ocupado por los programas fuente y tiempo de compilación,
-y una transferencia al programador de todas las responsabilidades de optimización del código, dotándole para ello, eso sí, de multitud de recursos en el lenguaje.
Estas dos características han contribuido a hacer que los programas escritos en C puedan ser extremadamente difíciles de mantener, salvo que los programadores sean exquisitamente disciplinados (de hecho, se hacían concursos a ver quién escribía el programa en C más compacto y abstruso).
Su sucesor natural el C++ profundizó aún más en estos rasgos (el padre de Linux, Linus Torvalds, comentaba: "C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it").
Ha sido quizá una desgracia histórica que semejante antigualla haya llegado a ocupar el lugar preeminente que ocupa, merced a su asociación con Unix y a su buena adaptación a las limitaciones materiales de la época.
Gilgames, hombre los dos han aportado su granito de arena en el tema de informatica lo que pasa es que normalmente los creadores de lenguajes de programación no se les dá la categoria que se deberiera y no salen tanto a la luz, igualmente pasa con los creadores de "pascal y cobol".
Saludos desde el imperio bit.