2009-02-10 28 views
9

Tôi hiện đang làm rất nhiều công việc trong ActionScript 3.0, tôi cũng thích lập trình bằng Java. JavaFX có hoàn hảo cho tôi không? Cảm giác chung trên JavaFX là gì, nó sẽ trở thành một ngôi nhà quyền lực hay đi xuống cùng một đường dẫn như Java Applet? Các nhà thiết kế mà tôi làm việc có trở nên thoải mái với JavaFX ở mức độ nào mà họ cảm thấy thoải mái với ActionScript và JavaScript không?Cảm xúc của bạn trên JavaFX là gì?

Trả lời

2

Mặc dù nó xuất hiện khá mạnh về mặt khả năng, nhưng tôi không biết gì về JavaFX vì cấu trúc và triển khai của nó. Nó có vẻ giống như một nỗ lực thực sự nửa vời khi vào thị trường Flash/Silverlight. Quá scripty.

Tôi sẽ tranh luận về việc đi tuyến Silverlight 2, nhưng tôi chủ yếu là nhà phát triển C# nên tôi hơi thiên vị ở đó. Nếu bạn không thích tuyến đường đó vì bất kỳ lý do nào nhưng vẫn muốn có UX phong phú hơn cho người dùng của mình, tôi khuyên bạn nên sử dụng Flex; nó có vẻ được tổ chức tốt hơn nhiều so với JavaFX với tôi.

Chỉ hai xu của tôi về chủ đề.

2

Nếu bạn biết Java nhưng muốn làm những thứ bạn nghĩ chỉ khả thi trong Flash - thì có JavaFX sẽ tốt cho bạn.

Không nghi ngờ gì, việc kết hợp kiến ​​thức Java của bạn với công cụ thiết kế sẽ dễ dàng hơn nhiều.

Và tôi tin rằng công cụ sẽ chỉ trở nên tốt hơn mà sẽ làm cho nó đơn giản hơn để sử dụng.

2

Một "meh" vang dội.

Khi tôi xem xét nó một năm trước, họ đã có công cụ chuyển đổi SVG sang JavaFx một chiều. Tuyệt vời, vì vậy bạn có thể tác giả nội dung hình ảnh của bạn một lần, đánh dấu nó lên với rất nhiều hành vi, và sau đó lần sau bạn muốn làm cho nó trông tốt, sau đó những gì?

Nếu bạn xem this tutorial bạn có thể thấy ý tôi. Chúng tôi đang vẽ các công cụ bằng cách kéo hình dạng từ bảng màu vào mã nguồn. OMGWTF. Tôi không thể hiện điều đó với bộ phận đồ họa của mình.

Tôi hy vọng tôi sai về JavaFx, nhưng tôi không nghĩ rằng họ nhận được nó. Xin vui lòng, sẽ không ai đó tại Sun cho chúng ta một lớp trình bày mà không có xúc tu của nó gắn bó chặt chẽ với mã?

+1

Tôi phải đồng ý với dòng cuối cùng của bạn. Mặc dù, thẳng thắn, gần đây, tôi nghĩ đó là trường hợp của Java nói chung. – Randolpho

+1

Bạn nên xem Bộ sản xuất. Nó có các công cụ tuyệt vời cho Photoshop và Ilustrator và API FXD Loader cho phép bạn bỏ cặp giao diện người dùng khỏi logic khá độc đáo. – Honza

+0

Bộ sản xuất JavaFx có vẻ thú vị. Tôi có thể làm tương tự khi sử dụng các thành phần Swing trong JavaFx không? – joeforker

1

Trừ khi bạn đang làm việc trên một ứng dụng nội bộ, tôi sẽ tránh xa nó. Nói chung, người dùng không muốn phải đối phó với một chương trình khác hoàn thành điều tương tự như Flash. Tôi không nghĩ rằng cơ sở cài đặt của nó đủ lớn để tiện cho người dùng cuối.

+0

Có lẽ họ nên tìm ra cách biên dịch nó sang mã byte bytecode. – joeforker

+1

Giống như www.haxe.org. – Luke

3

Tôi rời công việc cuối cùng của mình để di chuyển từ Java sang .NET.

Có một số lý do khiến việc di chuyển, nhưng lý do lớn nhất là tôi bị bệnh và mệt mỏi vì cố gắng xây dựng phần mềm giao diện người dùng lớp 1 với Java & Swing. Đã sáu năm rồi và tôi rất vui vì tôi đã tiếp tục. Tôi không thấy lý do gì để tin rằng Sun cuối cùng cũng hiểu được sự phát triển UI với JavaFX.

