Ir al contenido


Foto

Delphi vs Java, ventajas y desventajas de cada uno y por qué usarlos.


  • Por favor identifícate para responder
28 respuestas en este tema

#21 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.466 mensajes
  • LocationMéxico

Escrito 05 mayo 2011 - 04:34


Dejame entender,

¿ Quieres decir que una aplicación que hice con java no necesito hacer ningún cambio ? y cuando digo ningún cambio es que no se cambia absolutamente nada, ni una sola letra ¿?

Es así ?


Del código no. Pero sí es posible que tengas que editar archivos de configuración y/o crear nuevos (archivos xml, pool de conexiones, etc.)
Yo he migrado aplicaciones Web bastantes complejas de Tomcat a Resin sin cambiar nada en absoluto. Pero claro, sólo usaba lo que ofrecen "out of the box" los servlets y la configuración web.xml de la aplicación que es parte del estándar también.
Si accedes a EJBs, JMS entre otros servicios sí tienes que crear archivos de configuración específicos.


Ah, es que yo habia entendido que no tenia que hacer nada de nada.

Y que pasa cuando en el supuesto que tu mismo comentas:

Haces un programa en Delphi que procesa XML usando TXMLDocument. ¿Luego algún otro fabricante te ofrece otra implementación bajo el mimo API de TXMLDocument? no, pues tendrías que cambiar tu código para usar las clases y funciones de la biblioteca a la que migras.


¿ Con java no tienes que cambiar nada de nada ?

Salud OS
  • 0

#22 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 07 mayo 2011 - 09:43

Eduarcol,

Y ojalá no necesites más de eso. Estás atado a una solución de único fabricante, único API, único sistema operativo, única arquitectura de procesador.

Buena suerte
  • 0

#23 JuanPalmaSoft

JuanPalmaSoft

    Advanced Member

  • Miembros
  • PipPipPip
  • 76 mensajes
  • LocationDistrito Federal

Escrito 09 mayo 2011 - 03:48

saludos

tienen algo de esto

BUG de Delphi 7 (Delphi SOAP Runtime and Importer Update).doc  porque no logro que el web service me responda, ya me conecto me me da los valores en null.

Gracias

  • 0

#24 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 11 mayo 2011 - 08:17

Y que pasa cuando en el supuesto que tu mismo comentas:


Haces un programa en Delphi que procesa XML usando TXMLDocument. ¿Luego algún otro fabricante te ofrece otra implementación bajo el mimo API de TXMLDocument? no, pues tendrías que cambiar tu código para usar las clases y funciones de la biblioteca a la que migras.


¿ Con java no tienes que cambiar nada de nada ?

Salud OS


JAXP es un API para el procesamiento de XML en Java. Es un estándar de la JCP y tienes la implementación de referencia en http://jaxp.java.net/ la gente de Apache tiene su implementación http://xerces.apache.org/ e incluso para grandes aplicaciones hay implementaciones como la de Intel (http://soa.sys-con.com/node/703799 acá una corta reseña no sé por qué ya intel lo quitó de su página).

Conclusión el procesamiento de XML en Java puede escribirse en un API y luego utilizar implementaciones de varios proveedores sin cambiar nada.
  • 0

#25 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.466 mensajes
  • LocationMéxico

Escrito 11 mayo 2011 - 10:17


Y que pasa cuando en el supuesto que tu mismo comentas:


Haces un programa en Delphi que procesa XML usando TXMLDocument. ¿Luego algún otro fabricante te ofrece otra implementación bajo el mimo API de TXMLDocument? no, pues tendrías que cambiar tu código para usar las clases y funciones de la biblioteca a la que migras.


¿ Con java no tienes que cambiar nada de nada ?

Salud OS


JAXP es un API para el procesamiento de XML en Java. Es un estándar de la JCP y tienes la implementación de referencia en http://jaxp.java.net/ la gente de Apache tiene su implementación http://xerces.apache.org/ e incluso para grandes aplicaciones hay implementaciones como la de Intel (http://soa.sys-con.com/node/703799 acá una corta reseña no sé por qué ya intel lo quitó de su página).

Conclusión el procesamiento de XML en Java puede escribirse en un API y luego utilizar implementaciones de varios proveedores sin cambiar nada.


Y si yo genero algunas dll's o bpl's en Delphi con todas las implementaciones de varios proveedores sólo tendría que indicar con que proveedor quiero trabajar sin cambiar código, ¿ o no estamos hablando de lo mismo ?

Salud OS
  • 0

#26 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 11 mayo 2011 - 01:11


Y si yo genero algunas dll's o bpl's en Delphi con todas las implementaciones de varios proveedores sólo tendría que indicar con que proveedor quiero trabajar sin cambiar código, ¿ o no estamos hablando de lo mismo ?

Salud OS


Sí claro... tú puedes generar tu "thin layer" que usando el patrón fabrica permita levantar varias implementaciones que internamente usen bibliotecas de los fabricantes que dispongas. Sólo que en el caso de Java la gente de JCP ya adelantó ese trabajo hace años y es un estándar a nivel mundial.
  • 0

#27 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 11 mayo 2011 - 02:33

JAXP es un API para el procesamiento de XML en Java. Es un estándar de la JCP y tienes la implementación de referencia en http://jaxp.java.net/ la gente de Apache tiene su implementación http://xerces.apache.org/ e incluso para grandes aplicaciones hay implementaciones como la de Intel (http://soa.sys-con.com/node/703799 acá una corta reseña no sé por qué ya intel lo quitó de su página).

Conclusión el procesamiento de XML en Java puede escribirse en un API y luego utilizar implementaciones de varios proveedores sin cambiar nada.


