Discussion:
[OT?] Desarrollo aplicaciones multiplataforma (casi filosofia. Un poco largo)
(too old to reply)
Armando Paz
2003-09-05 18:41:16 UTC
Permalink
Hola compañeros.

Antes de nada me gustaría pedir perdón si el tema que trato es off-topic
(nunca me ha quedado muy claro eso del off-topic, al final muchas de las
cuestiones buscan el utilizar de forma más completa nuestro Debian, ¿no?).

Soy un principiante en casi todo, también en la programación. Recuerdo que
en mis años de estudiante aprendí algo de pascal, y después algo de C.
Entonces era cuando turbopascal y turboc estaban de moda, y se construían
aplicaciones generalmente para "consola" utilizando una "programación
estructurada" (creo que la llamaban así: main-procedimientos-funciones).

Bien, hay me quedé. Hoy me gustaría volver a ese mundillo e iniciarme en la
programación de aplicaciones gráficas. Y me he dicho: "pues ya que vas a
aprender a desarrollar aplicaciones porque no utilizas algún lenguaje que te
permita compartir lo que programas con el resto de la comunidad (linux) y
además permita pasárselas también a algunos de tus amigos que siguen con
windows".

Creo que lo que busco es una "herramienta de desarrollo gráfico de
aplicaciones multiplataforma", y creo que esto se llama IDE=entorno de
desarrollo integrado + librerías gráficas + compilador + depurador + miles
de cosas más que no alcanzo a adivinar.

Tras buscar mucho por la red, en los archivos de la lista, etc., he
encontrado lo siguiente:
*KDevelop
*Anjuta
*Glade
*wxWindow
*...

Mi objetivo es desarrollar en linux, aprender en linux, programar, depurar,
etc. en linux... y cuando la aplicación esté lista poder "portarla" a
windows. Así logro mi objetivo de compartir con TODO EL MUNDO
independientemente del sistema operativo que utilice.

¿Es esto posible? Si lo es, ¿qué herramientas me aconsejan?

Un segundo objetivo, si llegara a aprender mucho mucho mucho es colaborar en
algún gran proyecto de la comunidad, dígase: mozilla, gnome, etc. ¿Sería
posible enfocar las respuestas a las preguntas anteriores según este segundo
objetivo?

Perdón por la longitud, pero creo que si se forma un buen "hilo" mucha gente
aprenderemos mucho del estado actual de la programción y sus herramientas en
el mundo GNU/Linux--->NUESTRO QUERIDO DEBIAN.

Muchas gracias por anticipado.

Salud.
--
---------------------------------------------
--- Armando Paz ---
--- Debian GNU/Linux 2.4.21 ---
--- Usuario Linux Registrado #189304 ---
---------------------------------------------
César Soler
2003-09-05 19:29:44 UTC
Permalink
Hola Armando,

sobre el entorno no te puedo aconsejar, pero si te digo que si lo que
buscas es portabilidad sin tener que recompilar, tu lenguaje es Java.

suerte!
Post by Armando Paz
Hola compañeros.
Antes de nada me gustaría pedir perdón si el tema que trato es off-topic
(nunca me ha quedado muy claro eso del off-topic, al final muchas de las
cuestiones buscan el utilizar de forma más completa nuestro Debian, ¿no?).
Soy un principiante en casi todo, también en la programación. Recuerdo que
en mis años de estudiante aprendí algo de pascal, y después algo de C.
Entonces era cuando turbopascal y turboc estaban de moda, y se construían
aplicaciones generalmente para "consola" utilizando una "programación
estructurada" (creo que la llamaban así: main-procedimientos-funciones).
Bien, hay me quedé. Hoy me gustaría volver a ese mundillo e iniciarme en la
programación de aplicaciones gráficas. Y me he dicho: "pues ya que vas a
aprender a desarrollar aplicaciones porque no utilizas algún lenguaje que te
permita compartir lo que programas con el resto de la comunidad (linux) y
además permita pasárselas también a algunos de tus amigos que siguen con
windows".
Creo que lo que busco es una "herramienta de desarrollo gráfico de
aplicaciones multiplataforma", y creo que esto se llama IDE=entorno de
desarrollo integrado + librerías gráficas + compilador + depurador + miles
de cosas más que no alcanzo a adivinar.
Tras buscar mucho por la red, en los archivos de la lista, etc., he
*KDevelop
*Anjuta
*Glade
*wxWindow
*...
Mi objetivo es desarrollar en linux, aprender en linux, programar, depurar,
etc. en linux... y cuando la aplicación esté lista poder "portarla" a
windows. Así logro mi objetivo de compartir con TODO EL MUNDO
independientemente del sistema operativo que utilice.
¿Es esto posible? Si lo es, ¿qué herramientas me aconsejan?
Un segundo objetivo, si llegara a aprender mucho mucho mucho es colaborar en
algún gran proyecto de la comunidad, dígase: mozilla, gnome, etc. ¿Sería
posible enfocar las respuestas a las preguntas anteriores según este segundo
objetivo?
Perdón por la longitud, pero creo que si se forma un buen "hilo" mucha gente
aprenderemos mucho del estado actual de la programción y sus herramientas en
el mundo GNU/Linux--->NUESTRO QUERIDO DEBIAN.
Muchas gracias por anticipado.
Salud.
--
---------------------------------------------
--- Armando Paz ---
--- Debian GNU/Linux 2.4.21 ---
--- Usuario Linux Registrado #189304 ---
---------------------------------------------
--
--
César Soler <***@euskalnet.net> PGP KeyID: 0x179DAD53

La desgracia abre el alma a una luz que la prosperidad no ve.
-- Lacordaire.
Cesar Rincon
2003-09-05 21:15:00 UTC
Permalink
Post by Armando Paz
Antes de nada me gustaría pedir perdón si el tema que trato es
off-topic (nunca me ha quedado muy claro eso del off-topic, al final
muchas de las cuestiones buscan el utilizar de forma más completa
nuestro Debian, ¿no?).
Hace tiempo que busco una lista de correo en español sobre
programación en C para Linux (quiero decir lista de correo como ésta,
no foros web, que de esos vi varios). Lo más cercano que he
encontrado es:

http://www.sld.cu/pipermail/linux-prog

Estoy suscrito, pero aún no escribo nada. Estoy en proceso de
familiarizarme con la lista y los parroquianos regulares. Es una
lista de muy poco tráfico, por lo que he visto.

Como sea, creo que estos temas no están tan "off-topic" aquí. Si de
una discusión como ésta sale un nuevo programa (o programador) para
Debian, ya habrá valido la pena.
Post by Armando Paz
Creo que lo que busco es una "herramienta de desarrollo gráfico de
aplicaciones multiplataforma", y creo que esto se llama IDE=entorno
de desarrollo integrado + librerías gráficas + compilador +
depurador + miles de cosas más que no alcanzo a adivinar.
Ya. Pues mira, posiblemente no soy la persona más indicada para
hacerte recomendaciones, porque no soporto los IDEs :-) (yo programo
en Emacs y construyo con make, y de cualquier forma rara vez programo
GUIs). Sin embargo, tengo algo de experiencia desarrollando software
portable, de manera que intentaré redactar algo útil.

