PDA

Ver la Versión Completa : Cómo podría portar a GNU/Linux una aplicación hecha en Delphi


nancy Garcia
18-08-2006, 17:31:23
Necesito ayuda , como hago para hacer correr o llevar una aplicacion en delphi a linux, mas o menos me comentaron que se podia hacer con Kylix, pero no no se nada de eso, espero que me ayuden :(

dec
18-08-2006, 17:41:10
Hola,

Me temo que la necesidad de portar a GNU/Linux una aplicación hecha con Delphi en Windows y viceversa, portar a Windows una aplicación hecha con Kylix en GNU/Linux, me temo, digo, que es algo que debe anticipararse. De no hacerlo así después se complicará bastante la tarea.

En Delphi generalmente se trabaja con componentes y clases pertenecientes a la Visual Component Library (VCL) y para hacer lo que precisas habría que trabajar única y exclusivamente con la CLX, que es la librería que Borland preparaba (¿se llegó a terminar, está abandonada?) para permitir escribir código compilable tanto en GNU/Linux (con Kylix) como en Windows (con Delphi).

Pero, no sé yo si me estoy yendo por las ramas y no es esto lo que precisas... Ya dirás lo que sea. ;)

Ñuño Martínez
18-08-2006, 19:40:12
Efectivamente, es algo que debe estar planificado desde el principio. Aun así, aquí van algunos consejos de álguien que usa Linux para programar y luego lo pasa a Windows:
Conocer bien el lenguaje: No es una tontería. Hay que saber qué cosas son norma (standard) y cuales son extensiones del compilador. Si se usan extensiones puede haber problemas incluso si los compiladores son del mismo fabricante (por ejemplo, no funcionan igual las DLL de Windows y las .so de *NIX).
Usar las librerías adecuadas: No sólo usar CLX sino librerías que estén disponibles en más de una plataforma o que incluyan el código fuente, de forma que se puedan modificar en caso necesario.
Usar aplicaciones adicionales multiplataforma: Por ejemplo, si el programa accede a MS-Access pues mal vamos porque sólo funciona en sistemas Windows (creo que hubo una versión para Mac, pero no estoy seguro de ello). Mejor usar Oracle o MySQL, que también están disponibles en otros sistemas. Lo mismo para servidores web y cualquier otro programa.
Aprender a usar más de un compilador: Esto viene bien por si en algún momento el fabricante nos deja "colgados". En el caso de Delphi/Kylix tenemos como alternativas GNU-Pascal, Free Pascal y Lazarus.Por ahora no se me ocurre nada más, pero creo que son consejos bastante útiles.

Casimiro Notevi
18-08-2006, 21:51:23
Efectivamente, es algo que debe estar planificado desde el principio. Aun así, aquí van algunos consejos de álguien que usa Linux para programar y luego lo pasa a Windows:
Conocer bien el lenguaje: No es una tontería. Hay que saber qué cosas son norma (standard) y cuales son extensiones del compilador. Si se usan extensiones puede haber problemas incluso si los compiladores son del mismo fabricante (por ejemplo, no funcionan igual las DLL de Windows y las .so de *NIX).
Usar las librerías adecuadas: No sólo usar CLX sino librerías que estén disponibles en más de una plataforma o que incluyan el código fuente, de forma que se puedan modificar en caso necesario.
Usar aplicaciones adicionales multiplataforma: Por ejemplo, si el programa accede a MS-Access pues mal vamos porque sólo funciona en sistemas Windows (creo que hubo una versión para Mac, pero no estoy seguro de ello). Mejor usar Oracle o MySQL, que también están disponibles en otros sistemas. Lo mismo para servidores web y cualquier otro programa.
Aprender a usar más de un compilador: Esto viene bien por si en algún momento el fabricante nos deja "colgados". En el caso de Delphi/Kylix tenemos como alternativas GNU-Pascal, Free Pascal y Lazarus.Por ahora no se me ocurre nada más, pero creo que son consejos bastante útiles.
Nadie puede ponerlo en duda :)

mamcx
18-08-2006, 23:15:18
Adicionalmente:

1. Tener separado la logica de negocios del acceso a datos de la parte visual.

La logica de negocios deberia ser 100% portable, los otros 2 es mas facil portar el acceso a datos y es mas dificil la parte visual.

De hecho, no estoy a favor de usar una unica libreria en multiples plataformas, porque termina siendo algo poco practico desde el punto de vista del usuario (mejor ejemplo que el intento de java no puede haber) asi como tambien se pierden capacidades que tiene la una que no la tiene la otra.

Lo mejor, es tener 2 versiones de la interface visual.... obviamente compartiendo al maximo el codigo pero hay que tener en cuenta que para cualquier aplicacion no trivial toca hacer adaptaciones especificas...

Es el mismo cuento que con paginas web y el adaptar el html para IE, FireFox, Konqueror, Operar... etc...

Lo mas importante, es organizar y limpiar el codigo.

2. Inventariar los componentes, en especial los de terceros y ver cuales son portables y cuales no

3. Verificar las llamadas a APIS especificas como el registry, ActiveX, COM, assembler, etc...

0. Realmente vale la pena? Con opciones como Wine, Terminal Services, y en especial VMWARE, seria bueno analizar si el port vale la pena... porque siempre es un esfuerzo...

