Jun 21, 2005

JSEE y .NET

No se porque tener que escoger entre J2SE o .NET, ¿por qué casarse con alguno?.. y ser fieles para toda la vida. ¿Por qué no usar ambos? Utilizando una forma de comunicación estándar se crearía la solución, por ejemplo pensando en componentes distribuidos podríamos pensar en SOAP, y no pensar sólo en Bytecode o CIL.

Las tecnologías en Software ahora estan marcadas por dos pendientes: J2SE y .NET, no hay otras, ni el bello C++ con su potencia ni el popular Python entran en los ámbitos empresariales; y según muchos hay que escoger algún camino entre esas dos opciones. Toda la plataforma Java es muy buena, hay infinidad de cosas hechas y muy bien implementadas, es una tecnología tipo "UNIX" (por llamarla de una forma) que muchos años fue líder en desarrollo "pesado" (y probablemente lo sigue siendo) y que ahora tiembla por la "nueva" tecnología llamada .NET que viene a combatir por un gran trozo del mercado tomado por Sun y su Java. Es claro que poco a poco hay más desarrolladores .NET... ¿será bueno? ¿será malo?

Es bien sabido que muchos (en exceso) puristas del Software Libre creen que apoyar una tecnología como .NET, la cual es estandarte del desarrollo de software del gigante del monopolio, es un pecado mortal, y que no es más que tratar de "copiar" lo que ya esta y siempre querer imitar, al contrario de eso creo que se busca la superación, hablando en términos de software, para los entornos libres. A veces pienso que mono podría ser considerado como un arma de doble filo y que de alguna forma sólo se esta creando una compatibilidad hacia MS Windows haciendo de alguna forma compatibles las aplicaciones Windows en UNIX, pero luego sonrio viendo que de esa forma podremos "aprovecharnos" de que está escrita en .NET y es capaz de funcionar también en UNIX, es un arma de doble filo para ambos lados: tener más aplicaciones en UNIX es sin duda una idea maravillosa, pero ahora se comienzen a popularizar las aplicaciones en UNIX con costo suena peligroso... y no porque cuesten, sino porque lo más probable es que sean propietarias. La idea más tenebrosa de muchos es pensar que veran funcionar bajo mono un MS Office .NET o algo más escabroso... el MS Windows Media Player.

Yo se que con Java eres más productivo que con Python, Perl, PHP e incluso C, y no sólo eso también te creas carácter al escribir tu código, buscas hacerlo más limpio y haces aplicaciones más rápidamente (las aplicaciones gráficas no entran en esta categoría... porque Swing es un martirio si no tienes un RAD) y con menos riesgos, pero te tambíen te creas defectos que arrastras de ahí en adelante, como no liberar espacio, pues en Java no necesitas hacerlo, no declarar inicialmente variables, pues en Java es automático, y en sobretodo comienzas a necesitar más requerimientos de hardware para que tus aplicaciones funcionen normalmente sin congelamientos por rendering o loading, pero bueno, de todo lo bueno algo malo tendría que haber.

La selección de una u otra tecnología no debe ser por fanátismo sino por las necesidades que se nos presenten, si queremos escribir una aplicación a muy bajo nivel lo más probable es que escojamos Managed C# sobre Java o sobre C inclusive, aunque aquí de nuevo entran los purismos.

Ahora que la moda es hacer aplicaciones Web y aplicaciones para dispositivos móviles, no dudaria tomar .NET para las aplicaciones Web y J2SE para los dispositivos móviles, simplemente hay que mirar el soporte de las compañias para con Java, la mayoría de los teléfonos celulares actuales traen el JME y hacer aplicaciones Web con ASP.NET es una maravilla, JSP es bueno pero sinceramente muy lento en ejecución, el mismo detalle, más recursos por lo mismo.

Esto es como con las mujeres, a algunos les gustan voluminosas, con gran busto y enorme trasero, algunos las preferimos finas y con bonita sonrisa, pero si en alguno estamos de acuerdo ambos lados es que nos gustan las mujeres, es lo mismo: Queremos una tecnología con la que nos sintamos confortables, simplemente felices :)

En fin, hay de gustos a gustos... ¿Cual sufrir? Si con IKVM Java es totalmente usable desde .NET

Ah.. y MonoUML va muy bien...