Hola Marc.
Si realmente crees que Pascal permite las mismas aberraciones que C.
Aberraciones:
Grave error del entendimiento. Acto o conducta depravados, perversos, o que se apartan de lo aceptado como lícito.
Las aberraciones las cometen las personas y sólo ellas son responsables. Si te refieres a códigos difíciles de leer, entonces es claro que depende del que lo escribe y no sólo de las licencias del lenguaje. Este es meramente una herramienta. Cada lenguaje nació para cubrir una necesidad y se le ha dotado para ello.
Delphi permite el uso de punteros, eso no quiere decir que permita aberraciones. Pero si que puede dar lugar a errores difíciles de encontrar y depurar. Por poner un ejemplo de código mío puedes ver
esta sencilla función en C, delphi y asm. Podría poner ejemplos de código delphi que cuesta mas trabajo de descifrar, escrito en este mismo foro por excelentes programadores que todos conocemos. Y el hecho de que sea algo mas críptico no los convierte en códigos aberrantes. Determinadas tareas, aveces requieren determinada forma de escribir un código.
Por cierto, te voy a felicitar si como programador experto en C me sabes deducir en que algoritmo se basa para calcular el nº PI con esas dos escasas líneas.
#define _ -F<00||--F-OO--;
int F
=00,OO
=00;main
(){F_OO
();printf("%1.3f\n",4.*-F
/OO
/OO
);}F_OO
()....
No soy un programador experto en nada, en eso
google nos saca ventaja y eso le hace perder la gracia.
...En Pascal nunca te puede ocurrir eso (y por esta razón no puedes escribir en Pascal un código como el ejemplo anterior), porqué te obliga a usar solo una sintaxis estricta, cercana al lenguaje natural, y por tanto, fácil de comprender siempre a simple vista.
¿Seguro?. Ten en cuenta que muchos de esos códigos anecdóticos son el resultado de un juego y como ejemplo te pongo este
enlace de nuestro amigo
cHackAll o este
hilo de DA donde se trata de jugar con el código. No creo que eso sea aberrante, mas bien divertido.
Y no me digas que estas expresiones no se ponen, porqué está lleno de gente que si la sintaxis lo permite, lo va a utilizar, y encima se creerán muy listos y se quedarán tan satisfechos y orgullosos de como han comprimido cinco líneas de código en una única expresión
En realidad si se usan los operadores unarios pero la media no va mucho mas allá. Como te dije yo no soy muy partidario se esas compresiones de código a las que te refieres, si de los operadores unarios y aritmética de punteros cuando me hace falta. Me da la sensación que has tenido algún problema con alguno de esos listillos de los que hablas, no es la primera vez que repites la expresión.
Lo siento, pero la legibilidad de un código C promedio no es la misma que la legibilidad de un código Pascal promedio, porqué como te dije, Pascal está mucho más cerca del lenguaje natural, y con C tienes que hacer un esfuerzo mucho mayor...
Ya se que prefieres el Pascal y yo no pretendo convencerte de nada.
Por algún motivo que no está en tus palabras, no eres tolerante con el C. Pienso que los calificativos que usas en contra del C, no son muy afortunados y tienen cierta carga agresiva. Lamentablemente conozco otras personas que se alinean como tú, en posiciones enfrentadas al C, sacando simbólicas espadas. Son posturas que no comprendo ni comparto.
El lugar del C está claro, es indiscutible y sigue siendo necesario. Posiblemente sobrevivirá a muchos lenguajes que hoy conocemos.
Saludos.