Primero, considera aprender Java. No hay nada más portable que Java,
al menos en lo que toca a aplicaciones GUI. Estoy seguro de que hay
docenas de IDEs, comerciales y libres, que podrás usar. Y en mi
opinión es un lenguaje muy bueno para principiantes---un poco como
Pascal, que hace difícil al novato cometer errores garrafales o
acostumbrarse a prácticas sucias. Además Java está de moda. Tu valor
como programador en el mercado aumentará si sabes Java.

El problema con Java es que requiere muchísimos recursos, lo cual lo
hace lento a menos que tus máquinas sean grandes. Y quiero decir
*grandes*: en mi vieja laptop (K6 @ 450MHz con 192M RAM) javac es
exasperante y Swing es simplemente insufrible. Peor, la interfaz
gráfica es inconsistente con el resto del sistema operativo---cosa que
en Linux no significa mucho, pero vaya, yo pienso que los
programadores de GUI en Linux deberían empujar hacia corregir ésto, no
perpetuar el status quo.

Quitando Java, puedes intentar un "lenguaje de alto nivel" con algún
tipo de "binding" hacia bibliotecas de GUI. Digamos Perl, Python o
Ruby. No te recomiendo Tcl/Tk, porque las aplicaciones se ven
espantosas (de nuevo estoy siendo subjetivo). Python+wxWindows parece
ser una buena combinación: el cliente de BitTorrent está programado
así, y a mi me gusta. Perl ó Ruby + GTK + Glade me parecen
combinaciones muy interesantes, particularmente para gente a la que le
gusta hacer sus GUIs en un editor "visual", aunque no sé cuántos
problemas tengas para hacerlas funcionar en el S.O. cuyo nombre no ha
de ser mencionado.

Una alternativa interesante: considera explorar el desarrollo de
aplicaciones usando XUL, sobre Mozilla.

En este punto debo confesar que yo probablemente no consideraría
siquiera la posibilidad de usar algo de lo que he recomendado arriba
para desarrollos "serios". Quizá es que ya soy un perro muy viejo
para estar aprendendiendo nuevos trucos :-) , pero mis programas
"serios" los hago en C. Ó C++, si es *absolutamente* necesario.

Para desarrollar GUIs portables en un lenguaje de bajo nivel necesitas
compilador, debugger (¿"depurador" se entiende?) y una biblioteca de
portabilidad. En Linux, el compilador es GCC y el debugger es GDB,
así que no busques mucho. Lo que quizá querrás elegir es un
"front-end" gráfico, pero eso seguro lo tendrá tu IDE.

De la biblioteca, bueno, si vas a programar en C tu única opción,
hasta donde sé, es GTK. Si vas por C++, yo exploraría gtkmm, Qt y
wxWindows. Esta última en particular es formidable: la he usado para
desarrollar software "serio" (aplicaciones bancarias, principalmente)
y definitivamente la recomiendo. De hecho, a mis programadores los
obligo a usarla cuando hay que hacer GUIs. Es elegante, madura y
razonablemente fácil de entender; y las aplicaciones funcionan
correctamente y se ven "bonitas" en todas las plataformas a las que
quieras portar. Las nuestras las probamos cotidianamente en Linux,
Solaris y el S.O. cuyo nombre no ha de ser mencionado, y siempre se
ven "profesionales". Quizá es ese "look nativo" lo que da ese efecto,
no sé.

En fin. Sobre IDEs... Pues te recomiendo buscar IDEs con
aptitude/dselect, o a través de http://packages.debian.org/ . Te paso
el primero que vi:

http://packages.debian.org/testing/devel/widestudio.html

Parece acercarse mucho a lo que quieres. Creo que el proyecto
wxWindows también tiene un IDE, echa un ojo en su sitio web.

Nota que, si vas a programar software libre para GNU/Linux y *BSD,
quizá no deberías encariñarte mucho con el IDE. Piensa que tarde o
temprano querrás (o tus usuarios te pedirán) un sistema de "build" con
base en las "autotools" (autoconf, automake, et al). De forma que
considera apartar un poco de tiempo para aprender algo de sh, m4 y
make.

Finalmente, considera que una alternativa a programar GUIs es
programar aplicaciones "web". En muchos casos es más fácil y más
conveniente, y la gama de herramientas que puedes usar es más amplia.

Saluditos.

-CR
Guillermo Simón Boffelli
2003-09-06 14:08:28 UTC
Permalink
Hola gente ... muy interesante este tema.
Les cuento que soy de los viejos y arcaicos programadores, de la época en que utilizaban tarjetas perforadas y Fortran y nuestras madres decían: "Estudiá graboverificador o graboperforador que ahí está el futuro hijo", bueno, hace mucho :-).
En realidad, tanto no me quedé ahí :-), programé mucho en Informix (Y otros lenguajes) para Bancos, Inmobiliarias y Turismo, pero siempre orientado a consola o modo texto, por eso con lo que escribió "Armando Paz" me siento muy identificado y por lo tanto me pareció muy interesante lo que se ha escrito hasta ahora sobre el tema.
Mi idea es ponerme a estudiar algo de PHP y ver si se puede hacer el mismo tipo de aplicaciones que yo hacía o hago.
Me han comentado que con APACHE+PHP+(MYSQL o POSTGRESQL) se pueden hacer lindas cosas para la web o una Intranet, vamos a ver que pasa, además pienso ponerme a estudiar algo de "C" pues no sé nada y realmente me siento un ignorante.
Saludos para todos, les vuelvo a decir, muy bueno este tema ... los sigo leyendo/aprendiendo.

Guillermo.
San Carlos Centro - Santa Fe - Argentina

