2009-02-10 14 views
9

Actualmente trabajo mucho en ActionScript 3.0, también me gusta programar en Java. ¿Es JavaFX perfecto para mí? ¿Cuál es la sensación general en JavaFX, se convertirá en una casa de máquinas, o tomará el mismo camino que los Applets de Java? ¿Podrían los diseñadores con los que trabajo sentirse cómodos con JavaFX en la misma medida en que se sienten cómodos con ActionScript y JavaScript?¿Cuáles son sus sentimientos sobre JavaFX?

Respuesta

2

Aunque parece bastante potente en términos de capacidades, soy un poco chato sobre JavaFX debido a su estructura e implementación. Parece un intento poco entusiasta de entrar en el mercado de Flash/Silverlight. Demasiado scripty

Discutiría a favor de ir a la ruta Silverlight 2, pero soy principalmente un desarrollador de C#, así que estoy un poco predispuesto allí. Si no te gusta esa ruta por el motivo que sea pero aún deseas un UX más completo para tus usuarios, te sugiero Flex; parece mucho mejor organizado que JavaFX para mí.

Solo mis dos centavos sobre el tema.

2

Si conoces Java pero quieres hacer las cosas que creías que solo eran factibles en Flash, entonces sí, JavaFX sería bueno para ti.

Sin duda, será mucho más fácil fusionar su conocimiento de Java con el diseño.

Y creo que las herramientas solo mejorarán, lo que simplificará su uso.

2

Un "meh" rotundo.

Cuando lo miré hace un año, tenían una herramienta de conversión de SVG a JavaFx de una vía. Genial, entonces puedes crear tu contenido visual una vez, marcarlo con mucho comportamiento, y luego la próxima vez que quieras que se vea bien, ¿entonces qué?

Si echa un vistazo a this tutorial puede ver lo que quiero decir. Estamos dibujando cosas arrastrando las formas de una paleta en el código fuente. OMGWTF. No lo estoy mostrando a mi departamento de gráficos.

Espero que me equivoque sobre JavaFx, pero no creo que lo entiendan. Por favor, ¿alguien de Sun no nos dará una capa de presentación que no tenga sus tentáculos inextricablemente entrelazados con el código?

+1

Tengo que estar de acuerdo con su última línea. Aunque, francamente, últimamente, creo que ese es el caso de Java en general. – Randolpho

+1

Debería echar un vistazo a Production Suite. Tiene excelentes herramientas para Photoshop e Ilustrator y la API FXD Loader le permite desconectar la interfaz de usuario de la lógica bastante bien. – Honza

+0

La suite de producción JavaFx parece interesante. ¿Puedo hacer algo similar cuando uso componentes Swing en JavaFx? – joeforker

1

A menos que esté trabajando en una aplicación interna, me mantendría alejado de ella. Los usuarios generalmente no quieren tener que lidiar con otro programa que logre lo mismo que Flash. No creo que su base de instalación sea lo suficientemente grande como para que sea conveniente para los usuarios finales.

+0

Quizás deberían averiguar cómo compilarlo en Flash bytecode. – joeforker

+1

Me gusta www.haxe.org lo hace – Luke

3

Dejé mi último trabajo para pasar de Java al desarrollo .NET.

Hubo una serie de razones para realizar la mudanza, pero la razón más importante fue que estaba harto y cansado de intentar crear software de IU de primera clase con Java & Swing. Han pasado seis años y estoy tan feliz de haber seguido. No veo ninguna razón para creer que Sun finalmente entienda el desarrollo de la interfaz de usuario con JavaFX.

Estoy convencido de que Microsoft finalmente está en el proceso de proporcionarnos una plataforma para crear aplicaciones interactivas ricas en el navegador. Lo digo después de haber construido un software disponible comercialmente que fue entregado como un complemento de Netscape hace 13 años, seguido por controles ActiveX y applets de Java, y ver que todas estas plataformas no se vuelven omnipresentes en la empresa por una razón u otra.

Me doy cuenta de que Silverlight 2 todavía carece de profundidad y madurez, pero Microsoft me ha demostrado suficiente compromiso en este momento que creo que será la plataforma RIA dominante en unos pocos años, al menos para proyectos que requieren lenguaje de programación "real". Estoy seguro de que Flash et al. no va a desaparecer pronto, pero Flash no es apropiado para los tipos de software que crea mi empresa.

La guinda del pastel es el hecho de que todavía podré usar Visual Studio, C# y un gran porcentaje de mi base de código actual (el motor central que está completamente separado de la interfaz de usuario). Por supuesto, si vienes de ActionScript, esto no te ayudaría.

Un punto más importante es el hecho de que Silverlight y WPF comparten mucho en común. Nuestro plan es compartir una gran cantidad de implementación entre las versiones de Silverlight y WPF de nuestro software. Es solo una cuestión de tiempo antes de que WPF sea el estándar para las aplicaciones de Windows. No sé si se trata de un par de años o diez años, pero claramente sucederá con el tiempo. Ser capaz de apuntar a los navegadores/SO más populares con Silverlight y Windows desde la misma base de código es una gran ventaja de la OMI.