Tôi tin rằng Microsoft cuối cùng cũng đang trong quá trình tạo nền tảng cho chúng tôi để xây dựng các ứng dụng tương tác phong phú trong trình duyệt. Tôi nói rằng sau khi đã xây dựng phần mềm thương mại được cung cấp dưới dạng Plugin Netscape cách đây 13 năm, tiếp theo là các điều khiển ActiveX và Java Applet, và thấy tất cả các nền tảng này không trở nên phổ biến trong doanh nghiệp vì một lý do nào đó.

Tôi nhận ra rằng Silverlight 2 vẫn còn thiếu chiều sâu và trưởng thành, nhưng Microsoft đã cho tôi thấy cam kết đủ tại thời điểm này rằng tôi tin rằng nó sẽ là nền tảng RIA chiếm ưu thế trong một vài năm ngắn ngủi - ít nhất là cho các dự án yêu cầu ngôn ngữ lập trình "thực". Tôi chắc chắn Flash và cộng sự. không sớm biến mất, nhưng Flash không phù hợp với các loại phần mềm mà công ty của tôi xây dựng.

Đóng băng trên bánh cho tôi là tôi vẫn có thể sử dụng Visual Studio, C# và phần lớn mã cơ sở hiện tại của tôi (công cụ lõi hoàn toàn tách biệt với giao diện người dùng). Tất nhiên, nếu bạn đến từ ActionScript, điều này sẽ không giúp bạn.

Một điểm quan trọng nữa là việc Silverlight và WPF chia sẻ rất nhiều điểm chung. Kế hoạch của chúng tôi là chia sẻ một lượng lớn việc triển khai giữa các phiên bản Silverlight và WPF của phần mềm của chúng tôi. Nó chỉ là vấn đề thời gian trước khi WPF là tiêu chuẩn cho các ứng dụng Windows - Tôi không biết đó là một vài năm hay mười năm, nhưng nó sẽ rõ ràng xảy ra theo thời gian. Việc có thể nhắm mục tiêu các trình duyệt/HĐH phổ biến nhất với Silverlight và Windows từ cùng một cơ sở mã là một IMO có lợi thế to lớn.

Nếu bạn biết Java thì chuyển sang C# là một miếng bánh. Và trừ khi bạn đang sử dụng một trong những IDE Java (không miễn phí) tốt, thì ngay cả các phiên bản miễn phí của Visual Studio sẽ là một cải tiến so với những gì bạn đang sử dụng. Rào cản này sẽ học cách làm việc mới với XAML - nhưng đó là một số thứ khá thú vị nên bạn có thể thực sự thích nó.

0

Tôi đã dành cả ngày cuối tuần để chơi với nó. Tôi thấy không có gì hữu ích trong nó. Đó là một sự lặp lại của swing/awt. Tôi đoán nó sẽ được tốt đẹp cho các thiết bị di động nhưng ngoài ra nó không có gì hữu ích.

Lý tưởng nhất là tôi muốn sử dụng đèn flash nhưng thấy rất khó để tích hợp với phần phụ trợ của bất kỳ loại nào.

+1

Nó không chỉ dành cho lập trình GUI, đó là một ngôn ngữ lập trình/kịch bản hoàn chỉnh. Tôi nghĩ rằng nó áp dụng nhiều điều xấu xí trong Swing (mã trình soạn thảo nghe hành động, ví dụ) rất độc đáo. – helpermethod

8

Chỉ muốn thêm $ 0,02 ... Tôi đã làm việc trong JavaFX trong 4 ngày qua trên dự án nhỏ đầu tiên của tôi bằng cách sử dụng nó. Như một số nền tảng, tôi đã được lập trình chuyên nghiệp trong khoảng 9 năm, bắt đầu với C, và đã làm Java và C# /. NET trong 6 năm qua.

IMO, JavaFX theo cách của nó sẽ khiến bạn bực mình hơn. Dưới đây là một số kìm kẹp:

  1. Cú pháp này chỉ là kỳ quặc. Nó có thể dễ dàng giống Java hơn, kể từ Java FX của nó. Nhưng cú pháp không phải là một quá trình chuyển đổi dễ dàng từ Java.

  2. Thứ tự các mục trong tệp .fx thực sự quan trọng, có nghĩa là bạn gặp lỗi tham chiếu vòng tròn ngu ngốc và "oh bạn không thể sử dụng biến này vì nó chưa được khởi tạo" trình biên dịch nên xử lý dễ dàng, nhưng không.

  3. Những điều ngẫu nhiên không hoạt động. Các hành động/sự kiện trên các điều khiển Swing không phải lúc nào cũng hoạt động, ví dụ như onKeyPressed/release của SwingSliderBar dường như không được gọi.

  4. Xử lý lỗi chỉ là xấu. Nếu một ngoại lệ xảy ra mà không được xử lý, không có cách nào thực sự để nói khác với giao diện điều khiển Java, và các yếu tố giao diện người dùng bắt đầu phản ứng hài hước. Ví dụ, tạo một hộp SwingText và liên kết giá trị của nó với một biến. Bây giờ cố gắng chỉnh sửa giá trị trong hộp văn bản sẽ ném một ngoại lệ vì bạn không thể chỉnh sửa biến bị ràng buộc. Tuy nhiên trong giao diện người dùng, hộp văn bản chỉ bắt đầu có những điều buồn cười xảy ra.một số ký tự chỉ 1/2 sơn, đôi khi backspace không có gì, đôi khi nó xóa một ký tự, đôi khi bạn có thể nhấn 2 phím ont eh bàn phím như "1" và "2" và hộp văn bản sẽ kết thúc có "21" nhập vào nó thay vì "12", vv ...