----- Mensaje original -----
De: Cesar Rincon <***@et.com.mx>
Para: <debian-user-***@lists.debian.org>
Enviado: Viernes, 05 de Septiembre de 2003 18:15
Asunto: Re: [OT?] Desarrollo aplicaciones multiplataforma (casi filosofia. Un poco largo)
Post by Cesar Rincon
Post by Armando Paz
Antes de nada me gustaría pedir perdón si el tema que trato es
off-topic (nunca me ha quedado muy claro eso del off-topic, al final
muchas de las cuestiones buscan el utilizar de forma más completa
nuestro Debian, ¿no?).
Hace tiempo que busco una lista de correo en español sobre
programación en C para Linux (quiero decir lista de correo como ésta,
no foros web, que de esos vi varios). Lo más cercano que he
http://www.sld.cu/pipermail/linux-prog
Estoy suscrito, pero aún no escribo nada. Estoy en proceso de
familiarizarme con la lista y los parroquianos regulares. Es una
lista de muy poco tráfico, por lo que he visto.
Como sea, creo que estos temas no están tan "off-topic" aquí. Si de
una discusión como ésta sale un nuevo programa (o programador) para
Debian, ya habrá valido la pena.
Post by Armando Paz
Creo que lo que busco es una "herramienta de desarrollo gráfico de
aplicaciones multiplataforma", y creo que esto se llama IDE=entorno
de desarrollo integrado + librerías gráficas + compilador +
depurador + miles de cosas más que no alcanzo a adivinar.
Ya. Pues mira, posiblemente no soy la persona más indicada para
hacerte recomendaciones, porque no soporto los IDEs :-) (yo programo
en Emacs y construyo con make, y de cualquier forma rara vez programo
GUIs). Sin embargo, tengo algo de experiencia desarrollando software
portable, de manera que intentaré redactar algo útil.
Primero, considera aprender Java. No hay nada más portable que Java,
al menos en lo que toca a aplicaciones GUI. Estoy seguro de que hay
docenas de IDEs, comerciales y libres, que podrás usar. Y en mi
opinión es un lenguaje muy bueno para principiantes---un poco como
Pascal, que hace difícil al novato cometer errores garrafales o
acostumbrarse a prácticas sucias. Además Java está de moda. Tu valor
como programador en el mercado aumentará si sabes Java.
El problema con Java es que requiere muchísimos recursos, lo cual lo
hace lento a menos que tus máquinas sean grandes. Y quiero decir
exasperante y Swing es simplemente insufrible. Peor, la interfaz
gráfica es inconsistente con el resto del sistema operativo---cosa que
en Linux no significa mucho, pero vaya, yo pienso que los
programadores de GUI en Linux deberían empujar hacia corregir ésto, no
perpetuar el status quo.
Quitando Java, puedes intentar un "lenguaje de alto nivel" con algún
tipo de "binding" hacia bibliotecas de GUI. Digamos Perl, Python o
Ruby. No te recomiendo Tcl/Tk, porque las aplicaciones se ven
espantosas (de nuevo estoy siendo subjetivo). Python+wxWindows parece
ser una buena combinación: el cliente de BitTorrent está programado
así, y a mi me gusta. Perl ó Ruby + GTK + Glade me parecen
combinaciones muy interesantes, particularmente para gente a la que le
gusta hacer sus GUIs en un editor "visual", aunque no sé cuántos
problemas tengas para hacerlas funcionar en el S.O. cuyo nombre no ha
de ser mencionado.
Una alternativa interesante: considera explorar el desarrollo de
aplicaciones usando XUL, sobre Mozilla.
En este punto debo confesar que yo probablemente no consideraría
siquiera la posibilidad de usar algo de lo que he recomendado arriba
para desarrollos "serios". Quizá es que ya soy un perro muy viejo
para estar aprendendiendo nuevos trucos :-) , pero mis programas
"serios" los hago en C. Ó C++, si es *absolutamente* necesario.
Para desarrollar GUIs portables en un lenguaje de bajo nivel necesitas
compilador, debugger (¿"depurador" se entiende?) y una biblioteca de
portabilidad. En Linux, el compilador es GCC y el debugger es GDB,
así que no busques mucho. Lo que quizá querrás elegir es un
"front-end" gráfico, pero eso seguro lo tendrá tu IDE.
De la biblioteca, bueno, si vas a programar en C tu única opción,
hasta donde sé, es GTK. Si vas por C++, yo exploraría gtkmm, Qt y
wxWindows. Esta última en particular es formidable: la he usado para
desarrollar software "serio" (aplicaciones bancarias, principalmente)
y definitivamente la recomiendo. De hecho, a mis programadores los
obligo a usarla cuando hay que hacer GUIs. Es elegante, madura y
razonablemente fácil de entender; y las aplicaciones funcionan
correctamente y se ven "bonitas" en todas las plataformas a las que
quieras portar. Las nuestras las probamos cotidianamente en Linux,
Solaris y el S.O. cuyo nombre no ha de ser mencionado, y siempre se
ven "profesionales". Quizá es ese "look nativo" lo que da ese efecto,
no sé.
En fin. Sobre IDEs... Pues te recomiendo buscar IDEs con
aptitude/dselect, o a través de http://packages.debian.org/ . Te paso
http://packages.debian.org/testing/devel/widestudio.html
Parece acercarse mucho a lo que quieres. Creo que el proyecto
wxWindows también tiene un IDE, echa un ojo en su sitio web.
Nota que, si vas a programar software libre para GNU/Linux y *BSD,
quizá no deberías encariñarte mucho con el IDE. Piensa que tarde o
temprano querrás (o tus usuarios te pedirán) un sistema de "build" con
base en las "autotools" (autoconf, automake, et al). De forma que
considera apartar un poco de tiempo para aprender algo de sh, m4 y
make.
Finalmente, considera que una alternativa a programar GUIs es
programar aplicaciones "web". En muchos casos es más fácil y más
conveniente, y la gama de herramientas que puedes usar es más amplia.
Saluditos.
-CR
--
sagrario
2003-09-06 15:46:26 UTC
Permalink
Post by Guillermo Simón Boffelli
Hola gente ... muy interesante este tema.
Les cuento que soy de los viejos y arcaicos programadores, de la época en
"Estudiá graboverificador o graboperforador que ahí está el futuro hijo",
bueno, hace mucho :-). En realidad, tanto no me quedé ahí :-), programé
mucho en Informix (Y otros lenguajes) para Bancos, Inmobiliarias y Turismo,
pero siempre orientado a consola o modo texto, por eso con lo que escribió
"Armando Paz" me siento muy identificado y por lo tanto me pareció muy
interesante lo que se ha escrito hasta ahora sobre el tema. Mi idea es
ponerme a estudiar algo de PHP y ver si se puede hacer el mismo tipo de
aplicaciones que yo hacía o hago. Me han comentado que con
APACHE+PHP+(MYSQL o POSTGRESQL) se pueden hacer lindas cosas para la web o
una Intranet, vamos a ver que pasa, además pienso ponerme a estudiar algo
de "C" pues no sé nada y realmente me siento un ignorante. Saludos para
todos, les vuelvo a decir, muy bueno este tema ... los sigo
leyendo/aprendiendo.
Pues si que se puede
no hace mucho desarrolle una aplicacion APACHE+PHP+MYSQL para la gestion de
facturacion de una empresa, con la ventaja de que pueden usar cualquier
ordenador de la oficina y tener la informacion centralizada.

- --
http://www.gulc.org
Grupo de Usuarios de Linux de Corvera

