¿Cuál es la respuesta de Java a WPF?
.net (3)
Creo que una combinación de JavaFX, Swing, Java2D y el JRE basado en navegador de Java comprenden las soluciones que proporciona WPF:
- Las aplicaciones JavaFX (en realidad, cualquier aplicación Java) pueden ejecutarse en el navegador o en un escritorio
- JavaFX proporciona soporte de video de alta gama
- JavaFX proporciona animaciones con guiones y efectos especiales visuales
- Swing proporciona capacidades de interfaz de usuario, y se puede usar tanto en Java como en JavaFX
- Java2D, que proporciona las bases para todas las tareas de dibujo (incluido Swing), aprovecha la aceleración de hardware y el soporte de DirectX.
- El JRE en el escritorio o el navegador permite que las aplicaciones Java se implementen en múltiples entornos (incluyendo otras pantallas, como decodificadores o teléfonos)
En este momento, soy principalmente una persona de .Net, pero últimamente he estado jugando con Java, explorando lo que hay ahí fuera.
Ahora estoy buscando el equivalente de Java para WPF. Sé que podría encontrar una biblioteca OpenGL o dos, pero eso no es tan rico o simple como el sistema WPF.
He programado Aqua, Macintosh Quick Draw, Windows GDI y GDI +, Qt y .NET Winforms y WPF es, de lejos, la API más sofisticada que he utilizado. Aunque tiene un conjunto de funciones bastante mejor que las tecnologías anteriores, como el swing, no es rival para WPF. Resuelve algunos de los principales problemas que han plagado la programación de gráficos. Si vienes del mundo HTML / JS, es fácil de aprender, pero si vienes del mundo de la programación gráfica tradicional, es un gran cambio de paradigma. De todos modos, es mucho más fácil de aprender que CSS / HTML / JS. Es una ruptura limpia de los conceptos heredados que plagan otros entornos de programación de gráficos.
La mayor fortaleza de WPF es que es independiente de la resolución. Puede escalar a través de dispositivos con poca o ninguna modificación. Requiere poco trabajo tomar una versión de pantalla de un dibujo y enviarla a una impresora de alta resolución sin pérdida de resolución.
También es compatible con la activación de eventos. Los elementos de la interfaz de usuario pueden responder a eventos de otros elementos de la interfaz de usuario o a su código de aplicaciones, lo que hace posibles las interfaces dinámicas. Hace que sea fácil separar el código de la interfaz de usuario de una manera que incluso HTML / JS no puede lograr. Los elementos pueden transmitir y escuchar eventos y responder en consecuencia.
Otra fortaleza es su API orientada a objetos y declarativa. Usando XAML, puede construir fácilmente una interfaz de trabajo de manera rápida y eficiente con unas pocas líneas. A diferencia de HTML / JS, es más fácil de aprender y su resultado es mucho más predecible y eficiente. Incluso puede programar WPF por completo en el código, pero generalmente no vale la pena la ganancia de rendimiento menor. Un mejor método es compilar su Xaml en el código .NET.
Además, las herramientas disponibles para WPF son muy extensas en comparación con JavaFX. Hay toneladas de herramientas que incluyen Expression Blend disponible. También hay numerosas herramientas para tomar formatos de gráficos vectoriales como SVG y Adobe Illustrator y convertirlos en XAML. Ahora, los diseñadores y programadores pueden colaborar en la publicación de escritorio de una manera que era muy difícil de hacer antes.
En resumen, WPF es tan completo que el equipo Mono optó por no transferirlo a la base de código Mono. Afirmaron que tomaría muchos años para implementar completamente un conjunto de características razonables. Si existiera una versión compatible con Mono de WPF, convertiría a .NET en el marco de aplicación multiplataforma de facto. De hecho, incluso puede reemplazar HTML / CSS, ya que es mucho más poderoso y fácil de entender. Desafortunadamente, Microsoft no vio un caso de negocios para un WPF multiplataforma habilitado. Es por eso que SilverLight / WPF perdió con HTML5 / JS. Gracias a este error, ahora están obligados a entregar no solo la web, sino parte de su escritorio a HTML 5 / JS.
WPF basado en funciones es más completo que cualquier otro JavaFX, Swing, AWT o Java2D. Ese era el objetivo del diseño, después de todo, llevar todo lo relacionado con la presentación en una sola biblioteca. En cuanto a rendimiento, son casi lo mismo con la excepción del uso de memoria donde Java es un cerdo hambriento