Foros del Web » Programación para mayores de 30 ;) » Java »

Eterno dilema: ¿AWT o Swing?

Estas en el tema de Eterno dilema: ¿AWT o Swing? en el foro de Java en Foros del Web. Hola a todos, supongo que este tema ya estará más que repasado pero últimamente no paro de darle vueltas. En su día empecé una aplicación ...
  #1 (permalink)  
Antiguo 26/10/2011, 19:14
 
Fecha de Ingreso: agosto-2010
Mensajes: 56
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Eterno dilema: ¿AWT o Swing?

Hola a todos, supongo que este tema ya estará más que repasado pero últimamente no paro de darle vueltas. En su día empecé una aplicación con AWT, pero a mitad de desarrollo decidí rehacerla desde cero con Swing. En esta última versión he podido notar que el rendimiento se resiente, pero en cambio por Internet no paran de darle buena prensa a Swing.

Hasta el momento he podido deducir lo siguiente:

AWT, pros:
- Más rápido
- Más compatible con applets
- Más compatible con dispositivos móviles, que no suelen llevar Swing
- Respeta el look'n'feel del sistema

AWT, contras:
- Más feo (todo hay que decirlo)
- Menos prestaciones para algunas cosas
- Descontinuado

Swing, pros:
- Más estético
- Más prestaciones
- Más continuado (se desarrollan componentes sobre Swing)

Swing, contras:
- Muy lento (al menos para mí)
- No se integra en absoluto con el sistema operativo
- Por la razón anterior, a veces los controles no funcionan como se espera

¿Qué pensáis? ¿Vuestros pros y contras? Me gustaría llegar a una conclusión definitiva y volcarme de lleno con uno de ellos, gracias ^^
  #2 (permalink)  
Antiguo 26/10/2011, 21:59
 
Fecha de Ingreso: marzo-2006
Mensajes: 43
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Eterno dilema: ¿AWT o Swing?

Bueno, en si para mi los 2 no funcionan para aplicaciones de escritorio.

Swing de por si me parece muy pesado, además de como dices no se integra totalmente al sistema, ya que su integración al sistema operativo se debe a la emulación de Widgets, más no que los trae incorporado como la aplicación o interfaz Qt.

Swing, posee muchos temas, pero para una aplicación de escritorio, es muy lento. Además de que crear código y con sus layouts, es súmamente confuso, y no se actualiza desde el 2007.

Montar un fondo, es un dolor de cabeza. Entre otras cosas. Aunque es el que está continuado y más apoyado y seguido que AWT.

No he probado AWT, pero por lo que he investigado también (ando igual que tu), es que AWT es antiguo y feo. Además de que hasta la propia IBM sacó su propio toolkit de interfaz, denominado "SWT", que es mucho más renovado pero no es tan apoyado y tan extenso que digamos.

AWT si se integra bien al sistema, aunque el SWING es la renovación de AWT, y su código de creación es semejante, sólo que el Swing es la librería integrada o por defecto de Java.

Swing no se integra perfectamente, ya que es multiplataforma y son casi 3 a 4 sistemas operativos donde integrarse. No es 1. Además de sólo tener máquina virtual, se ejecuta y emula los widgets del sistema.

A mi me encanta la interfaz de Qt, pero el problema es que hay que aprender C++ y para mi, que ya estoy culminando la carrera y estoy acostumbrado a Java, me parece algo más amigable y pués, orientado a objetos, me parece perfecto. Aunque C++ es un gran lenguaje, pero con Java me ahorro muchas cosas. Además de su gran IDE de calidad NetBeans así como Eclipse y que es multiplataforma.

GTK me parece muy confuso, limitado y pobre. WindowsForms debe ser amigable, pero no me gusta VB ni VB.NET.

Para mi, una lenguaje de programación como el de Java, o su sintaxis con interfaz HTML y CSS, sería el lenguaje perfecto (para mi).

Por eso me gustaría aprender PHP, aunque no está tan demandado como Java a nivel mundial.

Pero HTML y CSS, crear interfaces o páginas Webs es una delicia. Fácil, liviano y completos.