Sinceramente no sé donde quieres llegar con todo esto. La clase TXMLDocument de Delphi no tiene porqué variar ni un ápice para utilizarlo con documentos XML de un fabricante o de otro. Para eso XML es un estándar bien establecido y los fabricantes que lo usen se tiene que atender a ese estándar (y por lo tanto sus documentos serán perfectamente accesibles con el TXMLDocument genérico de Delphi).

Y ojalá no necesites más de eso. Estás atado a una solución de único  fabricante, único API, único sistema operativo, única arquitectura de  procesador.

Buena suerte


Imagino que no estás intentando vendernos que Java es un tan lenguaje universal que sus aplicaciones funcionan sin ninguna modificación en todas las plataformas con una máquina virtual Java. Cualquier aplicación medianamente compleja va a utilizar clases de terceros para informes, gráficos estadísticos, etc. ... Esos frameworks propietarios no están disponibles en todas las plataformas Java. Eso por no citar las incompatibilidades de las propias máquinas virtuales (la de Android, sin ir muy lejos, es una máquina virtual que te va a regalar muchas horas de diversión adaptando tu aplicación).

Si te centras solo en las clases básicas, seguro que no tienes problemas para hacer multiplataforma tu aplicación. Pero a partir de allí, como tu dices ... buena suerte.

Por cierto, si los programadores de Delphi nos limitamos también a clases y controles estándar (que podemos derivar nosotros mismos para adaptarlas a nuestras necesidades), entonces no estamos para nada atados a una única arquitectura y sistema operativo. Todo lo contrario, mediante FreePascal y Lazarus podemos compilar nuestras aplicaciones (con todas la ventajas que conllevan las aplicaciones nativas), para 386, x86-64, ARM, SPARC, MIPS, PowerPC, PowerPC 64, ... ... creando aplicaciones para Windows, WebApps, Mac OS X, Linux, iPhone OS, Windows CE, FreeBSD, Solaris, MeeGO, Mac OS Classic, OS/2, Nintendo DS, Haiku, Netware, ... ...

Cada lenguaje tiene sus ventajas e inconvenientes, te felicito si Java cumple tus expectativas y estas encantado con él. A muchos otros nos gustan otros lenguajes, personalmente después de haber disfrutado de Pascal nunca he podido tragar con los lenguajes basados en C. Asimismo hay mucha gente a la que no nos convencen las soluciones sobre máquinas virtuales (Java, .NET, ...) y preferimos el desarrollo de aplicaciones nativas. Te puedo asegurar que si me viera obligado a abandonar Delphi (y no veo como podría ocurrir eso), antes que Java escojo mil veces C++ (a pesar de lo que he dicho sobre C) y QT para seguir haciendo aplicaciones multiplataforma "nativas".

Saludos.
  • 0

#28 jorgeu

jorgeu

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 179 mensajes
  • LocationMaracaibo

Escrito 11 mayo 2011 - 08:53

Epa Marc,

Muy sólido lo que dices.

Yo sólo dejaba claro lo importante de tener estándares independientes de proveedores como los que emite el JCP.
Luego se extendió un poco más de la cuenta el debate acerca de ello.

También se puede hablar de los estándares ECMA incluídos en .NET aunque en ese caso muchas cosas no están estandarizadas.

O los que hay en la telefonía GSM. Se tiene una especificación de cómo es la red y nokia, alcatel-lucent, siemens, huawei, etc. son proveedores de equipos para montar redes que cumplen con los estándares y cualquier otro fabricante puede hacer terminales para dichas redes.

Resumo mi aporte en la discusión entre Delphi y Java es la disponibilidad de estándares de la JCP.

Muchas otras cosas se dijeron antes y estoy de acuerdo.

Nota: no vendo Java  :D a pesar de ser mi especialidad soy multilenguaje. Ahora mismo ando explorando common lisp.

Saludos
  • 0

#29 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.296 mensajes
  • LocationArgentina

Escrito 12 mayo 2011 - 01:38

Hola,

Jorgeu es muy bonito lo que comentas sobre la posibilidad de contar con esa API que comentas. Como bien dices, esa posibilidad de conectar y tratar diferentes bibliotecas como una única interfaz visible para el cliente se logra mediante el patrón Fábrica.

El problema de este patrón es que llevado al extremo y a largo plazo conduce a un mal rediseño y una reingeniería aparatosa, costosa y a la aparición de incompatibilidades que tardarán en eliminarse. La primera pregunta en cuanto uno lleva el patrón Fábrica/Fábrica Abstracta es ¿Realmente es tan necesario? Existirá un estándar, pero en la medida en que vayan añadiéndose más cosas a las bibliotecas las fábricas se vuelven más pesadas y llega el momento en que estallan.
Ocultarán buena parte de la complejidad al cliente, pero por dentro pueden llevar una bomba que muchas veces se la pasa por alto.

Java es una bomba, está lleno de factorías... clases abstractas, que como lo indica su nombre son un invento. En ocasiones es necesario contar con este patrón (es uno de mis favoritos) pero hay que tener cuidado con él. Y volviendo a la pregunta... ¿Realmente es tan necesario que exista tanta pluraridad de biblioteca para una misma cosa? ¿No es mejor quizá analizar la estabilidad por otro lado?

Ojo... no estoy diciendo que Java sea un desastre y debamos descartarlo pero tiene sus cosas que a mi no me convence. Como he dicho en otras ocasiones, para mi el diseño de la VCL que ofrece Delphi tiene un buen equilibrio entre extensibilidad y complejidad... ¡Y no está lleno de fábricas!

Saludos,

  • 0




IP.Board spam blocked by CleanTalk.