Si conoces Java, pasar a C# es pan comido. Y a menos que esté utilizando uno de los IDE de Java agradables (no gratuitos), incluso las versiones gratuitas de Visual Studio serán una mejora sobre lo que está acostumbrado. El obstáculo será aprender la nueva forma de hacer las cosas con XAML, pero es algo muy bueno para que realmente lo disfrutes.

0

He pasado el fin de semana 'jugando con eso. No veo nada útil en eso. Es una iteración de swing/awt. Supongo que será bueno para los dispositivos móviles, pero más allá de eso no es nada útil.

Idealmente me gustaría usar flash pero me resulta doloroso integrarlo con un motor de cualquier tipo.

+1

No es solo para programación de GUI, es un lenguaje completo de programación/scripting. Creo que aborda muchas cosas desagradables en Swing (código repetitivo del oyente de acción, por ejemplo) muy bien. – helpermethod

8

Solo quería agregar mi $ .02 ... He estado trabajando en JavaFX durante los últimos 4 días en mi primer pequeño proyecto secundario al usarlo. Como antecedentes, he estado programando profesionalmente durante aproximadamente 9 años, comenzando con C, y he estado haciendo Java y C# /. NET durante los últimos 6 años.

IMO, JavaFX es mucho más frustrante que debería ser. Aquí hay algunas quejas:

  1. La sintaxis es rara a veces. Podría ser más como Java, ya que es Java FX. Pero la sintaxis no es una transición fácil desde Java.

  2. El orden de los elementos en un archivo .fx que realmente importa, lo que significa que se producen errores de referencia circular estúpidos, y "oh no se puede utilizar esta variable sin embargo, debido a que no se ha inicializado" problemas que el compilador debería manejar con facilidad, pero no es así.

  3. Las cosas aleatorias simplemente no funcionan. Las acciones/eventos en los controles Swing no siempre funcionan, por ejemplo, no parece que se llame a SwingSliderBar onKeyPressed/released.

  4. El manejo de errores es malo. Si se produce una excepción que no se maneja, no hay una manera real de contar otra cosa que no sea la consola de Java, y los elementos de la IU comienzan a reaccionar de forma divertida. Por ejemplo, crea un cuadro SwingText y vincula su valor a una variable. Ahora, tratar de editar el valor en el cuadro de texto arrojará una excepción porque no puede editar la variable enlazada. Sin embargo, en la interfaz de usuario, el cuadro de texto comienza a suceder cosas divertidas.algunos personajes solo 1/2 pintura, a veces retroceso no hace nada, a veces elimina un carácter, a veces puede presionar 2 teclas en el teclado como "1" y "2" y el cuadro de texto terminará con "21" ingresado en él en lugar de "12", etc ...

Aunque mi absoluta # 1 problema con el desarrollo de JavaFX en este momento es Netbeans. Es patéticamente malo en JFX. No se puede depurar, los errores se muestran incorrectamente en el IDE (¡he tenido que marcar comentarios como errores!), La intellisencia solo funciona como el 40% del tiempo, las plantillas de código del evento preprogramadas en el IDE para arrastrar & soltar controles aren ' t correcto. Olvidé cuál, pero uno de ellos arroja un "&" al final del código insertado que nunca es válido y siempre tiene que ser eliminado manualmente ... es simplemente horrible, y es inaceptable para una empresa como Sun .

Otra queja es la documentación general. Es solo deficiente. De alguna manera, la API de JavaFX ni siquiera aparece como el resultado de búsqueda número 1 en google cuando se buscan métodos/clases. Toneladas de "ejemplos" en la web ya no funcionan, ya que cada versión tiene importantes cambios de refactorización, y clases eliminadas o renombradas.

En general, le doy a JFX un 4 de 10. I quiero me gusta, pero JFX 1.1 simplemente no lo corta ... definitivamente no es lo que yo consideraría "producción lista".

+0

+1 La sintaxis es realmente extraña. Si bien a primera vista parece haber muchas similitudes entre Java y JavaFX, existen muchas diferencias sutiles. – helpermethod

+0

Si bien la sintaxis entre Java y JavaFX es diferente ... la interoperabilidad es realmente buena. Llamar Java desde JavaFX es fantástico ... y dado que JavaFX es una tecnología rica en el lado del cliente ... en realidad no es necesario que Java llame a JavaFX. Y en mi humilde opinión ... JavaFX es superior al legado Java SWING para el desarrollo de GUI del lado del cliente. –

0

Bueno, la sintaxis de ActionScript y JavaFX parece compartir muchas similitudes, por lo que tal vez sea "Sí".

Estoy aprendiendo el guión de JavaFX por el momento y de hecho me gusta. Pero lo que no me gusta, y tal vez es su mayor inconveniente, es su documentación horrible, que a menudo no está actualizada o incompleta.