http://asturlinux.org
Asociacion de Usuarios Asturianos de Linux
kmilo
2003-09-06 17:47:41 UTC
Permalink
Post by Armando Paz
Hola compañeros.
Hola
Post by Armando Paz
Antes de nada me gustaría pedir perdón si el tema que trato es off-topic
(nunca me ha quedado muy claro eso del off-topic, al final muchas de las
cuestiones buscan el utilizar de forma más completa nuestro Debian, ¿no?).
no, por ejemplo la gente que escribia buscando a mas de su region para
celebrar los 10 años de debian, eso es offtopic, y al verlo en el titulo
del mensaje muchos nos ahorramos la leida
Post by Armando Paz
algún lenguaje que te permita compartir lo que programas con el resto de la comunidad (linux) y
además permita pasárselas también a algunos de tus amigos que siguen con > windows".
Asi me encontraba yo hace unos dos años :)
Post by Armando Paz
Creo que lo que busco es una "herramienta de desarrollo gráfico de
aplicaciones multiplataforma", y creo que esto se llama IDE=entorno de
desarrollo integrado + librerías gráficas + compilador + depurador + miles
de cosas más que no alcanzo a adivinar.
pues como bien dice Cesar Rincon tambien estan las combinaciones editor
+compilador+debugger, asi que no estas obligado a usar un IDE, la
cuestion es de gustos.
Post by Armando Paz
Tras buscar mucho por la red, en los archivos de la lista, etc., he
*KDevelop
Si lo vas a usar lo primero que deberias hacer es leerte la licencia de
QT, tengo entendido que QT tiene versiones libres para linux y mac, pero
la de windows no es libre y ademas tienes que pagar para usarla
el otro punto (negativo) de Kdevelop es que tienes que programa en c++
Post by Armando Paz
*Anjuta
Mi favorito, Anjuta te permite hacer GUI ya que se integra con glade,
Post by Armando Paz
considera apartar un poco de tiempo para aprender algo de sh, m4 y
make.
ya que hasta donde recuerdo, hace todos esto por ti

la parte(mala) es que para hacer uso de todas las ventajas de Anjuta
tienes que programa en C o C++
Post by Armando Paz
*Glade
Al usar Anjuta, usas glade, pero si quieres(o necesitas) un mayor grado
de libertad, entonces tambien puedes usar glade y un edior de texto
Post by Armando Paz
*wxWindow
ese es el nombre de la libreria grafica, la herramienta es wxglade y por
mi parte le va lo mismo que a glade
Post by Armando Paz
cuando la aplicación esté lista poder "portarla" a windows.
usando las herramientas adecuadas la idea es que no tengas que portar
nada sino que funcion sin el mas minimo cambio.
Post by Armando Paz
¿Es esto posible? Si lo es, ¿qué herramientas me aconsejan?
primero que todo el lenguaje. ya nombraba Cesar Rincon:
a python ruby y perl

En mi experiencia python es excelente y corre sin la mas minima
modificacion en windows linux y mac

C/C++ no es un lenguaje multiplataforma asi que si decides usarlo
tendras que lidiar con un monton de problemas encima(portar)
Post by Armando Paz
Un segundo objetivo, si llegara a aprender mucho mucho mucho es colaborar en
algún gran proyecto de la comunidad, dígase: mozilla, gnome, etc. ¿Sería
posible enfocar las respuestas a las preguntas anteriores según este segundo
objetivo?
seguro si quieres entrar a mozilla usa XUL, si quieres entrar a gnome
usa GTK(y la libreria gnome)
Post by Armando Paz
Perdón por la longitud, pero creo que si se forma un buen "hilo" mucha gente
aprenderemos mucho del estado actual de la programción y sus herramientas en
el mundo GNU/Linux--->NUESTRO QUERIDO DEBIAN.
Aprovechare este comentario para decirte que si piensas en usar java,
debes primero preguntarte si te interesa usar software libre o no ya que
el kit de desarrollo estandar (Java SDK de Sun) no cuanta con una
licencia libre y este es el unico que soporta las librerias graficas
swing y awt, si por el contrario hay logica entre tu "AMOR" a debian y
el software que usas no debes usar esas GUI's sino por ejemplo swt o
otra de las que puedas encontrar en http://viva.sourceforge.net/#ui eso
permitira que tus aplicaciones(java) cumplan con las Debian Free
Software Guidelines (DFSG) y asi puedan ser algun dia incluidas en
debian

MONO: (www.go-mono.org)
lo he dejado a lo ultimo por que todavia no es estable(pero si
funcional) mono, es una implementacion libre de .NET, el proyecto es
dirgido por ximian(ahora parte de novell) esta empresa esta por mucho de
los hackers que hacen gnome entre ellos miguel de icaza( creador del
proyect gnome) esto hace que mucha gente piense que los camino de gnome
y mono tendran mucho que ver a futuro

ademas si miras el rationale de mono te daras cuanta que no es mas que
una clara secuencia de lo que el proyecto gnome queria llegar a ser:
http://go-mono.org/rationale.html

Ya hablando a nivel tecnico, mono es multilenguaje asi que gente como
nuestro compañero de lista Guillermo Simón Boffell podria seguir usando
Fortrand yo podria seguir usando python y al mismo tiempo podriamos
beneficiarno de todas las ventajas de mono sin tener que aprender un
nuevo lenguaje, esto hace que gente que usa diferentes lenguajes se
pueda unir en un desarollo comun.

En el proyecto mono actualmente se trabaja sobre un compilador para el
lenguaje C# y uno para Basic, pero hay otros proyectos para hacer
compiladores(compatibles com mono) para lenguaje como python, Forth
lisp, C, java y muchos la lista completa se encuentra en
http://go-mono.org/languages.html

Por otro lado mono al implementar Microsoft's .NET permite que
desarrolladores con experiencia en linux y windows se integren sin el
menor traumatismo

a nivel personal te puedo decir que formo parte del grupo de desarrollo
de una aplicacion multiplataforma que usa mono y es muy bueno ver como
alguien que siempre a usado windows como mi compañero entra a usar mono
sin problemas
http://opencago.sourceforge.net

