Delirios de un Informático

Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003

¿Programación multiplataforma?

votar
Archivado en Inclasificable con fecha 7/Mar/2005 - 24 comentarios

Estoy interesado en empezar a meterme en el mundo de la programación multiplataforma. Es algo que llevo tiempo queriendo hacer pero por falta de tiempo nunca me puse en serio. Ahora que acabo el curso me gustaría empezar poco a poco pero, sinceramente, no sé por qué decidirme. Ni lenguaje, ni IDE ni nada.
Leyendo varias páginas vi varias cousas interesantes:

  • Python + wxPython
  • Python + GTK
  • Python + QT
  • Mono (C# + GTK)

Siempre quedan los clásicos C++ y Java pero no es algo que me llame demasiado además de ser mundos demasiado grandes para hacer cosas relativamente pequeñas. Me gusta la idea de Python por ser algo más sencillo de aprender, aunque C# también me llama mucho pero no me acaba de convencer…
¿Algún experto que me asesore?
Actualización: Gracias al asesoramiento de Salva casi estoy decidido a empezar con Java. ¿Razones?. 100% multiplataforma sin tener que hacer cosas específicas para cada plataforma y lo más importante: la demanda en el mercado. ¿Alguna opinión más?.


Manolo García – Somos Levedad Nunca el Tiempo es Perdido

Antes de comentar...

Puedes escribir lo que quieras, pero por favor hazlo respetando a los demás y en relación al tema que se está tratando. Todo comentario insultante o fuera de lugar será eliminado

Está permitido utilizar las siguientes etiquetas HTML para formatear tu comentario: <a> <b> <blockquote> <i> <u>. Además también puedes utilizar estos emoticonos:

:) :( :'( :P ;) :D XD :O :S 8) :$ (A) (L) (K) |) (6) :@ +o( :|

Puedes enviar referencias a esta anotación utilizando esta dirección

Comentarios

iOne dijo hace 1747 días:

Personalmente, utilizo wxWidgets + C++. Y la verdad es que va muy bien. Como ejemplos, aMule y CDex -si no me equivoco-. Java no me gusta demasiado.. Python no lo he probado, pero wxPython es el mismo que wxWidgets y va de PM. Y mono, no se… No me entusiasma C#… Prueba con Gambas, que liberó la versión 1.0 y, en principio, es compatible con Visual Basic… No lo he probado pero por las capturas parece muy fácil de usar. Además, es basic…
PD: comento esto, pero no soy ningún experto, eh? ;)

Diego dijo hace 1747 días:

Vaya, asi que Python es mas sencillo quie java! Buenisimo :D Ya se con que seguir luego de Java :)

Tuxiradical dijo hace 1747 días:

Bueno… tambien hay que pensar en el trabajo que se podria conseguir sabiendo un lenguaje.
Hay mucha mas demanada de C# que de python.
(NOTA PARIDA: Siempre puedes tirar de IronPython y compilar Python en la plataforma .NET).
Yo personalmente (y para proyectos personales) eligiria python ;)

Clarkie dijo hace 1747 días:

C# y algún lenguaje de script que se lleve bien con el.
GTK es el pegamento idóneo, wxWidgets y QT también funcionan de primera pero no sé si tiene soporte en mono o dot.GNU.

Ferdy dijo hace 1747 días:

¿ 100% Multiplataforma ? Ja….
Salu2.Ferdy

Juanjo dijo hace 1746 días:

Por las propuestas que pones asumo que vas a programar para GUI.
Bueno, no iba a participar pero… ¿Java? No hombre, no :D La demanda del mercado, indiscutible… lo que no se ya si en el sector de GUI. Tengo poca experiencia, pero algo he hecho cacharreando como para no recomendarlo si partes de cero.
¿Por qué? Hay IDEs geniales, la documentación es buena, el árbol de clases muy rico, pero el lenguaje es terriblemente “espeso”. No me parece un lenguaje para RAD ni para potenciar la productividad. En mi modesta y poco fundamentada opinión :) . Valórala en lo que vale, por favor.
Java resulta tan poco portable como cualquier scripting. Me explico. Siempre hará falta instalar el J2RE… lo cual limita la distribución de la aplicación, exáctamente igual que con Python o Perl, salvo que en cualquier UNIX-like libre los últimos los tienes soportados seguro.
Python + Qt es interesante. Tengo alguna experiencia con PerlQt y también lo recomiendo (si sabes C es buena idea).
Aunque en realidad C es lo más portable de todo. Supongo que a veces no se hacen las cosas bien porque el bosque no nos deja ver los árboles. Quizás realizar la aplicación en C (o C++ o Objective-C o …) + librerías necesarias es lo más razonable (siendo todas las partes portables) para luego buscar la parte GUI que más nos facilite las cosas (siendo multiplataforma).
No sé si este comentario te ayudará en algo, pero ahí queda.

