Dado que el cometido primero y principal de esta página es el ser total y absolutamente tonta, voy a dedicarme a decir paridas.
En caso de que el contenido de esta página no fuese tonto, serguiría dedicándome a decir paridas. Es lo que mejor se me da.Empezaré, por ejemplo, haciendo una comparativa entre varios lenguajes de programación, intentando trascenderme después en lo más allá para lograr una cierta comprensión de las mentalidades de las gentes que lo crearon y de aquellas que lo usan.
Para ello, crearé un sencillo programa que, sin ningún tipo de alardes en cuestión de presentación, tan sólo realizará las funciones de pedir un número al usuario, y calcular su factorial, sacándolo por pantalla.
Para los no iniciados, recuerdo que el factorial de un número es la multiplicación de ese número por todos los anteriores que él mayores que 0, esto es, el factorial de, por ejemplo, 5, que se simboliza 5!, sería: 5*4*3*2*1 = 120.Primer Lenguaje: PASCAL.
program factorial;
var
num,i,result:integer;
begin
result:=1;
write('Escribe un número --> ');
readln(num);
for i:=num downto 1 do
result:=result*i;
writeln('El resultado es: ',result);
end.
Podríamos definir este lenguaje como "Las cosas claras, y el chocolate espeso", ya que no hace un gran alarde de operaciones inverosímiles ni órdenes estúpidas que abundan en otros. Su inventor, Niklaus Wirth, parece, creo yo, un hombre ordenadito, con la cabeza bien amueblada, y que seguramente hasta bajaba la tapa del lavabo. Un cielo. Los informáticos le estamos bastante agradecidos, porque nos proporcionó un lenguaje que, además de ser normalmente primero que aprendemos, es para nosotros un buen recurso cuando andamos pillados con prácticas y queremos hacer las cosas simples y sencillitas.
Segundo Lenguaje: C.
#include <stdio.h>
int main() {
int num,i,result;
result=1;
printf("Escribe un número -->");
scanf("%d",&num);
for (i=num;i>=1;result*=i--);
printf("El resultado es %d\n",num);
return 0;
}Vale, más breve. También más complicado de entender. El C tiene una característica: Puede ser, si el programador lo desea, un lenguaje tan claro como el PASCAL. De hecho puede llegar a ser bastante parecido. Pero como tengamos la mala suerte de que al programador ese día le duelan las almorranas, o le haya sentado mal el bocata de chorizo, ¡Ay Mama!, ¡Qué miedo más grande!. El C, en plan cabrón, puede llegar a ser comparable con los jeroglíficos egipcios, algo horrible. A su creador, en los laboratorios BELL de estados unidos, Dennis Ritchie, le debió parecer un juego divertido.
Pero puesto en manos de un profesor con mala leche el día de un examen, ya no resulta tan cachonda la cosa...
De todas formas, se le puede considerar el mejor lenguaje de programación que existe, y todo programador debe conocerlo, o al menos tener un par de conceptos de él. En él se desarrolló el Sistema Opertativo UNIX, al igual que el LINUX. Así que, sólo por eso, ya mola.
Respecto a su nombre, en fin, tan sólo es una demostración de lo tremendamente de la argolla que podemos llegar a ser los informáticos: Al lenguaje de programación que habían desarrollado antes le habían llamado "B", así que C era la siguiente letra del abecedario. Deprimente.
Tercer Lenguaje: C++.
#include <iostream.h>
int main() {
int num,i,result;
result=1;
cout << "Escribe un número -->";
cin >> num;
for (i=num;i>=1;result*=i,i--);
cout << "El resultado es " << num << endl;
return 0;
}Pos'fale. Se parece al C, pero desde mi punto de vista un poco más maricona con tanto "cin" y "cout". No sé qué parece.
Es un lenguaje más fácil que el C, del que proviene, y está pensado para adaptarse a la Programación Orientada a Objetos. No digo que no, la verdad, para eso está bien, pero a la hora de hacer muchas cosas normales (no todo el mundo va por ahí haciendo POO), simplifica demasiado muchas cosas sobre las que el programador tenía el control en C, y no así en C++.
Su creador tiene un nombre que supongo que incluso le causaría problemas a su madre para llamarlo a comer: Bjarne Stroustrup. Pronunciado demasiado rápido puede llegar a dar dolor de cabeza. Como su lenguaje.
Pero pese a todo esto que digo, no puedo decir que sea un mal lenguaje, tan sólo que quizás me da mal rollo el que algunas partes del @|#!%&"!! Windows hayan sido desarrolladas en él. Personalmente, prefiero el C.
Cuarto Lenguaje: FORTRAN.
program factorial
integer i,num,result
result=1
print *, 'Escribe un número -->'
read *, num
do i=1,num
result=result*i
end do
print *, 'El resultado es:'
print *, result
stop
endAparentemente, tal y como ha salido el programa, la gente dirá: vaya, pues no parece un lenguaje nada malo....
Craso error. ES HORRENDO. Para empezar, sólo y únicamente sirve para Matemáticas. Admito que para esto no es nada malo, vale, pero cuando intentas hacer algo con una presentación medianamente buena en este lenguaje, has de abdicar a las veinte horas, con lágrimas en los ojos y pensando que eres gilipollas.
No, el problema en este caso no es del programador. Es que este lenguaje deberían prohibirlo.
Y luego llegan los de Caminos, todos cluecos porque dicen que "saben programar", y cuando les preguntas en qué, respuesta, "EN FORTRAN, CLARO", como echándote en cara a ver qué clase de ignorante eres que no sabes que es el mejor lenguaje de programación del mundo mundial... Animalicos.
Son esos mismos que, cuando los pones delante de un terminal Silicon Graphics, lo primero que preguntan es "¿Pero dónde está la disquetera?".
Hay que reconocerle que este fue el primer lenguaje de programación de alto nivel, o sea, lo primero que se inventó la peña para no tener que arreglárselas con los maravillosos lenguajes ensambladores, pero digo yo que también el FORD T fue el primer coche de la historia hecho en cadena, y no por ello lo seguimos usando...
Quinto Lenguaje: COBOL.
IDENTIFICATION DIVISION.
PROGRAM-ID. FACTORIAL.
AUTHOR. YO-MISMO.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 VARIABLES.
03 I PIC 9(5).
03 NUM PIC 9(5).
03 RESULT PIC 9(13) VALUE 1.
PROCEDURE DIVISION.
INICIO.
DISPLAY "Escribe un número -->"
ACCEPT NUM
MOVE NUM TO I
PERFORM UNTIL I < 1
MULTIPLY RESULT BY I
SUBTRACT 1 FROM I
END-PERFORM.
DISPLAY "El resultado es: ", RESULT
STOP RUN.Éste es un gran lenguaje, sin duda, un fantástico invento que constituye la perla dorada de la informática, el motor de nuestras vidas...
Y YO ME PARTO DE LA RISA.
Este lenguaje es ODIOSO. Que para escribir un programa tan sencillo haya que escribir 25 líneas me parece increible, mucho mas si tenemos en cuenta que el programa, lo que es el programa, sólo son las 9 últimas. Y porque este programa no usa ficheros ni nada, porque lo normal en un programa en COBOL es que te pases a lo mejor 600 o más líneas de código solamente diciéndole al chavalote lo que luego vas a utilizar en el programa de verdad, que con el plan que tiene este lenguaje de explicar las cosas como si los programadores fuésemos tontos del culo (lo de MOVE NUM TO I en vez de I=NUM me pone enfermo), a lo mejor te lleva cinco o seis veces más que en cualquier otro lenguaje.
COBOL significa COmmon Bussiness Oriented Languaje, o sea, que está orientado a negocios. El término técnico es denominar al COBOL como un lenguaje "orientado a ficheros", puesto que el tratamiento de éstos es, dicen, lo que mejor hace. Sus inventores fueron los señoritos del Departamento de Defensa de Estados Unidos (lo inventaron ¿para defender qué?), que ya debían andar aburridos, ya...
Como digo, el tratamiento de ficheros es el punto fuerte del COBOL. Mejor dicho, es el ÚNICO PUNTO del COBOL. Una vez intenté, por curiosidad,
hacer un programa en COBOL para resolver una ecuación de segundo grado, algo que en cualquier otro lenguaje sería coser y cantar.... Que experiencia, mi madre. A veces por las noches aún sueño con aquello, fue horrible. Cualquier día intentaré hacer el polinomio de Interpolación de Lagrange, para que mis nietos lo terminen...
Sexto Lenguaje: CAML.
let factorial x =
let rec faux a b = match (a,b) with
(0,n) -> n
| (m,n) -> faux (m-1) (m*n)
in faux x 1;;
output_string stdout "Escribe un número -->";;
input_value stdin x;;
let result = factorial x;;
output_string stdout "El resultado es: ";;
output_value stdout result;;Bienvenidos al maravilloso mundo de la programación funcional, un universo donde todas vuestras ilusiones pueden hacerse realidad...
En fin...
Lo de la "programación funcional" define a un tipo de programación en el que, por decirlo de alguna forma, al ordenador, en vez de decirle cómo tiene cierto programa que hacer las cosas, se le dice directamente qué resultados queremos que logre, y el ordenador ya se lo monta sólo...
Se dice que esto es el futuro de la informática. No lo dudo, pero suena un poco de aquella manera.
Dejando coñas a parte, esto no es que sea un mal lenguaje de programación. Pero al principio choca un poco, porque es una forma totalmente distinta de programar.
Séptimo Lenguaje: PROLOG.
factorial(0,1).
factorial(X,N) :- N is X*M,X is W+1,factorial(W,M)....todo cuerpo sumergido en un líquido experimenta una fuerza de abajo hacia arriba igual al peso del volumen del líquido desalojado.
"PROLOG" viene de "Programación Lógica"... ¿¿¿Es lógico esto??? No dudo de la utilidad del lenguaje éste, pero que alguien me explique para qué. Breve no digo yo que no sea, pero intentar que este "programa" (por llamarlo de alguna manera) saque algo por pantalla sin mediación de un intérprete es de locos.
En fin, p'al que le guste.