PDT:
Bajo linux hay un gran cantidad lenguajes y herramientas para programar,
el problema generalmente lo encontraras en windows
--
/kmilo
Pablo Giménez
2003-09-09 09:39:53 UTC
Permalink
Un pequeño abuelo que ha todos se nos olvida es el amigo TCL, si hay
algún lenguaje que permita crear GUI's y realmente no requiera
recompilación para portarlo a otra plataforma ese es TCL, unos cuántos
años le avalan, además es bastante más rápido que el resto de toolkits
(tiene sus limitaciones) pero hay muchas aplicaciones de gran tamaño
desarrolladas con TCL ya sea para la GUI o para todo el programa. Para
mi mejor que GTK, QT y derivados, quizás no sea tan bonito pero
funciona rápido y es estable, y de verdad es multiplataforma, no como
el Java, todo el mundo que ha desarrollado bajo java sabe que eso del
"Compile One Run Everywhere" no funciona.
Bueno simplemente era dar una alternativa.
Post by Armando Paz
Hola compañeros.
Antes de nada me gustaría pedir perdón si el tema que trato es off-topic
(nunca me ha quedado muy claro eso del off-topic, al final muchas de las
cuestiones buscan el utilizar de forma más completa nuestro Debian, ¿no?).
Soy un principiante en casi todo, también en la programación. Recuerdo que
en mis años de estudiante aprendí algo de pascal, y después algo de C.
Entonces era cuando turbopascal y turboc estaban de moda, y se construían
aplicaciones generalmente para "consola" utilizando una "programación
estructurada" (creo que la llamaban así: main-procedimientos-funciones).
Bien, hay me quedé. Hoy me gustaría volver a ese mundillo e iniciarme en la
programación de aplicaciones gráficas. Y me he dicho: "pues ya que vas a
aprender a desarrollar aplicaciones porque no utilizas algún lenguaje que te
permita compartir lo que programas con el resto de la comunidad (linux) y
además permita pasárselas también a algunos de tus amigos que siguen con
windows".
Creo que lo que busco es una "herramienta de desarrollo gráfico de
aplicaciones multiplataforma", y creo que esto se llama IDE=entorno de
desarrollo integrado + librerías gráficas + compilador + depurador + miles
de cosas más que no alcanzo a adivinar.
Tras buscar mucho por la red, en los archivos de la lista, etc., he
*KDevelop
*Anjuta
*Glade
*wxWindow
*...
Mi objetivo es desarrollar en linux, aprender en linux, programar, depurar,
etc. en linux... y cuando la aplicación esté lista poder "portarla" a
windows. Así logro mi objetivo de compartir con TODO EL MUNDO
independientemente del sistema operativo que utilice.
¿Es esto posible? Si lo es, ¿qué herramientas me aconsejan?
Un segundo objetivo, si llegara a aprender mucho mucho mucho es colaborar en
algún gran proyecto de la comunidad, dígase: mozilla, gnome, etc. ¿Sería
posible enfocar las respuestas a las preguntas anteriores según este segundo
objetivo?
Perdón por la longitud, pero creo que si se forma un buen "hilo" mucha gente
aprenderemos mucho del estado actual de la programción y sus herramientas en
el mundo GNU/Linux--->NUESTRO QUERIDO DEBIAN.
Muchas gracias por anticipado.
Salud.
Armando Paz
2003-09-09 21:10:30 UTC
Permalink
Hola.

Perdón por la tardanza en responder a vuestros amables y DETALLADOS
consejos, pero a veces la vida obliga a no depender de uno mismo. Muchas
gracias por todo.

Si no os importa, y tras tomar nota de que he de explorar mucho aún, me
gustaría poner un "caso práctico" para ilustrar mi objetivo. Os ruego, en
esta ocasión, que intentéis resolverlo sin perder de vista el contexto que
planteaba en el primer mensaje.

Vamos a ello:

Hace unos años en mi trabajo me interesé por PERL porque me resultó muy
fácil trabajar con el tanto en Linux (en casa) como en Windows (en el
trabajo, obligado). Tenía que adaptar ficheros de texto según parámetros
leidos de otro fichero fichero de texto modelo. El mismo script funcionaba
en ambos S.O. Y mi satisfacción fue tal que me fuí acostumbrando a él, ahora
hago casi todo con PERL. Pero un pequeño "entretenimiento" que abordé: exportar
una lista de contactos en un fichero de texto, cada contacto en una fila y
cada campo de este separado por coma (lo típico), siendo utilizado este
como fichero de datos que es procesado por un script PERL para buscar
cualquier campo de cualquier contacto. ES MUY RAPIDO. FUNCIONA EN LINUX Y EN
WINDOWS, pero la salida es en modo texto-consola, ya sabéis:

Nombre: Fulanito
Apellidos: Cetanito
Teléfono: 111000111
etc.

Mi intención es lograr esto mismo que ya tengo pero con salida en formato
gráfico: una ventanita donde pueda poner un campo a buscar, un botoncito
para iniciar la búsqueda... y la salida "distribuida adecuadamente en la
ventanita" para ver los distintos campos y "fijar la vista" en el que voy
buscando, el cual siempre aparecerá en el mismo lugar de dicha ventanita.

HASTA AQUÍ EL OBJETIVO DE PROGRAMACIÓN "GRÁFICA" "MULTIPLATAFORMA".

Por lo que he leído en sus mails (Cesar Rincón, Kmilo, etc.) me inclinaría a
utilizar un lenguaje como PERL (que ya conozco) o Python, con ellos
obtendría funcionamiento multiplataforma (no sé si sería más apropiado:
multisistema operativo) y salida gráfica (si es que soy capaz de enlazarlos
con la correspondiente librería gráfica). Pero creo que estos lenguajes son
INTERPRETADOS, es decir: hay un intérprete que ya está instalado en el S.O.
y que va procesando el "guion de ordenes == script" y mostrando los
resultados por la salida adecuada. Y AQUI ENTRONCO CON OTRA DUDA: en linux
yo le pasaría mi script a cualquier compañero y todo el mundo podría
ejecutarlo porque habitualmente tanto PERL como PYTHON ya están
instalados... pero en Windows, para los colegas que usen eso, tendrían que
instalarse previamente el intérprete, y supongo que también las librerías
gráficas etc. EN RESUMEN: si utilizara un lenguaje compilado podría obtener
un "ejecutable autocontenido" que podría grabar en un disquete y pasárselo a
cuantas personas quisiera, creo que esto no es posible con un lenguaje
interpretado, ¿verdad?

CONCLUSIÓN: si me decido por un lenguaje interpretado, al existir intérprete
para LINUX y para WINDOWS mi "programa" sería plenamente multisistema
operativo pero exigiría una dificultad de "instalación" porque el programa
no es suficiente por si solo sino que necesita un intérprete instalado y,
SUPONGO que si quiero obtener salida gráfica, también librerías gráficas
instaladas. Y TODO ESTO FUNCIONANDO CONJUNTAMENTE--->ESFUERZO DE
CONFIGURACIÓN ADICIONAL DE CADA UNA DE LAS PARTES.

Si algún día fuera capaz de "desarrollar" algo medianamente interesante para
que fuera un paquete Debian lo de la instalación de "mi programa=paquete"
estaría resuelto por las dependencias: mi paquete dependería de PERL o
PYTHON, de la librería gráfica y otras cuantas cosas más... y un fácil
apt-get acabaría instalando todo lo necesario. Pero, que haría para
pasárselo a los amigos de Windows ¿hay forma de crear un paquete con todo lo
necesario? ¿y en ese paquete que tendría que meter: todo el ACTIVEPERL - por
ejemplo -, toda la librería gráfica...? PUFF, creo que esto sí que se sale
de la lista, pero un simple comentario, posibilidad, url de orientación...

Creo que con mucho esfuerzo he conseguido ilustrar el contexto (y un mail
bastante pesado: perdón).

Agradeciendo sincera y enormemente todos sus comentarios, sus correcciones,
sus consejos, su paciente amistad...

...atentamente:

Armando Paz.