Swing es muy confuso y pesado. No se, es el punto gordo de Java al crear aplicaciones para el escritorio.

¿Qué tal el AWT? ¿Han probado también Qt Jambi? (Java con Qt).

Según mi experiencia, investigación, ésta es mi opinión.

Saludos!
__________________
:si: ANTARES:si:
  #3 (permalink)  
Antiguo 27/10/2011, 12:26
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Eterno dilema: ¿AWT o Swing?

Hola,

Cita:
Iniciado por dersir Ver Mensaje
... En esta última versión he podido notar que el rendimiento se resiente, pero en cambio por Internet no paran de darle buena prensa a Swing.

¿Qué pensáis? ¿Vuestros pros y contras? Me gustaría llegar a una conclusión definitiva y volcarme de lleno con uno de ellos, gracias ^^
Swing está construido sobre AWT, si estas usando Swing estas usando AWT de forma subyacente, pero con muchas ventajas adicionales. Y lo de buena prensa a Swing, será porque es lento y pesado en computadoras antiguas, pero he visto programas mal hechos ejecutarse tan lento como Swing en .NET y C++

La situación desde mi punto de vista es que hay que conocer a profundidad, realmente a profundidad, el funcionamiento de Swing para hacer aplicaciones estables y de forma fácil. Quien dice que es inestable, difícil o que no sirve es porque simplemente no sabe Swing.

Cita:
Iniciado por 1antares1 Ver Mensaje
Montar un fondo, es un dolor de cabeza. Entre otras cosas. Aunque es el que está continuado y más apoyado y seguido que AWT.

http://www.forosdelweb.com/f45/poner...io-mdi-908389/

Cita:
Iniciado por 1antares1 Ver Mensaje
... Swing no se integra perfectamente, ya que es multiplataforma y son casi 3 a 4 sistemas operativos donde integrarse. No es 1. ...
Esa es la principal diferencia de Swing, se integra mejor puesto que no depende completamente del manejador de ventanas del sistema operativo, son controlados por código Java independiente de la plataforma.

Cita:
Iniciado por 1antares1 Ver Mensaje
... GTK me parece muy confuso, limitado y pobre. WindowsForms debe ser amigable, pero no me gusta VB ni VB.NET.
...
No es aconsejable mezclar una cosa con otra, porque caemos en el mismo problema de comparar cual es mejor, GTK es una interface que simula a un nivel muy alto el funcionamiento de Swing, puesto que tampoco depende del sistema operativo.

Por ejemplo, Wireshark usa GTK en Windows, y su interface gráfica es tan lenta como Swing. .NET es solamente para Windows, la versión multiplataforma es Mono y es tan lenta en Windows como Swing por lo mismo.

Cita:
Iniciado por 1antares1 Ver Mensaje
... Por eso me gustaría aprender PHP, aunque no está tan demandado como Java a nivel mundial....
PHP no tiene nada que ver con Swing, PHP en su interface gráfica usa PHP-GTK.

Saludos,
  #4 (permalink)  
Antiguo 27/10/2011, 13:46
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años
Puntos: 454
Respuesta: Eterno dilema: ¿AWT o Swing?

Hola:

Swing tiene por defecto su propio estilo (metal), pero se puede configurar para que coja el estilo del sistema operativo en el que se ejecute el programa

Código java:
Ver original
  1. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

y ya tenemos swing con el mismo aspecto que cualquier otra ventana del sistema operativo. Es más, según arranquemos el programa en windows o linux, cambiará su aspecto sin tocar nada.

AWT está muy viejo (aunque sigue por debajo). Antes tenía sentido usarlo porque no todos tenían una versión de java con Swing, recién salido, y así se aseguraba compatibilidad con más gente .... pero swing lleva en java desde la versión 1.2 .... no creo que queden muchas versiones java anteriores corriendo por ahí.

En cuanto a complejidad al programarlo, es como todo, una vez se aprende no es tan complicado.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 28/10/2011, 08:53
 
Fecha de Ingreso: marzo-2006
Mensajes: 43
Antigüedad: 18 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Eterno dilema: ¿AWT o Swing?

HackmanC

