2010-06-18 33 views
10

Tôi đã biết nhiều ứng dụng tốt (bao gồm Trung tâm Team UG, IBM Lotus Expeditor, vv) được phát triển trên Eclipse (RCP Framework). Cuối cùng, tôi tìm thấy một số ứng dụng được phát triển trên Qt Creator khai thác kiến ​​trúc trình cắm thêm của nó (GCF, thiết kế VTK, v.v.).Eclipse/RCP (SWT) vs Qt Creator (Qt) như một khuôn khổ cho phát triển trình cắm thêm?

Tôi muốn biết những ưu và nhược điểm của Eclipse và Qt Creator làm khung cơ sở để phát triển các ứng dụng trên đó. Ngoài ra nếu ai đó có thể liệt kê các mô-đun hỗ trợ các ứng dụng trong mỗi khung này. Bạn khuyên bạn nên phát triển ứng dụng đa nền tảng nào?

cảm ơn rất nhiều.

Trả lời

3

Disclaimer: Tôi hack vào tác giả

tôi xem xét cả hai tác giả và Eclipse sẽ ổn định và khá đầy đủ tính năng IDE. Creator đang tập trung rất nhiều vào C++ và Quick (điều mới bling trong Qt land ;-) trong khi Eclipse hỗ trợ toàn bộ ngôn ngữ, với sự hỗ trợ Java thực sự tỏa sáng. Điều này tất nhiên cũng ảnh hưởng đến chức năng plugin của bạn có thể dễ dàng cung cấp.

Sự khác biệt có thể nhìn thấy đầu tiên đối với nhà phát triển plugin là ngôn ngữ lập trình: Eclipse được viết bằng Java trong khi người tạo được phát triển bằng C++ với Qt. Tùy thuộc vào nền tảng phát triển của bạn có thể khá quan trọng.

Cả hai đều cung cấp một hệ thống plugin phong phú với tất cả chức năng thị trưởng như xử lý sự phụ thuộc giữa các plugin, phiên bản, v.v. Tôi đoán hệ thống plugin của Eclipse hơi "cứng rắn" hơn một chút thêm các plugin của bên thứ 3 liên tục "thử nghiệm" nó. Cả hai dự án đều có một số API vẫn đang phát triển (ấn tượng của tôi là vấn đề này ít hơn với nhật thực tại thời điểm này), do đó, nó đáng để kiểm tra lộ trình.

Eclipse có xu hướng có nhiều plugin hơn và đây có thể là một lợi thế nếu plugin của bạn có thể hưởng lợi từ chức năng đã được triển khai trong các plugin khác. Lập mô hình đồ họa, v.v. Người sáng tạo chưa có nhiều plugin, nhưng có rất nhiều mã nguồn mở dựa trên Qt có sẵn nên được chuyển tiếp thẳng vào cổng bổ sung (nếu giấy phép cấp phép này!).

Cả hai dự án đều là nguồn mở, vì vậy bạn có thể xem mã. Giấy phép là khác nhau mặc dù Qt Creator và Eclipse. Tốt hơn nên có một luật sư để đọc qua chúng nếu bạn xem xét làm một plugin độc quyền cho một trong hai ... nhưng đó chỉ là lời khuyên chuẩn :-)

Cả hai dự án đều có cộng đồng người dùng thân thiện sẵn sàng giúp đỡ khi gặp khó khăn và cả hai dự án chấp nhận đóng góp mã (trong trường hợp bạn không muốn tiếp tục cập nhật mã của bạn cho mình mọi lúc ;-).

Đó là những gì tôi có thể nghĩ về ở phía trên đầu của tôi ...

1

Ban đầu, tôi là một fan hâm mộ lớn của QtCreator. Sau đó, tôi phát hiện ra rằng nó đã cho phép tôi lấy đi nhiều thứ có lập trình mà tôi không nên có. Tôi không thể nhớ bất cứ điều gì trên đỉnh đầu của tôi, nhưng khi tôi chuyển sang Mac OSX, tôi quyết định xây dựng nó trong XCode thay vì QtCreator. Khi xây dựng của tôi, tôi phát hiện ra một tải lỗi mà tôi chưa từng thấy.

... Và tôi đã biết mã như thường hoạt động này ...

Anyways, tôi vẫn làm việc trong Qt rất nhiều và triệt để tận hưởng nó, nhưng tôi phát triển trong Visual Studio, XCode, và GCC trên của họ nền tảng tương ứng. Xin lỗi vì tôi không thể nhớ bất kỳ ví dụ nào, tôi đã gặp sự cố này cách đây 6 tháng.

+0

Điều này có a) không liên quan gì đến Qt (Người tạo) và b) không có sự liên quan nào (Qt so với Eclipse). Vấn đề của bạn có lẽ là MSVC vs gcc tạo ra các lỗi khác nhau trên mã không chuẩn mà bạn đã viết. Các trình biên dịch khác nhau tạo ra các lỗi khác nhau. IDE hoặc framework có ít hoặc không có gì để làm với điều đó. – rubenvb

+0

Tôi đoán sau đó tôi đã chỉ khá không hài lòng với trình biên dịch mà QtCreator đã cho tôi sử dụng. Trước đây tôi đã từng phát triển trong MSVC và GCC, vì vậy tôi nghĩ rằng tôi đã viết mã tiêu chuẩn. Nó chỉ là hơi bực bội mà trình biên dịch cho phép điều đó xảy ra, nơi mà tôi đã không chạy vào những rắc rối như rằng đi giữa MSVC và GCC. – Brett

