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

 
Vista:

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

Publicado por Mauricio Priego (3 intervenciones) el 01/05/2011 17:55:20
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

Análisis de lenguajes para proyectos WEB Escritorio SmartPhones

Publicado por Henry Alberto Suarez Vargas (1 intervención) el 03/05/2011 21:54:48
Es importante tener en cuenta el tiempo definido para la ejecucion del proyecto, esto incide radicalmente en el aspecto de las curvas de aprendizaje de cada uno de los lenguajes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Análisis de lenguajes para proyectos WEB Escritorio SmartPhones

Publicado por m (97 intervenciones) el 03/05/2011 06:50:38
Pues como siempre,
antes de decidir que utilizar lo primero es
Cuales son nuestras necesidades, de que tipo de aplicaciones requerimos
que sistema operativo sera el de mayor uso, tipos de smart phones (SO: android, windows, etc..)
despues de esto ya se tiene un mejor panorama de las herramientas a utilizar.



Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Análisis de lenguajes para proyectos WEB Escritorio SmartPhones

Publicado por Mauricio Priego (3 intervenciones) el 05/05/2011 16:53:24
Gracias por tus comentarios.

De las necesidades, son las descritas en la exposición inicial.

El tipo de aplicación... Es una aplicación transaccional para llevar el registro operativo de empresas. La aplicación será web por motivos de mobilidad del personal, pero como parte del trabajo es visitando minas y otros lugares sin conexión de Internet cercana, se requiere que puedan trabajar standalone. Habrá aplicativos periféricos para smartphones.

De sistemas operativos... Realmente los considero secundarios ya que tenemos experiencia tanto en Linux como en Microsoft. Por tanto, es más importante para mí la robustez y flexibilidad de la aplicación que el SO, por lo que puedo definir el SO en base a las limitantes del lenguaje.

De los SmartPhones, digamos que en este momento el tema por sí solo de las diferentes plataformas de los celulares es un tema de discusión. Por lo que en la discusión se podría comentar, al hablar de un lenguaje X, de qué alcance tiene en las plataformas móviles.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Análisis de lenguajes para proyectos WEB Escritorio SmartPhones

Publicado por Mauricio Priego (3 intervenciones) el 05/05/2011 16:59:58
Henry, gracias por tus comentarios.

El tiempo en que se espera tener el producto final es de un año. Coincido contigo que en este punto la curva de aprendizaje se vuelve crítica... pero no considero prudente y mucho menos estratégico el limitar el crecimiento de un proyecto por falta de pericia actual.

Muchas veces es mejor tener un compás de espera para adquirir la pericia, que sacrificar al futuro por andar con prisas.

Seguimos en contacto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar