Programar aplicaciones de escritorio C, Python...?
12 seguidores
Hola familia,
Desde hace tiempo que le doy vueltas a programar pequeñas aplicaciones de escritorio, pero la verdad es que no tengo mucha idea de por donde empezar. Mis requisitos serían:
- Potencialmente multiplataforma
- Lenguaje orientado a objetos
- "Sencilla" curva de aprendizaje
- Buena base de usuarios, recursos on-line, libros y tal
¿Alguna preferencia clara? C, C#, C++, Python, haXe + Neko? ¿Vale la pena meterse en algo como Mono?
Gracias : )
x8
Parece que ya es tarde, pero por aquello de 'sencilla curva de aprendizaje' yo te habría recomendado C#.
Como sabrás está basado en ECMAScript, al igual que ActionScript, por lo que cuando vayas a programar casi te dará la sensación de estar picando código en AS..
ozke
Dios mío, vuelve la moda de resucitar posts.
Está bien recomendar AIR pero en la fecha del post aun no existía. Quizás estaba empezando a gestarse en los labs Apollo.
:S
juandelgado
Cuando he visto nuevos mensajes en este post, pensaba que había sido cagada de la importación :D
Releyendo el post, al final me he decantado por una mecla haXe, SWHX y Flex. He pillado Flex por cuestiones laborales (me interesa aprenderlo) y por curva de aprendizaje (es Flash al fin y al cabo).
La otra opción era Adobe AIR en lugar de SWHX, pero no era posible ya que mi aplicación tiene que hacer cosas como llamar a otras aplicaciones cosa que ahora mismo no se puede hacer en AIR.
En último lugar estaba Python y a lo mejor algún día de estos lo pongo a prueba, pero si necesito ser productivo tiene demasiada curva ahora mismo para mi.
Ea!
kemie
wow, con este rediseño se han revivido temas antigüisimos... ya se fijaron en la fecha del post original?
isma
En mi humilde opinión, tiraría más por Python. No lo he programado nunca, pero lo poco que he mirado tiene una pinta estupenda y parece muy sencillo. A mi tampoco me gusta Java, pienso que está sobrevalorado, y la verdad es que su curva de aprendizaje es bastante pronunciada.
Personalmente prefiero C++ (estoy habituado a los editores de Borland), tienes buenas APIs ya desarrolladas que sería 'coser y cantar' incluir en proyectos personales, además de ser un lenguaje POO, y no es demasiado complejo (dependiendo de lo que te quieras complicar XD).
kaax Staff
yo te recomiendo java, más orientado a objetos imposible : )
Ahora estoy haciendo experimentos personales con Air y la verdad
es que estoy encantado de las posibilidades que estoy descubriendo para unir
un site con aplicaciones de escritorio.
un saludo
xurde
Pues yo te recomiendo muy mucho que consideres una opción menos "tradicional" y mucho más versátil y creo que práctica.
Me refiero a Adobe AIR.
Saludetes. :)
ozke
Pues si, como si quieres q hagamos algo juntos entre "outsiders" del tema :D
juandelgado
La verdad es que no, aun no me he puesto con nada. El tema es que tampoco tengo previsto hacerlo a corto plazo, era mas que nada una "prospeccion" a ver como estaba el tema.
Pero vamos, que cuando lo haga, lo pondre por aqui si os interesa.
Salud!
ozke
Rescato el tema para q nos tengas al día d si al final tocas algo offline o q. Es bastante interesante :P
orange
Se oían campanas de que MacOS X podría implementar en Leopard las librerías GTK, y así habría muchísimas aplicaciones para Linux que se podrían migrar sin necesidad de recurrir a las X11 en el OSX.
Pero yo no me fiaría ni medio pelo.
Edito: Aqui está el post del rumor, al final la cosa no queda clara.
clkwise
Yo ahora estoy precisamente con una aplicacion en phyton. La hizo un antiguo socio mio y yo estoy haciendo mejoras asi que no empece de cero. el creo q si lo hizo y me ha dicho q la curva de aprendizaje es muy rapida.
uso GTK para interfaz.
aqui un tuto de ambas cosas. crea una aplicacion muy rapidamente:
http://www.learningpython.com/2006/05/30/building-an-application-with-pygtk-and-glade/
hay varios peros, uno de ellos es al crear el .EXE hay que usar el py2exe que engorda mucho el peso de la aplicacion: (de la aplicacion en py que tiene 500Kbs lo transforma en una carpeta con un exe y sus librerias de 50Mb) (si alguien sabe como reducirlo que me lo diga porfavor :))
por otro lado creo que hay ciertos elementos que no funcionan todo lo rapido que deberian. No se si de haberlo hecho con otro lenguaje iria mejor. basicamente tenemos un GTktreeview (como el de la url) con 7000 registros y tarda muchisismo. (1 hora???¿?¿?) en mostrarlos todos. de hecho me va a tocar rehacerlo porque no es funcional.
Ahora la ventaja es que luego podras usarlo para web.
Por otro lado, he la factultad programabamos bastante con JAVA. no hace falta ningun tipo de frameworks. supongo que ayudan pero no son necesarios. lo de multiplataforma.... en su dia daba problemillas. ahora npi. Creo recordar que para crear ejecutables tb metia mucho peso a la aplicacion final.
la opcion de delphi a mi me gusta. aunq nose que resultados dara y tp he trasteado mucho con ello pero si con pascal y es tan sencillito :P eso si, es mucho mas intuitivo al principio que python que al principio es un poco jaleillo.
ya nos contaras por que te decantas.para cualquier cosa por aqui ando si puedo ayudar en algo.
dagi3d
Zárate
@Dagi: No digo que los frameworks sean malos ni mucho menos. Pero si, como en mi caso, el conocimiento del lenguaje es 0, resultan casi más una molestia que una ayuda. Aunque como digo antes, RoR está muy bien conseguido. No sé cómo estará en Java
el tema es que el que se utilicen frameworks no debe suponer un problema dependiendo del nivel de programación, ya que siempre te resultará más fácil que programarte todo a pelo. evidentemente requiere del aprendizaje de una api o como trabaja una librería, pero ya te marca unas pautas y eso siempre ayuda.
respecto a rails, tienes razón y a la hora de hacer desarrollo web, rails simplifica MUCHO todo. y para muestra una imagen :)
http://dagi3d.net/temp/java_vs_rubyonrails.jpg
de hecho en la nueva versión de java ya se está metiendo de serie muchas características que trae rails, pero vamos, sigo pensando que cada entorno tiene su propio nicho de mercado.
de todas maneras esto concierne a tema web PERO si finalmente te decantas por ruby, que sepas que puedes usar algunas de las librerías que trae rails (como ActiveRecord por ejemplo) para tus aplicaciones de escritorio
kr0n
Coño, un RealBasic con python sería el triunfo. Con Pascal sería un Kylix+Delphi con versión para Mac, pero me conformaría :P
Usuario desconocido
Pues, sole sabe mas de esto. Pero si yo tuviese que hacer algo, seguramente lo haria con RealBasic. Ya que, siendo de pago no es que sea muy caro (si se tuviese que comprar), y por otro lado, el mismo codigo te sirve para Windows, Mac y Linux.
Por otro lado, si es cosa de graficos... SDL.
orange
[MasOT]A ti lo que te vendría bien es un curso de colorines[/MasOT]
juandelgado
@Dagi: No digo que los frameworks sean malos ni mucho menos. Pero si, como en mi caso, el conocimiento del lenguaje es 0, resultan casi más una molestia que una ayuda. Aunque como digo antes, RoR está muy bien conseguido. No sé cómo estará en Java
@Microbians: Estuve viendo a Mike Chambers sobre hablando Apollo en el FOTB, aquí mis impresiones. En cualquier caso diría que no vas a poder ampliar a tu gusto Apollo como para poder conseguir poder capturar la presión de una Wacom. Sin embargo ScreenweaverHX es totalmente abierto y lo podrías extender programando en haXe o C. Pero échale cojones para capturar lo que quires.
Por ahora me decanto por Python o el mismo haXe para juntarlo con SWHX.
Salud!
microbians Staff Plus
<OFFmode>
Je je... hombre a mi no es que no me guste programar a secas, concretamente lo que no me gusta es programar para los demás XD lo que si me mola llevar a cabo mis experimentos. Como ahora no tengo tanto tiempo como antes (bueno como siempre) pues no me puedo dedicar demasiado, pero vamos de vez en cuando estoy con el tema. Lo único que me para es que va más rápido el desarrollo de los lenguajes que yo, y tener que estar actualizando el mismo código de AS1 a AS2 o AS3 ya me para un poco (es un coñazo).
Ahora estoy con eso de la WACOM y FLASH porque estoy desde hace tiempo con el electronic sketchbook, una versión muy evolucionada de la que hay colgada, que permite hacer trazos de grosor variable y más cositas con los filtros de flash.
</OFFmode>
orange
[OT]
El microbio nunca dejará de sorprenderme, ¿pero tú no te habías quedado hartito de programar? ¿Qué haces metiéndote en estos berenjenales?.
A ti te va la marcha, o va a ser cierto que la cabra tira al monte.
[/OT]
microbians Staff Plus
Yo también estoy mirando el tema y dándole vueltas, porque estoy investigando como hacer que flash (en web o en desktop) lea la presión de la WACOM, esto esta resuelto en Windows, pero aun no hay posibilidades en MAC. Así que me estoy intentando decidir por donde tirar ya que estoy un poco aburrido de aprender nuevas sintaxis. Al final me estoy quedando con estas posibilidades.
- - - - - - - - - - - - - - - - - - - - - -
http://www.trolltech.com/
Es gratis para aplicaciones GNU.
- - - - - - - - - - - - - - - - - - - - - -
Ahora estoy mirando http://www.python.org/ que para MAC existe el PyObjC que hace de puente con COCOA... estoy empezando así que no se mucho aún.... y tardaré en saber con el poco tiempo que le dedico al tema.
- - - - - - - - - - - - - - - - - - - - - -
Realbasic dicen que no está mal pero es basic :P
- - - - - - - - - - - - - - - - - - - - - -
También he leido cosas buenas de MONO
- - - - - - - - - - - - - - - - - - - - - -
En mi opinión de todas formas lo mejor será esperarse a que despegue el apollo de Adobe.
Y sino esperar que los de MDM añadan la funcionalidad de la wacom en MAC también.
En fin es un dilema, pero yo que tu no me alejaba mucho de la notación de puntos y llaves.
dagi3d
y desde cuando usar frameworks es algo malo?
se supone que están para facilitarte tareas y no estar reinventando la rueda una y otra vez. además, los frameworks que mencionas se usan principalmente en j2ee, pero si vas a hacer aplicaciones de escritorio, dependiendo de lo que vayas a hacer no tienes porque usarlos.
de todas maneras, si ya le tienes gato a java, pues está claro que mejor uses un lenguaje con el que te te sientas a gusto.
la ventaja de usar python es que existen aplicaciones que te crean un ejecutable con tu aplicación y el intérprete, con lo que no tienes el problema de java que requiere tener instalada la máquina virtual u otros lenguajes interpretados(desconozco si hay algo parecido para php, ruby etc)
yo estoy cacharreando bastante con ruby on rails y tengo que decir que ruby como lenguaje mola mucho. hace que programar sea algo totalmente natural y el dinamismo que ofrece da mucho juego a la hora de hacer virguerías de metaprogramación.
si finalmente te decantas por java, para el tema de las librerías te recomendaría que uses swt(las de eclipse), ya que utilizan las librerías del sistema operativo en uso y hay versiones para linux, windows y macos(a mi personalmente las aplicaciones en swing me dan mucha grima)
si finalmente coges cualquier otro lenguaje, como ya te comentaron, te recomendaría que uses wxWidgets ya que tiene bindings para muchísimos lenguajes y tendrás tu aplicación multiplataforma.
orange
Lo cierto es que la última apli tocha en la que he estado implicado se desarrollaba bajo Struts. Puede que tengas razón en eso, yo lo poco que he hecho en JAVA era con un librito y programando a pelo.
Pues poco más puedo decirte, igual si acotas lo que quieres hacer o el campo donde quieres meterte encuentras cosas que te ofrecen ventajas sobre otras.
juandelgado
Borch, si el tema de la máquina virtual de Java lo sabía. A lo que me refiero con los frameworks para todo es a cosas como Struts, Spring, y todos los que quieras [1].
Eso, bajo mi punto de vista, le añade mucha complejidad. Primero tienes que aprender la sintaxis del lenguaje y luego a utilizar los frameworks que necesites. Me da a mi, otra vez hablando desde el desconocimiento, que la mayoría de las aplicaciones Java están basadas en uno o varios de estos frameworks, casi nada se programa desde cero. Lo cual puede ser bueno o malo, depende de lo que utilices. En Rails está muy conseguido.
Dicho esto, lo de compilar una vez y ejecutar donde sea, me parece que nunca ha llegado a ser cierto del todo. Yo diría que seguramente el player de Flash sea más <em>confiable</em> en ese tema, pero bueno.
Bueno, tenemos un voto para Python hasta el momento y otro para Ruby.
¿Alguien más se anima?
[1] - http://www.java-source.net/open-source/web-frameworks
leh
Ruby, que está de moda.
kr0n
Yo soy de los tuyos. A mi Java no me mola, si es impuesto, tragas, pero para programar por mi cuenta, nain. Me quedo diez mil veces antes con Python, mucho más bonito en todo. Yo hace mucho que no hago aplicaciones con GUI, y no se como estará el tema ahora, pero antes los wxWidgets+Python se llevaban el gato al agua, es cuestión de ver como está el panorama ahora.
orange
Añado: antiguamente el tener una máquina virtual por medio era una carga al rendimiento. Hoy en día no.
Yo curro a diario con el Aptana, que es un IDE de desarrollo completamente programado en JAVA, y va más rápido que el Dreamweaver.
orange
Lo que requiere es la máquina virtual, una especie de plugin para que JAVA funcione.
Pero ese es precisamente la clave de todo, tú programas para la máquina virtual y te despreocupas (como en el flash). Y luego en cada sistema hay instalada la máquina específica.
A nivel multiplataforma es lo más limpio que hay. Cualquier otra cosa implica recompilar un programa para cada plataforma, y ahí me da que te metes en 1000 guerras.
Aunque te parezca una chorrada (y no se te ocurra decir nada de los Mac), te podrías pasar por los foros de Macuarium y preguntar por allí. Hay muchos programadores de aplicaciones de "escritorio" que controlan bastante.
Y si le echas un ojo a los hilos que hablan de procesadores ya lo flipas, hay peña MUY potente a nivel técnico allí.
juandelgado
Jeje, sabía que no tardaría en salir. En principio Java no. Personalmente le tengo manía, como a los Mac. Son (serán) herramientas extraordinarias, pero no me llaman.
En el caso de Java y, desde el total desconocimiento, ¿no requiere frameworks para cualquier cosa?
Gracias
pd: si algún día me compro un Mac se que alguno me va a querer matar. lo mantendré en secreto.
ozke
Aghh! Se madelantao Orange por segundos!
ozke
Coñe, Java no?