¿Cuál es la diferencia entre Pascal libre y Lázaro?
He estado alejado de la industria del software durante muchos años. Ahora hago principalmente pequeñas empresas y especulo con acciones, pero a menudo también presto atención al desarrollo de la industria del software. Compré LAZARUS por capricho y jugué con él, de repente me fascinó y suspiré que era tan increíble. Ahora escribiré mis sentimientos sobre el juego de estos últimos días y los compararé desde todos los aspectos para que todos puedan verlos.
Primero hablemos de qué es LAZARUS. Es un entorno de desarrollo integrado OBJECT PASCAL. Su compilador utiliza FREE PASCAL, que es casi lo mismo que DELPHI. Se utilizan muchas unidades básicas y bibliotecas de clases. , las personas que conocen DELPHI pueden usar LAZARUS sin esfuerzo. LAZARUS puede ejecutarse en cualquier plataforma donde se pueda ejecutar el compilador FREE PASCAL. El lema es: "Escribe una vez, compila en cualquier lugar". /
Para simplificar, FREE PASCAL/LAZARUS se denominan colectivamente FPC
1) Plataforma de hardware en ejecución:
DELPHI: solo en INTEL Se ejecuta en X86.
FPC: INTEL, POWER PC, SPARC, ARM\, Motorola 680x0, etc., también soporta 64 bits
2) Sistema operativo:
DELPHI : VENTANAS .
FPC: Linux, FreeBSD, Mac OS X, DOS, Win32, Win64, WinCE, OS/2, Netware (libc y classic) y MorphOS. Su última versión 2.4 también soporta IPHONE y SymbianOS. Parece ser mucho más que DELPHI.
Lo que es aún mejor: ¡puedes desarrollar programas para algunos microcontroladores sin sistemas operativos! A partir de este punto, puede estar en pie de igualdad con C.
3) Interfaz de biblioteca de gráficos
DELPHI(VCL): WIN32:
FPC(LCL): WIN32/64, GTK, QT, WINCE, MAC OS CACAO de X y así sucesivamente.
4) Bibliotecas de control de terceros:
Relativamente hablando, hay menos FPC, pero ahora el trabajo de trasplante es muy rápido y muchas bibliotecas importantes se pueden mover desde DELPHI. Por ejemplo, el famoso control de red INDY y control de acceso a bases de datos: ZEOSLIB se puede utilizar bajo LAZARUS.
Hice una prueba y creé un formulario en DELPHI, que estaba lleno de muchos controles, y luego usé sus funciones en LAZARUS para convertir algunos de los controles más básicos (como la página ESTÁNDAR y la página ADICIONAL) , se puede usar sin ninguna modificación. Otros no se pueden usar con el aumento del trasplante en el futuro, creo que la mayoría de ellos se pueden usar, pero no lo sé cuando se ejecutan. cuál es la razón, aún no lo he descubierto.
5) Diferencias de idioma:
Ambos son lenguajes OBJECT PASCAL, altamente compatibles con DELPHI, y sus clases, paquetes, palabras clave, etc. son iguales, pero encontré que FPC es citado en algunos aspectos del estilo C, como: +=, -=, *=, /=. En DELPHI esto no es posible. Desde mi punto de vista personal, no estoy de acuerdo con esta forma de escribir. Complicará el código y destruirá la simplicidad del lenguaje PASCAL. Las funciones de la biblioteca de tiempo de ejecución RTL son casi todas iguales. Realmente admiro a esas personas increíbles. ¡Realmente se necesita mucho esfuerzo para crear algo como esto!
En la última versión de FPC 2.4, se ha introducido el bucle FOR .. IN ..DO y es compatible con DELPHI 2010. De hecho, creo que en el lenguaje PASCAL se debería mejorar FOR... TO... DO y agregar un STEP, para que el ciclo se pueda acelerar en algunos casos. Sin embargo, ahora solo se puede agregar uno a la vez. tiempo y la eficiencia a veces es baja. Hay otros idiomas disponibles, como MODULA. Me pregunto por qué no están incluidos el antiguo BORLAND y el actual CODEGEAR. ¿es difícil?
En términos de soporte UNICODE, FPC lo ha apoyado durante mucho tiempo, mientras que DELPHI no comenzó hasta 2009. FPC usa UTF8 y DELPHI usa UCS-2.
Es diferente al calcular. Por ejemplo, si se usa una cadena: "abcdefg program" en DELPHI 2010, la longitud calculada usando LENGTH es 9, pero en FPC es 13. En UTF8, los códigos que no son ASCII se codifican con tres bytes, mientras que en DELPHI, tanto el chino como el inglés se consideran una sola palabra. Por eso hay tanta diferencia.
Así que la misma cadena tiene diferentes longitudes en DELPHI y FPC, no hagas escándalo.
En términos de compatibilidad con 64 bits: FPC ha estado disponible durante mucho tiempo, pero DELPHI aún no se ha implementado. Realmente no entiendo cómo tantos ingenieros profesionales no pueden hacerlo con estos aficionados. DELPHI realmente ha estado en declive en los últimos años y no ha mejorado nada. Juega .NET con MS todo el día, pero a la mitad del juego resulta que si continúa jugando así, su vida será. perdido, entonces regresa. Es una pena que se haya perdido demasiado tiempo.
6) Editor de código:
Personalmente creo que su editor es más fácil de usar que DELPHI 7 y su estilo es similar a DELPHI 2010.
7) Eficiencia de compilación:
FPC es más lento que DELPHI
8) Eficiencia de ejecución:
He escrito un par de números enteros El algoritmo de clasificación rápida genera números aleatoriamente y los almacena en una matriz. El tamaño de los datos es 50 millones y el FPC es un 30% más lento que DELPHI 7.
Probé nuevamente el cálculo de punto flotante: el tamaño de los datos también es de 50 millones. La prueba se dividió en dos aspectos:
Uno es hacer solo sumas, restas, multiplicaciones y operaciones básicas. división: como la fórmula sum := sqrt(sum+((arr_float[i] / arr_float[i-1]) / 7.7) * 0.056) ; FPC también es aproximadamente un 30% más lento que DELPHI 7.
Pero cuando se realizaron más pruebas de computación científica, FPC fue mucho más lento, casi 1,5 veces más lento. Por ejemplo, se agrega una declaración: suma := potencia(suma,aleatorio * 1.5)+sin(100 * 3.14/180)+cos(100 * 3.14 /180)+log10(suma * 100); está en progreso Al calcular funciones como POWER, SIN, COS, LOG, etc., la eficiencia cae rápidamente. Eché un vistazo aproximado y descubrí que en RTL, FPC es una función escrita en PASCAL, mientras que muchas de DELPHI están escritas en. asamblea. Pero si se trata solo de una diferencia de idioma, la eficiencia no debería disminuir tanto. También debería estar relacionada con algunos algoritmos.
En este sentido, FPC todavía debería tener mucho margen de mejora. Uno es mejorar el compilador en sí y el otro es mejorar la biblioteca RTL. En términos de bibliotecas RTL, la última versión de DELPHI ha introducido FASTCODE de código abierto. Creo que FPC también debería introducirse y trasplantarse a FPC, para que podamos utilizar los resultados del código abierto para mejorar rápidamente la calidad de RTL. Tienes que hacerlo todo tú mismo. Si reinventamos la rueda, la eficiencia será demasiado lenta.
Si la brecha de eficiencia general entre FPC y DELPHI se puede reducir a aproximadamente el 10 %, entonces los campos de aplicación práctica de FPC se ampliarán enormemente. Supondrá una gran amenaza para DELPHI.
Por cierto, descargué DELPHI 2010 hace unos días. Después de una prueba de comparación con DELPHI 7, descubrí que DELPHI 2010 es un poco más lento que DELPHI 7, alrededor de un 3-5%. Por supuesto, DELPHI 2010 también agrega muchas cosas sofisticadas, como plantillas genéricas, reflexiones, etc. Como no hay licencia, solo se puede usar durante 14 días. De vez en cuando, aparecen advertencias de licencia de prueba de la empresa que solicitan. un reinicio antes de que pueda usarse. Enfurecido, fue eliminado.
9) Tamaño del programa:
Hay que decir que el tamaño del programa compilado por FPC es demasiado grande. Por supuesto, si se elimina la información de depuración, el tamaño puede ser. Se ha reducido mucho, pero sigue siendo más pequeño que DELPHI y mucho más grande, y ésta es un área que necesita muchas mejoras.
10) Conclusión:
En general, FREE PASCAL es muy bueno y no hay problema en realizar algún desarrollo de software que no sea muy exigente. Al mismo tiempo, su velocidad de desarrollo es muy rápida y debería tener un buen rendimiento. Especialmente para el desarrollo multiplataforma, FPC es una muy buena opción.