David Martínez dijo hace 1746 días:

XD ya me tardaba el Ferdy XD no tomes ese 100% como 100% si no como “la mayoria” (aún así le pondrás pegas XD )
Sé C, pero no demasiado a fondo (aunque ya casi no me acuerdo de nada :$) así que tampoco sería demasiado problema aprender a C++. El problema es que hay infinidad de librerias y GUIs y me pierdo ante tanda cosa.
Si no, pues nada de GUI. Programas en C para consola y listo XD XD XD XD

Juanjo dijo hace 1746 días:

En realidad tienes razón. Es que hacemos las cosas al revés… ¿qué aprendo? No, hombre. Primero plantéate: ¿qué quiero hacer? y entonces, solo entonces, piensa qué puedes eprender para hacer eso.
Es algo que me lleva rondando la cabeza últimamente… a ver si lo rumio un poco más y escribo una anotación al respecto.

Ferdy dijo hace 1746 días:

la mayoria

No existe:
linux/mips
linux/sparc
linux/sparc64
linux/arm
linux/ppc64
Desactualizado:
linux/ppc
linux/alpha
Sustituye linux por algún otro Unix libre y verás lo MULTIplataforma que es Java. C98 es infinitamente más portable.
Salu2.Ferdy

David Martínez dijo hace 1746 días:

la mayoria = 99% de los ordenadores que usa la gente normal :P
Esas plataformas, hablando en plata, no las usa ni dios. Puede que a tí como desarrollador de Gentoo (enhorabuena tio, eres un crack ;) ) te importe pero a mi, como novato y desarrollador de aplicaciones pequeñas, pues como que no me importa demasiado.
Juanjo, tengo claro lo que quiero. Lo que busco es poder desarrollar aplicaciones multiplataforma rapidamente, sin complicaciones, con un lenguaje potente y completo y una buena API y un diseñador de GUIs mas o menos decentes. Y eso creo que me lo da Java. También otros, que conste. Lo que no me acaba de gustar es que sea propietario…
Ferdy, ¿tú que me recomendarias? (no te cortes jeje)

Ferdy dijo hace 1746 días:

Bueno, no las usará ni dios según tu :P En servidores no es nada raro ver linux/alpha, linux/sparc o linux/sparc64. Para usuarios de hardware apple (tambien de kuro y de pegasos) es muy normal ver linux/ppc64 o linux/ppc. Eso si, linux/arm, linux/s390 y linux/mips los usa muy poca gente; ahí te doy la razón.
Yo personalmente te recomendaría:
1) Lenguaje serio para programar: C [ ¿todo? ]
2) Lenguaje bonito OO: ObjC [ linux + osx ]
3) Lenguaje para ‘hacks rápidos y divertidos’: bash+sed+… => Utilidades POSIX. [ casi-todo ]
PD: Si lo quieres para el 99% de los ordenadores que usa la gente normal, por qué te preocupas de que sea multiplataforma ? :P
Salu2.Ferdy

David Martínez dijo hace 1746 días:

Juas, sólo en una ocasión vi un ordenador con SPARC y fue en un departamento de una facultad :D Yo no me pelearé con esos bichos, programaré algo para PCs y como mucho para Mac, por eso quiero algo que sea minimamente multiplataforma…
Pero yo esto lo planteo por algo: si tengo que desarrollar una aplicación para una empresa me parece bastante aceptable la idea de programarlo en algo que funcione en el 90% de Windows que hay, en los pocos Linux (cada vez mas por suerte) y los pocos Mac que pueda haber. No hablo de aplicaciones enterprise que tengan que funcionar en un servidor del copón si no de aplicaciones para el usuario normal, que usa un Pentium III con Windows 2000 (con suerte). Lo único que en todo caso iria en un servidor sería un gestor de bases de datos y para eso no necesito un SPARC.
Por eso creo que no es tan descartable la idea de Java :P

Ferdy dijo hace 1746 días:

¿ Un P3 con Windows 2000 moviendo una aplicacion en Java decentemente ?
Salu2.Ferdy

David Martínez dijo hace 1746 días:

Ya tardabas jeje. A ti lo que no sea consola XD XD
En serio, en el fondo tienes razon. Java es muy pesado para ordenadores poco potentes. Reconozco que la mejor alternativa más adecuada es C + librerías pero veo que es un mundo muy grande, hay que elegir bien las librerias y aprender a usarlas. Lo bueno de Java es que tienes Swing y una API grande y documentada para casi todo y uniforme.
Ainssssss no sé. Me volveis loco :S :D . Al final dejaré la programación y me haré taxista o algo así…

Mayoral dijo hace 1746 días:

Para el tipo de desarrollos que comentas que quieres hacer yo optaría por una combinación Python + QT + QT Designer (sobre todo a raiz de que por fin QT 4 será oficialmente GPL y QT 3 gracias a la gente de kde-cygwin también está en GPL). No es que tenga demasiada idea de Python, pero es un lenguaje sencillo, elegante y muy potente.
C# No me desagrada, todo lo contrario… No termino yo de ver una librería como GTK “orientada a objeto”. QT en ese sentido es muy superior.