SALUD.
--
---------------------------------------------
--- Armando Paz ---
--- Debian GNU/Linux 2.4.21 ---
--- Usuario Linux Registrado #189304 ---
---------------------------------------------
Angel Claudio Alvarez
2003-09-10 02:32:00 UTC
Permalink
Post by Armando Paz
Hola.
Perdón por la tardanza en responder a vuestros amables y DETALLADOS
consejos, pero a veces la vida obliga a no depender de uno mismo. Muchas
gracias por todo.
Si no os importa, y tras tomar nota de que he de explorar mucho aún, me
gustaría poner un "caso práctico" para ilustrar mi objetivo. Os ruego, en
esta ocasión, que intentéis resolverlo sin perder de vista el contexto que
planteaba en el primer mensaje.
Hace unos años en mi trabajo me interesé por PERL porque me resultó muy
fácil trabajar con el tanto en Linux (en casa) como en Windows (en el
trabajo, obligado). Tenía que adaptar ficheros de texto según parámetros
leidos de otro fichero fichero de texto modelo. El mismo script funcionaba
en ambos S.O. Y mi satisfacción fue tal que me fuí acostumbrando a él, ahora
hago casi todo con PERL. Pero un pequeño "entretenimiento" que abordé: exportar
una lista de contactos en un fichero de texto, cada contacto en una fila y
cada campo de este separado por coma (lo típico), siendo utilizado este
como fichero de datos que es procesado por un script PERL para buscar
cualquier campo de cualquier contacto. ES MUY RAPIDO. FUNCIONA EN LINUX Y EN
Nombre: Fulanito
Apellidos: Cetanito
Teléfono: 111000111
etc.
Mi intención es lograr esto mismo que ya tengo pero con salida en formato
gráfico: una ventanita donde pueda poner un campo a buscar, un botoncito
para iniciar la búsqueda... y la salida "distribuida adecuadamente en la
ventanita" para ver los distintos campos y "fijar la vista" en el que voy
buscando, el cual siempre aparecerá en el mismo lugar de dicha ventanita.
HASTA AQUÍ EL OBJETIVO DE PROGRAMACIÓN "GRÁFICA" "MULTIPLATAFORMA".
Por lo que he leído en sus mails (Cesar Rincón, Kmilo, etc.) me inclinaría a
utilizar un lenguaje como PERL (que ya conozco) o Python, con ellos
multisistema operativo) y salida gráfica (si es que soy capaz de enlazarlos
con la correspondiente librería gráfica). Pero creo que estos lenguajes son
INTERPRETADOS, es decir: hay un intérprete que ya está instalado en el S.O.
y que va procesando el "guion de ordenes == script" y mostrando los
resultados por la salida adecuada. Y AQUI ENTRONCO CON OTRA DUDA: en linux
yo le pasaría mi script a cualquier compañero y todo el mundo podría
ejecutarlo porque habitualmente tanto PERL como PYTHON ya están
instalados... pero en Windows, para los colegas que usen eso, tendrían que
instalarse previamente el intérprete, y supongo que también las librerías
gráficas etc. EN RESUMEN: si utilizara un lenguaje compilado podría obtener
un "ejecutable autocontenido" que podría grabar en un disquete y pasárselo a
cuantas personas quisiera, creo que esto no es posible con un lenguaje
interpretado, ¿verdad?
podes compilar perl con perlcc o perl2exe(este ultimo lo tenes que
comprar)
Personalmente tengo algunos programas en perl compilados con percc
corriendo en AIX, pero son para consola ( no utilizan librerias graficas
Seria cuestion de que investigues el tema de linkeo con la libreria
grafica
Post by Armando Paz
CONCLUSIÓN: si me decido por un lenguaje interpretado, al existir intérprete
para LINUX y para WINDOWS mi "programa" sería plenamente multisistema
operativo pero exigiría una dificultad de "instalación" porque el programa
no es suficiente por si solo sino que necesita un intérprete instalado y,
SUPONGO que si quiero obtener salida gráfica, también librerías gráficas
instaladas. Y TODO ESTO FUNCIONANDO CONJUNTAMENTE--->ESFUERZO DE
CONFIGURACIÓN ADICIONAL DE CADA UNA DE LAS PARTES.
Tu programa va a ser multisistema siempre y cuando tengas la precaucion
de no hacer llamadas al sistema propias de cada S.O. o en su defecto
tener una funcion que se encargue de verificar el S.O. en el que corre
y generar la llamada correspondiente a cada S.O. (EJ: los usuarios no se
"leen" igual en linux que en win)
Post by Armando Paz
Si algún día fuera capaz de "desarrollar" algo medianamente interesante para
que fuera un paquete Debian lo de la instalación de "mi programa=paquete"
estaría resuelto por las dependencias: mi paquete dependería de PERL o
PYTHON, de la librería gráfica y otras cuantas cosas más... y un fácil
apt-get acabaría instalando todo lo necesario. Pero, que haría para
pasárselo a los amigos de Windows ¿hay forma de crear un paquete con todo lo
necesario? ¿y en ese paquete que tendría que meter: todo el ACTIVEPERL - por
ejemplo -, toda la librería gráfica...? PUFF, creo que esto sí que se sale
de la lista, pero un simple comentario, posibilidad, url de orientación...
Creo que con mucho esfuerzo he conseguido ilustrar el contexto (y un mail
bastante pesado: perdón).
Agradeciendo sincera y enormemente todos sus comentarios, sus correcciones,
sus consejos, su paciente amistad...
Armando Paz.
SALUD.
saludos


Angel Claudio Alvarez
Post by Armando Paz
--
---------------------------------------------
--- Armando Paz ---
--- Debian GNU/Linux 2.4.21 ---
--- Usuario Linux Registrado #189304 ---
---------------------------------------------
kmilo
2003-09-10 13:47:36 UTC
Permalink
Post by Armando Paz
EN RESUMEN: si utilizara un lenguaje compilado podría obtener
un "ejecutable autocontenido" que podría grabar en un disquete y pasárselo a
cuantas personas quisiera, creo que esto no es posible con un lenguaje
interpretado, ¿verdad?
en python puedes usar py2exe[0], no se como te vaya con las librerias
graficas, pero en la consola parace funcionar


[0] http://starship.python.net/crew/theller/py2exe/
--
/kmilo
Armando Paz
2003-09-09 22:43:55 UTC
Permalink
Hola.

Perdón por la tardanza en responder a vuestros amables y DETALLADOS
consejos, pero a veces la vida obliga a no depender de uno mismo. Muchas
gracias por todo.

Si no os importa, y tras tomar nota de que he de explorar mucho aún, me
gustaría poner un "caso práctico" para ilustrar mi objetivo. Os ruego, en
esta ocasión, que intentéis resolverlo sin perder de vista el contexto que
planteaba en el primer mensaje.

Vamos a ello:

Hace unos años en mi trabajo me interesé por PERL porque me resultó muy
fácil trabajar con el tanto en Linux (en casa) como en Windows (en el
trabajo, obligado). Tenía que adaptar ficheros de texto según parámetros
leidos de otro fichero fichero de texto modelo. El mismo script funcionaba
en ambos S.O. Y mi satisfacción fue tal que me fuí acostumbrando a él, ahora
hago casi todo con PERL. Pero un pequeño "entretenimiento" que abordé: exportar
una lista de contactos en un fichero de texto, cada contacto en una fila y
cada campo de este separado por coma (lo típico), siendo utilizado este
como fichero de datos que es procesado por un script PERL para buscar
cualquier campo de cualquier contacto. ES MUY RAPIDO. FUNCIONA EN LINUX Y EN
WINDOWS, pero la salida es en modo texto-consola, ya sabéis:

Nombre: Fulanito
Apellidos: Cetanito
Teléfono: 111000111
etc.

Mi intención es lograr esto mismo que ya tengo pero con salida en formato
gráfico: una ventanita donde pueda poner un campo a buscar, un botoncito
para iniciar la búsqueda... y la salida "distribuida adecuadamente en la
ventanita" para ver los distintos campos y "fijar la vista" en el que voy
buscando, el cual siempre aparecerá en el mismo lugar de dicha ventanita.

HASTA AQUÍ EL OBJETIVO DE PROGRAMACIÓN "GRÁFICA" "MULTIPLATAFORMA".

Por lo que he leído en sus mails (Cesar Rincón, Kmilo, etc.) me inclinaría a
utilizar un lenguaje como PERL (que ya conozco) o Python, con ellos
obtendría funcionamiento multiplataforma (no sé si sería más apropiado:
multisistema operativo) y salida gráfica (si es que soy capaz de enlazarlos
con la correspondiente librería gráfica). Pero creo que estos lenguajes son
INTERPRETADOS, es decir: hay un intérprete que ya está instalado en el S.O.
y que va procesando el "guion de ordenes == script" y mostrando los
resultados por la salida adecuada. Y AQUI ENTRONCO CON OTRA DUDA: en linux
yo le pasaría mi script a cualquier compañero y todo el mundo podría
ejecutarlo porque habitualmente tanto PERL como PYTHON ya están
instalados... pero en Windows, para los colegas que usen eso, tendrían que
instalarse previamente el intérprete, y supongo que también las librerías
gráficas etc. EN RESUMEN: si utilizara un lenguaje compilado podría obtener
un "ejecutable autocontenido" que podría grabar en un disquete y pasárselo a
cuantas personas quisiera, creo que esto no es posible con un lenguaje
interpretado, ¿verdad?

CONCLUSIÓN: si me decido por un lenguaje interpretado, al existir intérprete
para LINUX y para WINDOWS mi "programa" sería plenamente multisistema
operativo pero exigiría una dificultad de "instalación" porque el programa
no es suficiente por si solo sino que necesita un intérprete instalado y,
SUPONGO que si quiero obtener salida gráfica, también librerías gráficas
instaladas. Y TODO ESTO FUNCIONANDO CONJUNTAMENTE--->ESFUERZO DE
CONFIGURACIÓN ADICIONAL DE CADA UNA DE LAS PARTES.

Si algún día fuera capaz de "desarrollar" algo medianamente interesante para
que fuera un paquete Debian lo de la instalación de "mi programa=paquete"
estaría resuelto por las dependencias: mi paquete dependería de PERL o
PYTHON, de la librería gráfica y otras cuantas cosas más... y un fácil
apt-get acabaría instalando todo lo necesario. Pero, que haría para
pasárselo a los amigos de Windows ¿hay forma de crear un paquete con todo lo
necesario? ¿y en ese paquete que tendría que meter: todo el ACTIVEPERL - por
ejemplo -, toda la librería gráfica...? PUFF, creo que esto sí que se sale
de la lista, pero un simple comentario, posibilidad, url de orientación...

Creo que con mucho esfuerzo he conseguido ilustrar el contexto (y un mail
bastante pesado: perdón).

Agradeciendo sincera y enormemente todos sus comentarios, sus correcciones,
sus consejos, su paciente amistad...

...atentamente:

Armando Paz.

SALUD.
--
---------------------------------------------
--- Armando Paz ---
--- Debian GNU/Linux 2.4.21 ---
--- Usuario Linux Registrado #189304 ---
---------------------------------------------
Armando Paz
2003-09-11 15:47:55 UTC
Permalink
Hola amigos.

Aunque en privado he recibido un mail llamándome "payaso" por
desarrollar este tema (obviamente no voy a responderlo) "que no va a
ninguna parte" y que "hace perder el tiempo a los demás con cosas que no
les interesan" (no sé por qué las leen aún cuando en el título YO MISMO
avisaba de un posible off-topic ¿?), y afrontando el riesgo de hacerme
pesado ante este tipo de gente, este riesgo no va a ser óbice para dejar
de dar las gracias a todos aquellos que TANTO TANTO ME HABÉIS GUIADO, y
que, al menos, habéis alumbrado un camino de investigación y aprendizaje
que seguiré.