Y si para arreglar "paginitas" me he demorado unos 3-4 dias en ocaciones para que funcionen en los 3 principales (IE 5-6, IE7/FireFox, Opera) algo mas complejo se complica...

Casimiro Notevi
18-08-2006, 23:42:12
Adicionalmente: [...] algo mas complejo se complica...
¡¡¡Son tantas cosas a tener en cuenta ANTES de ponerse a teclear código!!!

Si se hace un buen trabajo de análisis, cuanto más completo y riguroso... luego, a la hora de escribir código, resulta todo muy sencillo, claro y "lógico".

En mi anterior trabajo, a la hora de preparar un nuevo proyecto, dedicábamos todo el tiempo necesario a hacer un buen análisis, esto conseguía que luego todo fuese muy cómodo para todos escribir el programa, sólo había que seguir las especificaciones.
La proporción de tiempo era aproximadamente de 2 meses de análisis para un proyecto de 9 meses total, 3 programadores.

En mi trabajo actual, mis jefes dicen: "¿analisis?, ¿para qué?, se hace ya, no se pierde tiempo y si luego hay que modificar algo, se modifica, y si no hay que modificar nada, pues tiempo ganado :confused:.
Evidentemente, luego hay que reescribir todo de nuevo y si algo estaba previsto para un mes, se hace en tres meses.
Aunque no es de extrañar cuando suelta frases como: "¿un analista?, para qué quiere una empresa un analista?, eso es tirar el dinero":confused::confused:

Con decir que llevamos varios años para hacer una nueva contabilidad para el soft de gestión comercial que tenemos y, evidentemente, nos resulta imposible, quieren que la hagamos sin previamente hacer un análisis/estudio de la misma, quieren que simplemente nos pongamos a "picar código", y así "seguro" que ya hubiésemos acabado hace tiempo...
Ya les he dicho varias veces que de esa forma es imposible hacer algo decente, pero allá ellos, se quedarán sin contabilidad :D

Casimiro Notevi
17-09-2006, 00:40:11
[...]¡Hola a todos!
Sólo invitarlos a utilizar el término biblioteca, el cual es más correcto desde el punto de vista lingüístico, y el utilizado formalmente por los autores serios. Como analogía, hace varios años comenzó a gestarse en nuestro ámbito el decir acceder (término correcto) en lugar de "accesar"; algo similar pasa con los términos biblioteca y "librería". Espero continúe esta sana tendencia de llamarle a las cosas por su verdadero nombre. ;)

Por lo demás, me parecen muy acertadas sus opiniones respecto a las previsiones que deben considerarse cuando se va a desarrollar una aplicación para dos o más sistemas operativos.


:rolleyes: Contamina el ambiente laboral, no valora la labor de análisis...¿qué haces con un jefe así? :confused:. Lo peor de todo es que eso ocurre con muchísimos desarrolladores y jefes de sistemas que siguen programando como si estuvieran en los 80's :(. Hay que hacerles ver que:

Análisis = Planos
Base de datos = Cimientos
Programación = Muros

¿Por dónde comienzan a construir una aplicación? ¿Levantando los muros? :confused: No quiero imaginarme el edificio terminado (http://fotosdeurbano.blogspot.com/2006/08/caf-internet.html) :eek:.

Un abrazo analítico.

Al González. :)

Desde que tuve un poco de uso de razón, siempre he dicho a mis clientes/amigos que la base de datos es como la estructura de un edificio. Así que esa analogía comparativa me parece perfecta.

Gabel
17-09-2006, 01:17:02
¡Hola a todos!
Sólo invitarlos a utilizar el término biblioteca, el cual es más correcto desde el punto de vista lingüístico, y el utilizado formalmente por los autores serios. Como analogía, hace varios años comenzó a gestarse en nuestro ámbito el decir acceder (término correcto) en lugar de "accesar"; algo similar pasa con los términos biblioteca y "librería". Espero continúe esta sana tendencia de llamarle a las cosas por su verdadero nombre. ;)


Yo lei que el termino biblioteca o libreria es aceptado por igual en el castellano porque todo depende de donde esté uno.
Por ejemplo: me dicen que en la madre patria se pronuncia Rumania (con acento en la i) mientras que en Argentina, decimos Rumania (con acento en la primera a) :rolleyes:

Ñuño Martínez
18-09-2006, 10:24:45
Sólo invitarlos a utilizar el término biblioteca, el cual es más correcto desde el punto de vista lingüístico, y el utilizado formalmente por los autores serios. Como analogía, hace varios años comenzó a gestarse en nuestro ámbito el decir acceder (término correcto) en lugar de "accesar"; algo similar pasa con los términos biblioteca y "librería". Espero continúe esta sana tendencia de llamarle a las cosas por su verdadero nombre. ;)

Pues ahora que lo pienso, tiene razón. ¿Cómo no me dí cuenta antes yo, que no utilizo nunca la horrenda palabra software?

No volverá a pasar. Gracias por el apunte.

Casimiro Notevi
18-09-2006, 11:37:14
Pues ahora que lo pienso, tiene razón. ¿Cómo no me dí cuenta antes yo, que no utilizo nunca la horrenda palabra software?

No volverá a pasar. Gracias por el apunte.

Tampoco me gusta pronunciar software ni hardware.

Me dan "repelús". :)