Mặc dù tuyệt đối # 1 vấn đề của tôi với sự phát triển JavaFX ngay bây giờ là Netbeans. Nó là xấu về mặt đường dẫn ở JFX. Không thể gỡ lỗi, lỗi hiển thị sai trong IDE (tôi đã có nó đánh dấu bình luận là lỗi!), Intellisence chỉ hoạt động như 40% thời gian, sự kiện ông mã mẫu preprogrammed trong IDE cho kéo & thả điều khiển aren ' t đúng. Tôi quên cái nào, nhưng một trong số chúng rơi "&" ở cuối mã được chèn không bao giờ hợp lệ và luôn phải được xóa thủ công ... chỉ đơn giản là khủng khiếp và không được chấp nhận đối với một công ty như Mặt trời .

Kẹp khác là tài liệu chung. Nó chỉ thiếu. Bằng cách nào đó, API JavaFX thậm chí không xuất hiện như kết quả tìm kiếm số 1 trên google khi tìm kiếm các phương thức/lớp. Tấn "ví dụ" trên web không hoạt động được nữa vì mọi phiên bản đều có thay đổi cấu trúc lại chính và các lớp bị xóa hoặc đổi tên.

Nói chung, tôi cung cấp cho JFX một 4 trong số 10. Tôi muốn thích nó, nhưng JFX 1.1 không cắt nó ... chắc chắn không phải những gì tôi sẽ xem xét "sản xuất đã sẵn sàng".

+0

+1 Cú pháp thực sự kỳ lạ. Trong khi ở cái nhìn đầu tiên có vẻ như có rất nhiều điểm tương đồng giữa Java và JavaFX, có rất nhiều sự khác biệt tinh tế. – helpermethod

+0

Trong khi cú pháp giữa Java và JavaFX khác nhau ... khả năng tương tác thực sự tốt. Việc gọi Java từ JavaFX là tuyệt vời ... và vì JavaFX là một công nghệ phía khách hàng phong phú ... không thực sự cần Java để gọi JavaFX. Và theo quan điểm khiêm tốn của tôi ... JavaFX vượt trội so với Java SWING kế thừa để phát triển GUI phía máy khách. –

0

Vâng, cú pháp của cả ActionScript và JavaFX dường như có nhiều điểm giống nhau, vì vậy có thể "Có".

Tôi đang học kịch bản JavaFX vào lúc này và tôi thực sự thích nó. Nhưng những gì tôi không thích, và có lẽ đó là nhược điểm lớn nhất, đó là tài liệu khủng khiếp, thường không được cập nhật hoặc không đầy đủ.

1

Tôi đã phát triển ứng dụng Flash với Flex trong khoảng 2 năm và tôi quyết định thử JavaFX vì chúng tôi liên tục nhận được khiếu nại của người dùng rằng họ không thể sử dụng ứng dụng từ iPhone của họ (và tôi yêu Java).

Đó là một cảnh cáo đối với Flash (không hỗ trợ di động rộng).

Thành thật mà nói, tôi khá ấn tượng với JavaFX (theo cách rất xấu).

  • Tài liệu chưa hoàn chỉnh.
  • Kịch bản chỉ đơn giản là khủng khiếp; cái lai kỳ lạ của nó giữa JSON và R với cảm giác của một Java-deja-vu.
  • Tôi đã sử dụng các đa giác vẽ 3 ngày đầu tiên và tạo gradient với CODE ... WTF !!
  • Tôi đã cố gắng thuyết phục bộ phận đồ họa của mình thử nó và họ chỉ đơn giản là không hiểu cách bộ sản xuất được cho là hoạt động, họ tiếp tục phàn nàn rằng làn da Flex là dễ dàng và trông đẹp hơn. thật).
  • "Hỗ trợ CSS" chỉ đơn giản là trò đùa xấu.
  • Thông thường, cảm thấy giống như một nỗ lực tầm thường để cung cấp tùy chọn cho lối vào RIA.