Juanjo dijo hace 1746 días:

Pues aún lo que se le criticas a Ferdy, creo que sufre del mal de Linuxcentrismo (objc está disponible en cualquier plataforma en la que funcione la suite de gcc :D ).
La verdad es que es gracioso. ¿Multiplataforma? Si solo quieres que vaya en Windows y en Linux (esta última opción la aceptamos como plataforma, aunque ahí Ferdy tiene más razón que un santo…), plantéatelo de esa forma. Pero entonces la pregunta, creo, era incorrecta :P .
Escudarte en la mayoría está feo :D Escucha a Mayoral que me parece muy sensato (claro que yo proponía PerlQT en el sentido que él dice: PerlQT + Qt + Qt Designer == powah!).

David Martínez dijo hace 1746 días:

Te entiendo Juanjo, pero de aprender algo me gustaría aprender algo que me sirva en el futuro, porque si te digo la verdad aqui en la capital de Galicia no he visto ninguna oferta para programadores en Python XD
Sinceramente, putas ganas tengo yo de aprender Java. Es todo un mundo y nunca me acabó de convencer pero sí me será útil. Si pienso como un geek me quedo con Python de cabeza pero si pienso seriamente o tiro por Java o por plataforma .NET :S. Por eso tanta comedura de tarro…
Puede que no me sepa explicar bien pero yo me entiendo :P .

Ferdy dijo hace 1746 días:

objc está disponible en cualquier plataforma en la que funcione la suite de gcc

Oooops… mea culpa. Lo que quería decir es que GNUStep solo estaba para Linux+osx; pero encima ahí tambien había metido la gamba ya que GNUStep está disponible para varias plataformas.
Saludos.Ferdy

iOne dijo hace 1746 días:

¿ Un P3 con Windows 2000 moviendo una aplicacion en Java decentemente ?

Tengo un PIII 600 con el XP+SP2 y, por ejemplo, el Azureus se me mueve “bien”… Lo de bien deberia ir entre comillas, pero como estoy en un pc prestado que tiene el mapeado el teclado descolocado, pues no las encuentro… Por eso tampoco hay acentos, je, je…
Bueno, que me lio… Se mueve, pero deja bastante que desear. Y aqui, como cada uno quiere vender su moto, yo vendo la mia… wxWidgets + C++. Podeis ver algunas capturas de lo que puede hacer aqui
http://www.wxwidgets.org/screensh.htm
Y yo siempre apoyo la programacion en base a estandares, por lo que la portabilidad es mejor -nada de MFC, por ejemplo-. Bueno, echale un vistazo a las clases que aporta, ya veras como impresiona…
http://www.lpthe.jussieu.fr/~zeitlin/wxWindows...
Tienes clases para GUIs, sockets, strings, traducciones, eventos, graficos -incluso opengl-… Pues eso, que lo mires. Al principio -al menos a mi- me costo un poco, pero ahora voy lanzado, je, je

Tuxiradical dijo hace 1745 días:

Sip, como dice iOne en un P3 (el mio es 766 Mhz con 256 RAM) funciona bien windows XP.
Los problemas vienen con otros dispositivos, pero no con el procesador ;)
Yo sigo diciendo lo mismo.
C# -> hay mas demanda.
Python -> para algo personal.
Saludos.

Clarkie dijo hace 1745 días:

http://sourceforge.net/projects/gtk-sharp
¿ Java ? ¿Para cosas personales y sencillas ? dentro de 5 meses, prueba Jython.
(prisas, prisas). personalmente tengo otras preferencias, pero… son mías.:)

Zootropo dijo hace 1741 días:

si es por demanda, hay más demanda de java que de c#
si quieres un lenguaje cómodo, para programar tus cosillas, ultimamente me he hecho muy pro python
asi que yo diría que java o python… de todas formas si eliges java tienes que pensar también que vas a usar para la gui :P porque tienes awt y swing de sun, pero luego tienes swt y algún que otro proyecto raro más

David Martínez dijo hace 1741 días:

Pues no se que haceeeeer. Estoy tentado a hacer lo que me apetece (C++ + wxWidgets) no lo que me conviene (Java). Ainssssss :S

Sebastián Villalba dijo hace 1741 días:

REALbasic
Programas una vez y compilas para Mac, Linux y Windows. En cada versión la interfaz será la del propio sistema operativo. No es opensource, pero tiene muy buena pinta. Yo hice una prueba y pude comprobar que el programa funcionaba en Mac y Windows.
http://www.realsoftware.com/realbasic/
Entre los que mencionas, yo apostaría por Java.

Haz tu comentario

Nombre Correo electrónico Página web

Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons