[ Foro de Pascal ]

pascal y free pascal es maduro para hoy dia?

03-Aug-2014 00:41
juan carlos rebate
9 Respuestas

hola nacho, hace mucho que no entro al foro pero me alegra que sigues actualizandolo con contenido nuevo, tengo algunas dudillas que ojala puedas resolverme.

1 podrias actualizar pascal 5 con temas para hacer aplicaciones graficas sin lazarus? esque lazarus deja una regilla de puntos en las ventanas y no se pueden quitar.

2 recomendarias pascal para proyectos de software grandes?.

3 como podria proteger el software contra ingenieria inversa y descompiladores quiza usando la unidad para compilar a ensamblador seria bastante?.
recomendarias pascal para software comercial? yo todo lo que he visto en pascal y lazarus s cutrisimo mas como demos o betas o prototipos y no algo que realmente se pueda considerar bueno, proyectos como image3d comander que esta en la lista de proyectos lazarus.

mis dudas vienen a que ya que tengo conocimientos de pascal gracias a ti me gustaria usar la lcl para crear una fast cgi para crear un sistema web para gestionar el pequeño colegio donde estudie en mi infancia, seria mejor usar php para eso pero php no es seguro a nivel de archivos, no tiene protección ya que son texto plano y como free pascal compila las fcgi iran mas rapidas que las cgi de perl, se que mi aplicación se puede hacer porque incluso php se puede ejecutar como cgi o fast cgi, pero mi app no seria un motor de scripts sino una aplicación en si.

con el compilador c que trae free pascal podria compilar todo un programa en c o solo las cabeceras?, pues eso es todo de momento ojala puedas ayudarme un saludo nacho.


07-Aug-2014 13:11
Nacho Cabanes (+84)

Por partes...

Pascal es maduro pero cada vez menos usado.Yo hoy en día no lo recomendaría para proyectos muy grandes, porque para esos entornos me gusta más C#, que incluye "de base" estructuras como Listas Ordenadas y Tablas Hash (sólo por poner dos ejemplos), que en Pascal tienes que hacer a mano y que, por tanto, son fuente de posibles errores.

Hay proyectos grandes hechos en Pascal (con Lazarus y sobre todo con Delphi). Incluso el propio Lazarus está hecho con Free Pascal, así como mucho software a medida. Por supuesto, hay menos que en C, C++, Java o C#.

Yo para hacer una aplicación gráfica usaría Lazarus sí o sí. Usar alternativas como la unidad Graph para un proyecto completo hoy en día son irracionales. Y los puntos del formulario son una ayuda tuya, que no debería verse en el ejecutable final.

Un programa en Pascal será algo más robusto frente a ingeniería inversa que uno en Java o C# (a no ser que dejes la información de depuración en el ejecutable), pero eso no debería ser lo más importante hoy en día, sino tu productividad y la cantidad de cosas que puedes llegar a hacer. Si alguien lo descompila pero no tiene tu conocimiento original del problema, tiene menos de la mitad de una nueva solución.

Yo no haría una web en Pascal. PHP lo tienes en cualquier servidor y es tan seguro como tú quieras: los ficheros pueden ser binarios, o de texto encriptado, o estar en una carpeta distinta, o en una base de datos...

¿Para qué quieres "buscar entre lo que incluye Free Pascal" para usar su compilador de C incorporado?  De hecho, ¿estás seguro de que lo incorpora? Porque el código fuente de Free Pascal está hecho en Pascal, no en C. Si necesitas un compilador de C... usa cualquier otro.

Son sólo mis opiniones, claro, pero hoy en día yo Pascal sólo lo usaría para aprender (si te obligan a usarlo en tu centro de estudios) o para pequeños proyectos Windows usando Lazarus y poco más. Para casi todo lo demás existen herramientas más adecuadas.


07-Aug-2014 14:58
Luis Torres (+18)

Están hablando de proyectos grandes, ¿cuándo un proyectos es grande?, ¿una sola persona puede llegar a desarrollar un proyecto grande?, ¿cuánto tiempo me tomaría en resolver un proyecto así?, ¿dónde puedo conseguir información que me pueda guiar en la construcción de un proyecto grande?

Saludos.


07-Aug-2014 18:07
juan carlos rebate

c# no es apropiado para nada, el codigo es de juguete y luego las empresas que lo apoyan solo ponen problemas y mas problemas legales, por ejemplo se puede usar reflection para obtener el codigo tal y cual se escribió con todo detalle, lo de php no es del todo cierto, si quieres encriptarlos o hacerls binarios necesitas una extension doble una que lo cree en tu servidor de desarrollo y otra que lo lea en cada uno de los servidores que usen la aplicacion y eso no todos los hosting lo ofrecen, free pascal si incluye convertidor y compilador c, si miras la socumentacion lo veras, tambien pense en c++ pero es lento de  desarrollar y como pascal es mas facil de leer y mantener ademas de que al menos yo no encontre ningun descompilador, tampoco me gusta c# porque no es nativo y no entiendo bien eso de la herramienta para crear imagenes nativas, no se si se refiere al ejecutable o a que, ademas si quiero proteger necesito pagar los 600 euros de visual studio mas los 500 de dotfuscator, si tambien esta mono pero mono no permite creacion de apps comerciales sino pagas otros tantos euros, quiero que sea nativo, facil de mantener y leer y que o me ponga travas legales para intentar abrirme un huequecillo en este mundo tan hostil, acaso pido mucho? no, solo pido lo que pide cualquiera, ademas con c# no podria acceder a postgree ni a mysql sino pago licencia para proyectos comerciales mientras que pascal ya incluye unidades para estos motores de por si, es todo un dilema, no digo que valla a ganar un premio pero si quisiera proteger mi trabajo no se si me entiendes, de todas formas gracias por tu ayuda y consejos


09-Aug-2014 00:48
Nacho Cabanes (+84)

Lo de que C# no es apropiado es tu opinión, no la mía. Muchas grandes empresas, cuando buscan desarrolladores, dicen cosas como "Necesario dominio de C++ (también nos sirve C# o Java)" porque la sintaxis es suficientemente parecida, aunque la curva de aprendizaje sea algo más suave. Así que es adecuado como fin para algunas empresas, y como medio para otras muchas que lo consideran cercano a otros lenguajes modernos.

Tengo unos cuantos ex-alumnos que trabajan programando en C#, bastantes en Java, otros en VB.net / Asp.net, muchos en PHP, alguno en C++, alguno en Python, alguno con PL/SQL, otros con herramientas propietarias como Navision, dos en Cobol... pero no recuerdo ninguno que esté ganando dinero a raíz de trabajar en Pascal.

Si aun así, te quieres cerrar contra C# por el hecho de que el desarrollo inicial fuera de Microsoft (aunque hoy sea un estándar reconocido por Ecma y por ISO) o porque el mejor entorno de desarrollo que existe es de pago (excepto en su versión Express), y prefieres seguir con Pascal... es una opción. No la comparto, pero, como casi toda opción, es aceptable.

Sobre PHP, dices cosas desconcertantes. No necesitas nada adicional para poder crear ficheros binarios con la orden "fwrite" y encriptarlos de cualquiera de los montones de métodos existentes:

http://php.net/manual/es/function.fwrite.php

Y para Luis: lo de cuando un proyecto es "grande" es algo totalmente subjetivo. Una forma simplista de medir el tamaño es contar líneas de código. En ese sentido, un proyecto como el núcleo de Linux, que en su versión 3.6 tiene casi 16 millones de líneas de código, para mí es indudablemente grande. El propio Lazarus tiene más de 900.000 líneas de código, y Free Pascal casi 200.000, algo que cae fuera de lo que puede abarcar un programador solitario. Yo tengo varios proyectos por encima de 5.000 líneas, que sí se pueden hacer por una única persona en poco tiempo, incluso sin dedicación exclusiva, por lo que no debería ser considerado un proyecto "grande".

Para hacer proyectos medianos y grandes es imprescindible repartir carga de trabajo (¿diseño orientado a objetos?) con más gente que esté dispuesta a colaborar: se parte de un diagrama de clases, se crea un esqueleto que "compila pero no funciona" y cada persona va trabajando en una o varias clases, que se recopilan cada poco tiempo con la ayuda de herramientas de control de versiones, como Subversion o Git. Con mis alumnos suelo crear algún proyecto "no muy pequeño", de 2000-3000 líneas cada año, usando ese tipo de herramientas, además de los ejercicios normales de clase.


09-Aug-2014 20:19
juan carlos rebate