Código PHP:
Ver original
  1. public class JFrame extends javax.swing.JFrame {
  2.      
  3.         javax.swing.ImageIcon fondo;
  4.      
  5.         public JFrame() {
  6.             fondo = new javax.swing.ImageIcon(getClass().getResource("/application/FOTO.jpg"));
  7.             initComponents();
  8.         }
  9.      
  10.         @Override
  11.         public void paint(Graphics g) {
  12.             super.paint(g);
  13.             g.drawImage(fondo.getImage(), 0, 0, getWidth(), getHeight(), null);
  14.         }

Ya te diste cuenta la cantidad de código que se lleva colocar un fondo en un Frame.

Cita:
Iniciado por HackmanC
PHP no tiene nada que ver con Swing, PHP en su interface gráfica usa PHP-GTK.
Creo que lo expliqué mal. Es cierto.

Digo que prefiero programar en PHP, y crear mis propias interfaces con xHTML y CSS, que hacer aplicaciones de escritorio con Java-Swing. Es decir, me gusta más la área Web ya que puedo maquetar, diseñar y todo a mi gusto, tan fácil y el HTML recoge los valores fáciles para programarlos, sea con PHP o validarlos con JavaScript.

Cuando Java se puedan hacer aplicaciones de escritorio, usando xHTML, CSS, así como se hace JavaScript para WebApps, sería perfecto. Estaría dispuesto a seguir programando en Java.

No se, es la costumbre. Antes me costaba CSS y xHTML, y aún me faltan cosas, pero para mi, es una delicia para armar lo que se desee. Sin Dreamweaver, ni nada. En Kate, o Aptana.

Saludos!
__________________
:si: ANTARES:si:
  #6 (permalink)  
Antiguo 28/10/2011, 08:59
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 3 meses
Puntos: 416
Respuesta: Eterno dilema: ¿AWT o Swing?

Cita:
Cuando Java se puedan hacer aplicaciones de escritorio, usando xHTML, CSS, así como se hace JavaScript para WebApps, sería perfecto. Estaría dispuesto a seguir programando en Java.
Talvez debas echarle un vistazo a JavaFX

Que en realidad no es Java como tal, pero se puede integrar en aplicaciones Swing
  #7 (permalink)  
Antiguo 28/10/2011, 11:44
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Eterno dilema: ¿AWT o Swing?

Hola,

Cita:
Iniciado por 1antares1 Ver Mensaje
... Ya te diste cuenta la cantidad de código que se lleva colocar un fondo en un Frame. ...
Si, tienes toda la razón, pero para mí no fue un dolor de cabeza, y lo escribí en menos de 30 segundos, contrario a lo que mencionaste. Aunque la cantidad de líneas necesarias se resume en tres sin contar el override del paint, y seis si contamos ese método, que no es obligatorio en una aplicación normal.

Pero acá viene lo importante, eso me da versatilidad para crear aplicaciones, yo puedo inclusive pintar con métodos de dibujo, hacer una animación en el fondo de la ventana, mostrar un vídeo cuadro a cuadro o lo que mi imaginación me lo permita. Contrario a tener una propiedad que diga 'backgroundImage' y que solamente me permita poner una imagen.

Cita:
Iniciado por 1antares1 Ver Mensaje
... Cuando Java se puedan hacer aplicaciones de escritorio, usando xHTML, CSS, así como se hace JavaScript para WebApps, sería perfecto. Estaría dispuesto a seguir programando en Java. ...
Tienes toda la razón en ese punto también, para hacer una página web no es necesario tener tanto conocimiento, es muy simple el proceso y el flujo de trabajo es bastante natural. Con saber lo básico de HTML y CSS ya tienes para hacer una página simple. El Javascript yo lo considero con un valor agregado puesto que no es indispensable y es un error depender de este para diseñar en web.

El punto es que la pregunta dice ¿AWT o Swing?. Como no es posible escribir HTML dentro de un Layout de Swing o algo similar, entonces creo que es irrelevante para la pregunta inicial. Y por eso decía que no tiene nada que ver, de otra forma sería escritorio o web.

Saludos,

Etiquetas: awt, contra, contras, pros, swing, ventajas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:57.