Y hablando de camino a investigar, creo que me voy a inclinar por la
En tu caso yo reharía el programa en C++, sobre wxWindows. Para Win32
generaría binarios con wxWindows enlazada estáticamente---eso agrega
como 2MB al tamaño de los ejecutables, pero evita tener que cargar con
DLLs. Para Linux generaría versiones dinámicas instalables como
paquetes deb (y le encargaría a alguien hacer RPMs).
Un "plus" que quizá te haga más atractiva la recomendación: si
instalas un cross-compiler (mingw-msvc), puedes generar *en tu Debian*
una versión de wxWindows para Win32. Y con ella puedes generar
binarios ".exe", y solo copiarlos a la máquina en donde van a correr.
Y eso no es un "creo que se puede" de mi parte. Estoy *seguro* de que
se puede. Lo hago todo el tiempo.
-CR
Sobre todo porque puedo generar binarios para Linux y para Windows, y
sobre todo también porque esto último lo puedo hacer TODO TODO desde mi
Debian (según el plus de atractivo de la recomendación :-)) )

MUCHÍSIMAS GRACIAS: Cesar, Kmilo, Angel Claudio, y resto que me habéis
soportado sin increpar :-))

P.D.: No obstante este verano recuerdo que se formó un hilo de discusión
sobre Black-List y filtrado-de-contenidos sobre el SPAM del cual yo
aprendí mucho. Mi idea era formar un hilo respecto a generación de
aplicaciones multisistema operativo del cual todos aprendiéramos. Perdón
si no lo he conseguido, pero no entraré al trapo ni alargaré discusiones.

Salud.
--
---------------------------------------------------------
--- Armando Paz <***@interlap.com.ar> ---
--- Debian (testing) GNU/Linux 2.4.20 ---
--- Usuario Linux Registrado #189304 ---
---------------------------------------------------------
Ricardo Frydman
2003-09-11 15:58:34 UTC
Permalink
El Jue 11 Sep 2003 12:47, Armando Paz escribió:
| Hola amigos.
|
| Aunque en privado he recibido un mail llamándome "payaso" por
| desarrollar este tema (obviamente no voy a responderlo) "que no va a
| ninguna parte" y que "hace perder el tiempo a los demás con cosas que no
| les interesan" (no sé por qué las leen aún cuando en el título YO MISMO
| avisaba de un posible off-topic ¿?), y afrontando el riesgo de hacerme
| pesado ante este tipo de gente, este riesgo no va a ser óbice para dejar
| de dar las gracias a todos aquellos que TANTO TANTO ME HABÉIS GUIADO, y
| que, al menos, habéis alumbrado un camino de investigación y aprendizaje
| que seguiré.

