Lenguaje de programación para aplicaciones

Iniciado por Joe Fraddy, 12 Agosto 2015, 19:19 PM

0 Miembros y 1 Visitante están viendo este tema.

Joe Fraddy

Buenas amigos:

Quiero pasar de escribir aplicaciones de consola a aplicaciones de escritorio. Regularmente uso OS X, Linux y Windows (en el orden mencionado).

Por ahora estoy trabajando en Linux, y lo que necesito es que mi código pueda ser compilado (sin tantas complicaciones) en estos tres sistemas.

Descarto Java, porque no me gusta que dependa de una maquina virtual, además de que considero que muchas aplicaciones son un poco lentas al compilarlas (sobre todo en proyectos grandes)

Estoy entre C++ y el IDE Lazarus (freepascal) porque son libres Xojo se ve muy bien, pero las licencias son algo caras.

No se cuales son sus recomendaciones, me servirán de mucho, y si tienen otro lenguaje que recomendar será lo tomaré muy en cuenta.

Saludos!!!!

WHK

Últimamente me he dedicado a utilizar node webkit para crear aplicaciones de escritorio que puedan ejecutarse en casi cualquier sistema operativo.

La programación se realiza en html y nodejs por lo cual tendrás mucho poder con node y todo el diseño fácil con html, yo por ejemplo hago aplicaciones de escritorio con bootstrap y luego empaqueto los .deb para cada arquitectura, hago un sfx para windows y zip para mac y listo.

https://github.com/nwjs/nw.js/

Ahora, si buscas una aplicación que sea muy rápida y use todo el potencial de la cpu entonces no te quedará otra que hacerlo nativo para cada plataforma (o sea c++).

La otra opción es utilizar mono y mono develop pero está un poco verde aun y es muy incómodo portar aplicaciones de gtk a windows porque necesitas instalar mono + gtk que facilmente te pueden pesar casi medio giga y en ese caso mejor lo haces en java.

De verdad java para mi es la mejor opción para hacer apps grandes multiplataforma, también puedes probar python pero igual necesitarás instalar gtk en el host, pero no existe nada como c++ que puedas compilar rápido y sea tan flexible como quieres ya que para portar o compilar sin mayor problema para cada sistema necesitas una maquina virtual de por medio o muchas librerías con muchas condicionales ya que ningún sistema es igual a otro.

Este tema es mas amplio de lo que crees, yo mismo le he dado vueltas a este tema durante varios años y he pasado por muchos lenguajes buscando lo que necesitas pero finalmente me quedo con java y nodewebkit ya que con java podrás portar facilmente tu app a dispositivos móviles y con nodewebkit podrás hacer tus apps gráficas bien faciles y no son para nada lentas.

Joe Fraddy

Si, C++ Se me hace a mi muy bueno, porque no depende prácticamente de nada ya compilado y esta muy optimizado para correr con fluidez.

Con esto no quiero cerrar el tema, pero si me gustaría saber si hay algo como lazarus para C++ y que tal esta wxwidgets para lo que yo quiero ya que creo que GTK y QT entre otros puede causarme más dificultad al querer transportar el software a otro sistema (Windows lo ocupo muy poco) pero los usuarios para los que trabajo dependen de este sistema.

Saludos !!!

Bob_Ale

Has mirado python?
Yo no soy un experto pero se ve muy sencillo y dicen que es multisistema.

Enviado desde mi GT-I9300 mediante Tapatalk

Bob_Ale

Cita de: Bob_Ale en 12 Agosto 2015, 20:54 PM
Has mirado python?
Yo no soy un experto pero se ve muy sencillo y dicen que es multisistema.

Enviado desde mi GT-I9300 mediante Tapatalk
Además de que hay bastantes aplicaciones conocidas que corren en varios sistemas y están en python.

Enviado desde mi GT-I9300 mediante Tapatalk

Joe Fraddy

Si, si he visto python, he programado en python, pero igual no se que tan resistente sea para proyectos grandes que manejan BD y esas cosas, además que prefiero un programa que pueda compilarse, esta al igual que java, depende de otro software.

Saludos!!!

WHK

CitarSi, C++ Se me hace a mi muy bueno, porque no depende prácticamente de nada ya compilado y esta muy optimizado para correr con fluidez.

Pues si quieres hacer la misma app para multiples plataformas en c++ si necesitarás utilizar muchisimas dependencias porque no todos los núcleos y apis son los mismos, por ejemplo en windows tendrás que adaptarte a las dll nativas del sistema con sus apis, por ejemplo levantar una ventana ocn un botón se hace de una manera para linux con xwindow y de otra muy distinta en winapi, de hecho para poder utilizar correctamente cada api de osx necesitarás programar en objetive c ya que todo está diseñado para hacer uso de xcode. Necesitarás una librería en linux para usar sockets, otra en windows y otra en mac y con el tiempo te darás cuenta de que vas a tener tantas condicionales entre un sistema u otro haciendo una misma librería tres veces que vas a tener la necesidad de separar tu proyecto en 3 desarrollos distintos que al final harán lo mismo, uno para linux, otro para windows y otro para osx y cuando tengas que invertir meses en hacer una sola pantalla para las tres plataformas vas a reconsiderar utilizar otros lenguajes y tecnologías como java, python, node, html, etc.

Joe Fraddy

Cita de: WHK en 12 Agosto 2015, 22:06 PM
Pues si quieres hacer la misma app para multiples plataformas en c++ si necesitarás utilizar muchisimas dependencias porque no todos los núcleos y apis son los mismos, por ejemplo en windows tendrás que adaptarte a las dll nativas del sistema con sus apis, por ejemplo levantar una ventana ocn un botón se hace de una manera para linux con xwindow y de otra muy distinta en winapi, de hecho para poder utilizar correctamente cada api de osx necesitarás programar en objetive c ya que todo está diseñado para hacer uso de xcode. Necesitarás una librería en linux para usar sockets, otra en windows y otra en mac y con el tiempo te darás cuenta de que vas a tener tantas condicionales entre un sistema u otro haciendo una misma librería tres veces que vas a tener la necesidad de separar tu proyecto en 3 desarrollos distintos que al final harán lo mismo, uno para linux, otro para windows y otro para osx y cuando tengas que invertir meses en hacer una sola pantalla para las tres plataformas vas a reconsiderar utilizar otros lenguajes y tecnologías como java, python, node, html, etc.

Si, es así entonces optaría por Python porque ya se programar en Python, pero no se que tan lento o rápido pueda ser frete a Java en proyectos grandes?

Y que me dicen de lazarus?? no es una buena idea???

Saludos!!

Bob_Ale

Cita de: Joe Fraddy en 12 Agosto 2015, 22:04 PM
Si, si he visto python, he programado en python, pero igual no se que tan resistente sea para proyectos grandes que manejan BD y esas cosas, además que prefiero un programa que pueda compilarse, esta al igual que java, depende de otro software.

Saludos!!!
Pues te aseguro que se pueden hacer cosas grandes,  manejar base de datos y crear (compilar) ejecutables, los script en python es solo una de sus facetas.

Parece que te lo quiero vender,  no?  Jejeje

A mi me gusta más C# pero no esta tan extendido fuera de windows.

La elección del C/C++ es el mejor de todos. No se puede decir más  C/C++ lo dice todo.

Enviado desde mi GT-I9300 mediante Tapatalk

Joe Fraddy

Si, son muy buenas respuestas, pero que me dicen del RAD Lazarus, nadie ha opinado acerca de esto, me gustaría saber sus opiniones.

Saludos!!!