1

He estado desarrollando aplicaciones Flash con Flex durante aproximadamente 2 años y decidí probar con JavaFX porque constantemente obtenemos quejas de los usuarios de que no pueden usar las aplicaciones de sus IPhones (y me encanta Java).

Eso es un golpe para Flash (sin soporte para dispositivos móviles).

Para ser sincero, estaba bastante impresionado con JavaFX (de una manera muy mala).

  • La documentación está incompleta.
  • El script es simplemente horrible; es este extraño híbrido entre JSON y R con la sensación de un Java-deja-vu.
  • Pasé los primeros 3 días pintando polígonos y haciendo degradados con CODE ... WTF !!
  • Traté de convencer a mi departamento de gráficos para que lo probara y ellos simplemente no se dan cuenta de cómo se supone que debe funcionar el equipo de producción, siguen quejándose de que Flex Skinning es mucho más fácil y se ve mejor al final (que es absolutamente cierto).
  • El "soporte de CSS" es simplemente una mala broma.
  • Por lo general, se siente como un intento mediocre de ofrecer una opción para el frontend de RIA.

sólo puedo pensar en un par de cosas buenas sobre él:

  • Se puede ejecutar desde un iPhone/iPad y casi todos los dispositivos móviles.
  • Tiene acceso a todo el código Java que desee, lo cual es excelente teniendo en cuenta las limitaciones que tiene ActionScript (sin sobrecarga, sin constructores privados, etc.). Esto es algo grandioso para nosotros los programadores, pero recordemos por un segundo que esta es una tecnología de frontend/presentación ... eso significa que los usuarios tendrán que ver realmente la cosa, por lo tanto, si no se ve bien y tienen un aspecto genial animaciones/efectos que no va a cavar.
  • El script es mucho menos detallado que los archivos MXML (con el costo de ser ininteligible).
  • Hablando de rendimiento ... Flash Player es esta gran mancha verde que sigue creciendo y creciendo hasta que no queda RAM en comparación con la ejecución de JavaFX (¡JVM oscila! Desafortunadamente, esto no tiene nada que ver con la API JavaFX real, solo que JVM ... bueno, eso es genial!).
  • Tiene esta interesante característica donde puede arrastrar el applet fuera del navegador web.

Al final, estoy feliz de que tengo una opción para ir móvil pero esta es la luz años camino de la madurez que Flex/Flash se ha logrado en cuanto a aplicaciones RIA. El futuro de Flex/Flash como una tecnología web de amplia distribución no está claro (puede que solo se use para banners y juegos en línea molestos), nadie quiere depender de una tecnología cercana como Flash Player, por eso el conjunto La comunidad web se esfuerza por sacar Flash de la escena (soporte de video HTML5, No Flash Player para dispositivos Apple, etc.). Así que un intento de tener uno abierto siempre es bienvenido, es solo que JavaFX se siente como esta versión incompleta de una versión beta apresurada de algo que Sun se sintió obligado a encontrar en un fin de semana durante una mala resaca.

Espero que esto sea útil para alguien (y ofensivo para alguien en Sun/Oracle = p).

0

He estado trabajando en una aplicación JavaFX desde hace varios meses. Personalmente, amo el lenguaje. Me parecieron haber tomado algunas decisiones muy inteligentes al elegir la sintaxis y los constructos del lenguaje (puedo aburrirte con una lista si lo deseas). He estado programando en él durante unos meses y parece un lenguaje muy eficiente e incluso divertido de programar.

Creo que su mejor uso ahora es para aplicaciones de escritorio y/o aplicaciones implementadas a través de webstart. En el escritorio, tiene un amplio conjunto de características y aún puede hacer uso de las otras funciones de Swing y el resto de Java. Por lo que he escuchado, los applets aún son lentos en algunos sistemas y, sin el soporte de Android, las capacidades móviles no son características. El soporte de applet/móvil/TV/web me parece más una ventaja para los desarrolladores de escritorio que las características clave que te permitirán utilizar la tecnología.

Por lo tanto, todo depende de lo que planee usar. Si está creando aplicaciones de escritorio que desea ejecutar en la máquina virtual de Java que pueden hacer uso de controles multimedia fáciles de usar y de interfaz de usuario rica, entonces creo que hay buenas razones para mirar el idioma. WebStart ha mejorado bastante y es una buena herramienta de implementación. Si está buscando construir aplicaciones web, entonces podría ser interesante, pero por ahora diría que HTML5/ajax son más relevantes (es posible que desee ver a ZK en este caso). Sin embargo, incluso con HTML5, ajax tiene sus limitaciones, y si te encuentras con ellas, entonces JavaFX puede ofrecerte opciones. Para las plataformas móviles, no será relevante hasta que haya compatibilidad estable con Android; en ese caso, solo me quedaré con la plataforma Android por ahora.

Cuestiones relacionadas