Java - Análisis de lenguajes para proyectos WEB+Escritorio+SmartPhones

   
Vista:

Análisis de lenguajes para proyectos WEB+Escritorio+SmartPhones

Publicado por Mauricio Priego (1 intervención) el 01/05/2011 17:54:06
Buen día.

Estoy en la etapa de análisis y diseño de un proyecto en el que el sistema resultante operará sobre plataforma web, que al mismo tiempo tendrá una versión de escritorio y, según lo planeado, extensiones para uso en smartphones.

Para no distraernos, este esquema es necesario ya que el proyecto requiere que el usuario pueda operar el sistema no estando en línea... o un poco más allá, que definitivamente prefiera trabajar todo el tiempo offline y sin conexión de red.

Ahora bien, aún que es de esperar que no el 100% de la funcionalidad esté en los 3 ambientes, al final hay clases, reglas de negocio y librerías que de forma natural serán compartidas. Ante esto, lo ideas sería que estos elementos puedan ser reutilizados en estos ambientes (WEB, escritorio, smartphones)

Ante este escenario, estoy analizando 3 estrategias distintas en cuanto al lenguaje sobre el que se desarrollará la aplicación: Java, PHP y C#.

Java, en sus diferentes capacidades (J2ME, J2SE, J2EE) podría ser una opción, pero en mi experiencia es bastante pesado para los programas de escritorio y desconozco la capacidad de portabilidad del código entre escritorios Microsoft y Machintosh. Al haber sido tantos años open source, se cuenta con múltiples librerías publicadas en las diferentes y variadas comunidades en internet existentes. Considero personalmente a Jave un lenguaje complejo, poderoso, y con una amplia curva de aprendizaje para los novatos si lo que se pretende es dominarlo.

.Net igualmente ofrece la capacidad de trabajar en los 3 ambientes, mas en este caso hay dependencia nativa para trabajar en plataformas Microsoft, lo que encarece de forma importante cualquier proyecto. Es cierto que existen versiones Express (gratuitas) de algunas de sus herramientas, pero al final están limitadas en cuanto a capacidad y al crecer tarde o temprano se llega a los esquemas de licenciamiento. También existen múltiples librerías en comunidades .Net y para mi gusto es más fácil encontrar documentación sobre la herramienta en buena parte debido a que, al ser software pagado, el fabricante está directamente interesado en allanar cualquier problema que ponga en duda la implementación (entiéndase adquisición) de sus herramientas. Centrándome en C#, siento personalmente este lenguaje también poderoso pero con una curva de aprendizaje más reducida para su completo dominio, además de ser algo un lenguaje ligero. En lo particular tengo más experiencia en C# que en los demás.

PHP es el más sencillo de usar de los 3 para el desarrollo web, aunque también es el menos poderoso y versátil para su transportación a los 3 ambientes. Para su implementación en escritorio me topé con el proyecto http://gtk.php.net/, el cual se reconoce a sí mismo como experimental y deja a riesgo del desarrollador su implementación. También he encontrado metodologías para que desarrollos PHP utilicen clases java, pero desde mi trinchera los veo más como frankensteins (que no dudo que funcionen), que como soluciones robustas a largo plazo.

Como la idea no es estar "picando" en las tres opciones ya que eso atrasaría mucho los tiempos del proyecto, considero que lo importante es decidir, desde el primer momento, la estrategia a seguir... y casarme con ella. Aún que mi principal experiencia es con .Net, no quisiera basar en este único elemento la decisión. La robustez, transportabilidad y capacidad de crecimiento del proyecto es la prioridad.

En fin, esta es la exposición del tema. Si consideran que hace falta definir algo más, coméntenlo y con gusto aterrizo el punto.

La discusión está servida...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder