Hola.
Recuerdo haber tratado este tema con Jachguate en privado hace tiempo.
Cita:
Empezado por delphi.com.ar
Particularmente prefiero Delphi por su código sencillo y agradable, sabiendo que tienen prácticamente la misma potencialidad.
|
Permíteme.......discrepar
Para muchas cosas prefiero C++, sobre todo por la sintaxis (justo lo que muchos rechazan), que aunque a simple vista parece más complicada luego cuando llevas 10 minutos programando es más de lo mismo, pero mucho más potente en lo que a sintaxis se refiere.
Código:
// Equivalente de StrCmp en C
long CompararCadenas(char *c1, char *c2) {
if (!c1 || !c2) return c2 - c1;
while (*c1 && *c2 && *c1 == *c2) {
c1++;
c2++;
}
return (*c1 || *c2)?(*c1 - *c2):0;
}
Código:
// Equivalente de StrCmp en Delphi
function comparaCadenas(c1, c2: PChar): integer;
begin
if (c1 = nil) or (c2 = nil) then
result := Integer(c2) - Integer(c1)
else begin
while (c1^ <> #0) and (c2^ <> #0) and (c1^ = c2^) do begin
Inc(c1);
Inc(c2);
end;
if (c1^ <> #0) or (c2^ <> #0) then
result := Integer(c1^) - Integer(c2^)
else
result := 0;
end;
end;
A mi me gusta más la primera que además aun se puede optimizar más, lo que pasa es que si la optimizas más en cuanto a sintaxis, no obtienes mejor resultado, en el caso de esta función obtendrías el mismo código máquina pero peor legibilidad. Y comparando la de Delphi con la de C lo que sí te puedo decir es que el código maquina resultante no difiere mucho el uno del otro.
Una vez hice unas pruebas de velocidad con una rutina que repetía 10000 veces la búsqueda de un texto en una cadena de más de 1Mb. El primer algoritmo lo hice en C tardaba unos 19 Segs., el segundo en Delphi (tardaba casi 2 segs más), luego en ensamblador embebido en Delphi hice 2 o 3 versiones y todas le sacaban más de 4 segundos a la versión de C, pero una de ellas creo que le sacaba 9 o 10 Segs. Y yo con eso y poco más me lo paso bomba y soy feliz