tôi chỉ có thể nghĩ đến một vài điều tốt đẹp về nó:

  • Nó có thể chạy từ một IPhone/IPad và gần như tất cả các thiết bị di động.
  • Bạn có quyền truy cập vào tất cả mã Java bạn muốn, điều này thật tuyệt vời khi xem xét các giới hạn mà ActionScript có (không quá tải, không có nhà xây dựng riêng tư, v.v.). Đây là một điều tuyệt vời đối với các lập trình viên, nhưng hãy nhớ một giây rằng đây là một công nghệ trình bày/frontend ... điều đó có nghĩa là người dùng sẽ phải thực sự nhìn thấy điều đó, vì vậy nếu nó không đẹp và mát mẻ hình ảnh động/hiệu ứng mà họ sẽ không đào nó.
  • Tập lệnh ít rõ ràng hơn rằng các tệp MXML (với chi phí không thể hiểu được). Flash Player là màu xanh lá cây khổng lồ này không ngừng phát triển và phát triển cho đến khi không có RAM là trái so với cách JavaFX chạy (JVM đá! Tiếc là điều này không có gì để làm với JavaFX API thực tế của nó chỉ là JVM ... nó cũng đá!).
  • Tính năng thú vị này là nơi bạn có thể kéo applet bên ngoài Trình duyệt web.

Cuối cùng, tôi thấy hạnh phúc khi có điện thoại di động nhưng đây là cách thức sáng suốt mà Flex/Flash đã đạt được về các ứng dụng RIA. Tương lai của Flex/Flash là một công nghệ web phân tán rộng không rõ ràng (nó có thể sẽ chỉ được sử dụng cho các biểu ngữ gây phiền nhiễu và các trò chơi trực tuyến), không ai muốn phụ thuộc vào một công nghệ gần như Flash Player, đó là lý do tại sao toàn bộ Cộng đồng web đang cố gắng để có được Flash ra khỏi hình ảnh (hỗ trợ video HTML5, Không có Flash Player cho các thiết bị của Apple, vv). Vì vậy, một nỗ lực để có một mở luôn luôn được hoan nghênh, nó chỉ là JavaFX cảm thấy như phiên bản beta vội vã không đầy đủ của một cái gì đó mà Sun cảm thấy bắt buộc phải đến với một ngày cuối tuần trong một nôn nao xấu.

Tôi hy vọng điều này hữu ích đối với một người nào đó (và xúc phạm cho ai đó tại Sun/Oracle = p).

0

Tôi đã làm việc trên một ứng dụng JavaFX trong vài tháng nay. Cá nhân tôi yêu ngôn ngữ. Họ dường như với tôi đã đưa ra một số quyết định rất thông minh trong việc lựa chọn cú pháp và cấu trúc ngôn ngữ (tôi có thể mang bạn với một danh sách nếu bạn muốn). Tôi đã lập trình trong vài tháng nay và có vẻ như một ngôn ngữ rất hiệu quả và thú vị để lập trình.

Tôi nghĩ rằng việc sử dụng tốt nhất hiện nay là dành cho các ứng dụng và/hoặc ứng dụng dành cho máy tính để bàn được triển khai thông qua webstart. Trên máy tính để bàn nó có một bộ tính năng phong phú và vẫn có thể tận dụng các tính năng khác của Swing và phần còn lại của Java. Từ những gì tôi nghe thấy applet vẫn còn chậm trên một số hệ thống, và không có hỗ trợ Android thì khả năng di động là không có tính năng. Hỗ trợ applet/mobile/TV/web dường như giống như một phần thưởng cho các nhà phát triển máy tính để bàn khi đó là các tính năng chính giúp bạn sử dụng công nghệ này.

Vì vậy, tất cả phụ thuộc vào những gì bạn dự định sử dụng. Nếu bạn đang xây dựng các ứng dụng máy tính để bàn mà bạn muốn chạy trên máy ảo Java có thể sử dụng đa phương tiện dễ dàng và các điều khiển ui phong phú, thì tôi nghĩ có những lý do tốt để xem ngôn ngữ. WebStart đã cải thiện khá nhiều và làm cho một công cụ triển khai tốt đẹp. Nếu bạn đang tìm cách xây dựng các ứng dụng web, thì nó có thể là thú vị, nhưng bây giờ tôi muốn nói HTML5/ajax có liên quan hơn (bạn có thể muốn xem xét ZK trong trường hợp này). Tuy nhiên ngay cả với HTML5 ajax có những hạn chế của nó, và nếu bạn thấy mình chạy vào chúng thì JavaFX có thể cung cấp cho bạn các tùy chọn. Đối với các nền tảng di động, nó sẽ không có liên quan cho đến khi có hỗ trợ Android ổn định - trong trường hợp đó, tôi sẽ chỉ gắn bó với nền tảng Android ngay bây giờ.

Các vấn đề liên quan