+0

@Brett: nó có thể đã là 3.4.5 MinGW cổ đại GCC tất nhiên (cũng có thể giải thích việc chuyển đổi trong các lỗi), sau đó tôi rút lại (một số) nhận xét của tôi :). Bạn có thể sử dụng bất kỳ trình biên dịch/toolchain bạn muốn với Qt, nó chỉ cần một thiết lập nhỏ, đó là tất cả. – rubenvb

0

Eclipse dựa trên Java, Qt là C++ và một số bổ sung hữu ích (tín hiệu + vị trí trong số những người khác). Tôi chưa bao giờ nghe nói về Eclipse như một khuôn khổ, nhưng điều đó tất nhiên không nói lên hoặc chống lại nó. Tôi sẽ suy nghĩ về Qt tại đây:

Tôi tin tưởng mạnh mẽ vào Qt làm cơ sở, vì nó (nhà phát triển của nó) đã có nhiều năm kinh nghiệm cung cấp một nền tảng đa nền tảng tốt với mọi thứ bạn cần . Nó có mạng, hệ thống tệp, gui, thuật toán, vùng chứa, công cụ dịch thuật, thiết kế giao diện người dùng, tài liệu RẤT tốt và cộng đồng vững chắc. Nó dựa trên C++, làm cho sự tương tác với bất kỳ thư viện C hoặc C++ nào "dễ dàng". Qt là người chơi trưởng thành hơn ở đây.

+1

Tôi không bao giờ sử dụng Qt, nhưng tôi nghĩ rằng nó trưởng thành hơn sau đó nhật thực mà không biết những gì nhật thực là về là vô trách nhiệm. Về cơ bản, nhật thực có mọi thứ bạn đề cập, trừ một nhà thiết kế giao diện người dùng miễn phí (có các phiên bản thương mại). Tôi đã làm việc với nhật thực trong 3 năm nay và không có khiếu nại lớn. – drstupid

+0

Tôi sẽ cố gắng làm rõ: Tôi đang nói về sự trưởng thành theo nghĩa "năm kinh nghiệm và tồn tại". Eclipse đã có từ năm 2005 (bản phát hành đầu tiên: tháng 12 năm 2005, tôi thậm chí không chắc chắn về RCP). Qt đã được khoảng từ năm 1991. Tôi chắc chắn Eclipse là tốt như nhau, nhưng như bạn nói, tôi không thể biết điều đó. Tôi cũng không nói về Eclipse IDE vs QtCreator, Eclipse có nhiều kinh nghiệm hơn, QtCreator 1.0.0 đã được phát hành cách đây một năm. – rubenvb

+1

http://www.ibm.com/developerworks/rational/library/nov05/cernosek/index.html – drstupid

0

Lưu ý: Tôi phát triển trên cả hai, tôi chia sẻ kinh nghiệm của tôi trên một Java blog, Qt blog, và Forum Nokia blog. Tôi cũng là a Forum Nokia Champion.

Câu trả lời đơn giản là Eclipse RCP.

I blogged about cross-platform desktop frameworks sometime ago here, bao gồm RCP Eclipse vs Qt Creator và các khung công tác khác.

Eclipse RCP không chỉ dành cho các ứng dụng phức tạp. Việc phát triển với RCP Eclipse rất dễ dàng để bắt đầu. Nhận một số good book for Eclipse RCP, I recommend this one. Và bạn thực tế không có rào cản nền tảng. Nó tốt cho phát triển lâu dài. Theo kinh nghiệm cá nhân của tôi, khả năng bảo trì cho các ứng dụng RCP Eclipse (và các ứng dụng Java được thiết kế tốt cho vấn đề đó) tốt hơn nhiều so với một ứng dụng Qt.

Một "phần mở rộng" cho RCP Eclipse mà tôi đề xuất là EMF. Mặc dù EMF rất phức tạp, nhưng đường dẫn đơn giản nhất là sử dụng nó để thiết kế các metamodels và tạo ra các lớp Java từ nó. Bạn cũng sẽ có thể dễ dàng chỉnh sửa đối tượng của mình trong giao diện người dùng RCP (trong thế giới ứng dụng web, phần "CRUD"). Đây là một số good practical book on EMF.

Hệ sinh thái Eclipse rất rộng và ban đầu có thể khó hiểu, nhưng mẹo là tập trung vào nhiệm vụ trong tầm tay. Sau khi bạn tự tin với những thứ cơ bản (tương đối dễ dàng, bạn có thể chạy plugin/ứng dụng RCP hello world đầu tiên của mình chỉ bằng cách khởi động một trình hướng dẫn hoặc theo hướng dẫn được cung cấp), rất nhiều công cụ và tùy chọn trong cộng đồng Eclipse tuyệt vời. (hầu hết các dự án Eclipse đều trưởng thành/ổn định, một số dự án đòi hỏi sự kiên nhẫn hoặc thậm chí là đóng góp, nhưng đó là vẻ đẹp của cộng đồng nguồn mở)

Lưu ý rằng tôi có không có gì đáng nói về Qt. Qt là một khung công tác tuyệt vời, với Qt Quick và QML và hỗ trợ di động. Và nó được sử dụng tốt nhất nếu bạn đang trên các mục đích đó. Trừ khi bạn thực sự yêu cầu Qt, RCP Eclipse nên làm cho cuộc sống của bạn dễ dàng hơn.

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