armando: personalmente no habia emitido ninguna opinion, pero segui el hilo y
me parece interesante. No estoy de acuerdo en que hayas sido un "payaso"

- --
Ricardo A.Frydman
Analista de Sistemas de Computación
http://www.eureka-linux.com.ar
Cesar Rincon
2003-09-11 15:08:48 UTC
Permalink
Post by Armando Paz
Aunque en privado he recibido un mail llamándome "payaso" por
desarrollar este tema (obviamente no voy a responderlo) "que no va a
ninguna parte" y que "hace perder el tiempo a los demás con cosas que no
les interesan"
Si te sirve de apoyo moral: yo creo que en efecto hubo un payaso involucrado en
ese correo que te enviaron, pero no fuiste tú.
Post by Armando Paz
Sobre todo porque puedo generar binarios para Linux y para Windows, y
sobre todo también porque esto último lo puedo hacer TODO TODO desde mi
Debian (según el plus de atractivo de la recomendación :-)) )
Un pequeño "disclaimer": puedes hacer casi todo en tu Debian. El "casi" es
porque si tu programa tiene un bug que sólo se presenta en el otro sistema
operativo, tendrás que depurarlo ahí.

Eso no es muy común en programas sencillos como el que describiste, pero no
está de más que sepas que puedes obtener GDB (y GCC y muchas de las
herramientas y bibliotecas GNU) para el otro sistema operativo:

http://sourceforge.net/projects/mingw/
http://sourceforge.net/projects/gnuwin32/

El cross compiler para Debian está a un apt-get de distancia
(install mingw32).
Post by Armando Paz
MUCHÍSIMAS GRACIAS: Cesar, Kmilo, Angel Claudio, y resto que me habéis
soportado sin increpar :-))
Con mucho gusto. Tienes mi dirección, no dudes en escribir si crees que te
puedo ayudar en algo.

-CR
Cesar Rincon
2003-09-10 00:29:39 UTC
Permalink
Y AQUI ENTRONCO CON OTRA DUDA: en linux yo le pasaría mi script a
cualquier compañero y todo el mundo podría ejecutarlo porque
habitualmente tanto PERL como PYTHON ya están instalados... pero en
Windows, para los colegas que usen eso, tendrían que instalarse
previamente el intérprete, y supongo que también las librerías
gráficas etc. EN RESUMEN: si utilizara un lenguaje compilado podría
obtener un "ejecutable autocontenido" que podría grabar en un
disquete y pasárselo a cuantas personas quisiera, creo que esto no
es posible con un lenguaje interpretado, ¿verdad?
Bueno, puedes incluir el intérprete junto con tu paquete... es una
solución poco elegante... oh, bueno, es una solución *espantosa*, pero
los muchachos de Visual Basic lo hacen a cada rato ¿no?

Ya en serio, por ahí te indican que hay un compilador de Perl. GCC
tiene también un compilador de Java, creo. No sé qué tan maduras y
estables sean esas herramientas (a juzgar por lo poco que he oido de
ellas no deben ser muy sólidas aún).
CONCLUSIÓN: si me decido por un lenguaje interpretado, al existir
intérprete para LINUX y para WINDOWS mi "programa" sería plenamente
multisistema operativo pero exigiría una dificultad de "instalación"
porque el programa no es suficiente por si solo sino que necesita un
intérprete instalado y, SUPONGO que si quiero obtener salida gráfica,
también librerías gráficas instaladas. Y TODO ESTO FUNCIONANDO
CONJUNTAMENTE--->ESFUERZO DE CONFIGURACIÓN ADICIONAL DE CADA UNA DE
LAS PARTES.
Eso es correcto. Y sí, es un problema real en ese sistema operativo que
mencionas. E incluso en Linux; considera, por ejemplo, lo difícil que
es poner BitTorrent en Debian Woody: no hay una versión empacada, y no
es fácil que simplemente bajes el "tarball" y lo instales en /usr/local
porque depende de versiones de Python, wxWindows y el binding entre
ambos, que tampoco están empacadas...

(O no estaban, al menos, la última vez que intenté usar BT en woody.
Y este es un caso excepcional, y la inconveniencia es temporal... pero
creo que ilustra el problema.)

Adicionalmente, el hecho de que Perl o Python sean portables no implica
que, por ejemplo, la combinación Perl+GTK+Glade también lo sea.
Si algún día fuera capaz de "desarrollar" algo medianamente interesante
para que fuera un paquete Debian lo de la instalación de "mi
programa=paquete" estaría resuelto por las dependencias: mi paquete
dependería de PERL o PYTHON, de la librería gráfica y otras cuantas
cosas más... y un fácil apt-get acabaría instalando todo lo necesario.
Pero, que haría para pasárselo a los amigos de Windows ¿hay forma de
crear un paquete con todo lo necesario? ¿y en ese paquete que tendría
que meter: todo el ACTIVEPERL - por ejemplo -, toda la librería
gráfica...?
¡Hey! ¡Era broma solamente, no lo decía en serio!

:-)

Seguramente se puede. Probablemente tu pequeño manejador de contactos
acabe siendo un download de veinte megas (y requiriendo cuarenta megas
de RAM, si usas Java). Posiblemente tengas que crear un instalador
sofisticado, o comprar uno.

Yo también considero muy deseable hacer ejecutables "autocontenidos", o
al menos sólo con dependencias razonables. Mi criterio: en Linux, GTK+
o Qt son dependencias razonables; en Windows, msvcrt.dll et al son
dependencias razonables. Casi cualquier otra cosa sólo es razonable,
como bien dices, en un sistema como Debian, capaz de resolver
dependencias automáticamente.

Pero estoy divagando. Mira, te haré una recomendación concreta:

En tu caso yo reharía el programa en C++, sobre wxWindows. Para Win32
generaría binarios con wxWindows enlazada estáticamente---eso agrega
como 2MB al tamaño de los ejecutables, pero evita tener que cargar con
DLLs. Para Linux generaría versiones dinámicas instalables como
paquetes deb (y le encargaría a alguien hacer RPMs).

Un "plus" que quizá te haga más atractiva la recomendación: si
instalas un cross-compiler (mingw-msvc), puedes generar *en tu Debian*
una versión de wxWindows para Win32. Y con ella puedes generar
binarios ".exe", y solo copiarlos a la máquina en donde van a correr.

Y eso no es un "creo que se puede" de mi parte. Estoy *seguro* de que
se puede. Lo hago todo el tiempo.

-CR

Continue reading on narkive:
Loading...