te paso algo que encontre
Para encriptar nuestro código existen varias herramientas muy fáciles de encontrar en internet. Tenemos una opción mucho más segura que es "precompilar" nuestro código que es como crear un .class si trabajáramos con Java. Esta opción tiene varias ventajas. Primero, y lo más importante es que nuestro código no puede ser interpretado de manera inversa. Además, contrariamente a la encriptación, ahorra recursos de procesamiento ya que no es necesario interpretar el script. El método de encriptación por el contrario lo que hace es incluir un proceso más de "desencriptado" y esto hace más lenta la ejecución de este script. Se puede especificar una fecha de caducidad, se pueden manejar licencias, etc. Así que está bastante bueno para hacer aplicaciones web distribuíbles y propietarias.
Existen varias herramientas gratuitas para hacer esto pero yo voy a enseñar cómo usar la más común ZendGuard. Ésta no es una herramienta libre, tiene un costo. Así que tendrán que pagar la licencia
Es necesario mencionar que, del lado del servidor, es necesario tener instalado el servicio Zend Optimizer.

por lo tanto tengo razon, corrigeme si estoy mal informado pero la funcion que tu mencionas puede ser interpretada de forma inversa seguire pegando todo lo que encontre en varias webs


10-Aug-2014 01:43
Luis Torres (+18)

Prof. Nacho, ¿cuál lenguaje utilizan Usted y sus alumnos para realizar sus proyectos en Github? Ojalá puede acceder a alguno ya realizado.

Saludos.


12-Aug-2014 21:03
Nacho Cabanes (+84)

Buffff... Creo que ahora te entiendo. No te refieres a ficheros de datos, sino a no dejar que tu código fuente sea legible, por lo que supongo que es porque ese sistema web que mencionas para tu ex-colegio no va a estar en un servidor remoto (en el que no existiría ese problema de privacidad), sino en local dentro del propio servidor, supongo que sobre una plataforma WAMP como XAMPP o Uniform Server. ¿Es así?

Y en ese caso... ¿realmente es tan malo que el código fuente se pueda consultar? Así, si el día de mañana necesitan una modificación y tú no estás disponible, otro informático podría ayudarles. A mí no me parece un problema tan grave. Si lo fuera, hay muchos "ofuscadores" que hacen el código menos legible (de forma muy limitada) y es suficiente barrera como para que mucha gente no se tome la molestia de intentar descifrarlo.

Para Luis: con mis alumnos normalmente uso Subversion, que es más simple que Git, y alojamos nuestros proyectos cooperativos de clase en Google Code. Como lenguaje de trabajo en clase en primer curso usamos C#, que me parece el más adecuado hoy en día para introducir en la programación a un futuro informático.


13-Aug-2014 20:51
juan carlos rebate

por fin me entiendes por fin, y si el servidor se puso hace tan solo un mes es nuevo pero con una licencia antigua de windows server 2008 que tenian por otro servidor, y como su licencia permitia 4 procesadores y el antiguo servidor tenia solo 2 y este nuevo otros 2 pues se les pemitio activar, su sistema esta bajo sharepoint (aun no entiendo porque), ahora quieren poner un debian 7 porque no les satisface del todo el sharepoint, el sistema yo lo hago encantado pero gratis, lo que cobro son las actualizaciones y el soporte, asi que si permito que todos puedan modificar que gano yo? ya que no hay mucho curro ahora, el tema de los ofuscadores ya probé muchos y son todos pesimos, algunos probocan warnings que son imposibles de solucionar porque modifican tanto el codigo que no se puede, la unica forma que se me ocurre es compilarlo pero claro....... esta bcompiler pero no tiene buen soporte, dicen que esta como en beta y además no tiene buen rendimiento, resulta que si no se comprime es rapidisimo pero pesa mucho, si se comprime es lentisimo pero pequeñisimo, eso me hace descartarlo, y no puedo pedirles que paguen 700 euros para una licencia del zend para compilar y otros tantos euros para el zend lector, conoces algun compilador bueno y que no necesite nada para poderse leer las aplicaciones en el servidor receptor? por eso queria hacer una fastcgi .


02-Jan-2015 14:18
Invitado (mdasilve@hotmail.com)

Hola Juan Carlos, lo que tu necesitas se llama RAUDUS, lo instalas como cualquier paquete de LAZARUS en la pagina te trae la info. Luego te aparece una pestaña con todos los componentes
llamada por supuesto Raudus, estos son los que debes usar para que aparezcan en el navegador. Para el diseño no escribes ni una linea de código solo arrastrar y soltar.
La diferencia radica que al compilar te genera un servidor empotrado junto con el ejecutable en el puerto 5000 si no me equivoco y "voilá" tienes tu .exe en el navegador !!. Hice una sala de chat para mi casa que funcionó 100% a través del wifi usando SQLITE y ZEOS para acceder a la BD., no tienes que pagar nada porque la licencia es LGPL.
Creo que llegué tarde para la solución pero igual la dejo. Un saludo a todos.
Marcelo






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)