2008-09-18 40 views

Trả lời

18

Hầu hết mọi người không mã GUI thực tế trong Erlang. Một cách tiếp cận phổ biến hơn là viết lớp GUI trong Java hoặc C# và sau đó nói chuyện với ứng dụng Erlang của bạn thông qua một ổ cắm hoặc đường ống.

Với ý nghĩ đó, bạn có thể muốn xem xét các thư viện khác nhau để thực hiện RPC giữa java hoặc các ứng dụng Net và Erlang:

http://weblogs.asp.net/nleghari/archive/2008/01/08/integrating-net-and-erlang-using-otp-net.aspx

http://www.theserverside.com/tt/articles/article.tss?l=IntegratingJavaandErlang

EDIT Nếu bạn thực sự đặt trên mã hóa một giao diện trong erlang, bạn có thể xem xét thực hiện GUI dựa trên web được phân phát qua Yaws, máy chủ web erlang: http://yaws.hyber.org/appmods.yaws

+0

Điều này nghe có vẻ như rất nhiều công việc. : -/ –

+0

Erlang không phải là loại ngôn ngữ tôi muốn giới thiệu cho một số thứ nhỏ.Nó thực sự bắt đầu tỏa sáng khi bạn cần nó để quy mô như điên, hoặc khi bạn cần một nền tảng mà không bao giờ đi xuống, ngay cả khi bạn nâng cấp mã. Đây là những dự án lớn. – bmdhacks

+0

Nó chỉ là điều đầu tiên để giới thiệu cho một thư viện GUI cho Erlang sẽ không bao giờ được liên kết với Java/C# cho tôi. :-) Đối với một dự án lớn mặc dù, đó là một lựa chọn hợp lệ. –

2

Tôi không chắc có bất kỳ ... nhưng tôi tìm thấy Erlbol trên web, và một X11 GUI mà âm thanh thú vị, và GTK2 (pdf link)

5

Đối với văn bản GUIs bản địa cho Erlang, wxErlang có vẻ là thư viện trưởng thành nhất hiện nay (cũng trên SourceForge).

5

Tôi thấy có một chút khó hiểu khi có ai đó muốn viết GUI cho một chương trình Erlang ở một thứ khác ngoài Erlang? Mô hình đồng thời của Erlang làm cho nó trở thành một ngôn ngữ tuyệt vời để viết GUI. Các phần tử UI và các sự kiện ánh xạ hoàn hảo vào các quá trình và thông điệp của Erlang.

+4

Nó không phải là erlang sẽ không phù hợp với một GUI, đó là bởi vì nó rất tốt ở các ứng dụng mạng và tin nhắn đi qua mà nó dẫn mọi người đi từ khó mã hóa giao diện người dùng trực tiếp vào hệ thống erlang. – bmdhacks

+1

Thay vào đó, mọi người thường viết các ứng dụng rất mỏng chỉ cần nhấn nút nhấn hoặc tương tác giao diện người dùng khác trở lại ứng dụng erlang. Bằng cách này, bạn không phải phụ thuộc vào người dùng thực sự có thời gian chạy erlang trên hệ thống của họ. – bmdhacks

+0

Một lần nữa, bởi vì erlang chủ yếu được sử dụng cho các ứng dụng phía máy chủ phân tán, không có nhiều sự quan tâm đến việc cho nó một GUI, ngay cả khi nó rất phù hợp với nhiệm vụ. – bmdhacks

16

Tôi sẽ vi phạm yêu cầu 'một tùy chọn cho mỗi bài đăng' - xin lỗi, nhưng công cụ nào để sử dụng thực sự tùy thuộc vào ưu tiên của bạn.

Một thư viện khá ổn định là gtkNode. Nó sử dụng một cách đơn giản nhưng mạnh mẽ để ánh xạ tất cả các tiện ích GTK đến Erlang và sẽ tiếp tục ổn định qua các bản phát hành. Nó cũng hoạt động tốt với trình xây dựng GUI Glade. Nó được duy trì tích cực bởi Erlang guru Mats Cronqvist, nhưng tất nhiên nó là nỗ lực tốt nhất.

WxWidgets rất hứa hẹn và hy vọng sẽ trở thành thư viện GUI chính cho Erlang, nhưng nó vẫn đang trong giai đoạn thử nghiệm và giao diện vẫn chưa ổn định và không có hứa hẹn tương thích ngược.

Vì vậy, nếu bạn muốn có một chút trên cạnh chảy máu, WxWidgets có thể là điều của bạn. Nếu không, gtkNode sẽ cung cấp cho bạn giao diện đẹp, dễ dàng và an toàn tương đối.

Thư viện GUI được hỗ trợ chính thức duy nhất cho Erlang là GS, một phần của bản phát hành OTP và được đảm bảo hoạt động với các bản phát hành sắp tới. Vì vậy, nếu điều này là quan trọng hơn so với cái nhìn bản địa và cảm nhận và một mặt tiền nhìn hiện đại, nó có thể là một lựa chọn.

25

Đối với ứng dụng GUI trong Erlang, bạn nên sử dụng wxErlang được bao gồm trong bản phát hành r13b. Bản beta đã có mặt trên nguồn trong một thời gian nhưng bây giờ, kể từ r13a, được đưa vào bản phát hành OTP chính.

5

tôi đã đăng một hướng dẫn wxErlang tại http://wxerlang.dougedmunds.com

+0

Hướng dẫn này yêu cầu một tài khoản. WAT. Ngoài ra, đoạn mã đầu tiên được tạo ra C++ không có bình luận về mã Erlang tương đương. WAT. Nếu tôi không quen thuộc với API C++ thì sao? Nếu tôi không quen thuộc với C++ thì sao? – allyourcode

+0

Không chắc chắn nơi bạn đang tìm kiếm. Không có C++ trong hướng dẫn, Chỉ cần Erlang sử dụng wxErlang. –

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