Hỏi về cách kết hợp nhiều ngôn ngữ trên 1 project

Mình muốn sử dụng nhiều ngôn ngữ để làm một project, ví như mình muốn dùng C# để tạo giao diện, một số xử lý lại dùng java, Python… thì lúc đó phải làm thế nào?

1 Like

Theo mình thấy hình như không có cái đó. Theo mình thấy C# hay Java Đều hỗ trợ đầy đủ thì việc gì phải kết hợp nhiều ngôn ngữ

à, các project dùng nhiều ngôn ngữ là vì cấu tạo = nhiều phần (microservice) , mỗi service có API để các service khác tương tác (một phần API có thể public như graph API của facebook)
mỗi ngôn ngữ đều có một (hoặc nhiều framework) support autogenerate API , một project sẽ dùng một spec chung về API (hoặc service này có adapter cho service kia …)
VD: daynhauhoc mã nguồn discourse có back-end Rails (Ruby) và front-end Ember (Node.js - javascript)
Rails quản lí database schema và generate một API Serialize (không biết nhớ đúng ko)
Ember có adapter cho Serialize
=> 2 service tương tác được với nhau

1 Like

Cái đó dùng IDE có hỗ trợ. Đề cử Visual Studio.
VS sẽ quản lý dự án theo Solution.
Trong mỗi Solution có thể add các project với những ngôn ngữ khác nhau.

Mình vẫn code xử lý ảnh bằng cách đó. C# làm giao diện đồ họa thì cực ngon nhưng xử lý thì hơi chậm. C++ thì xử lý nhanh nhưng giao diện thì nhọc chết mợ. Thế là 2 ngôn ngữ được kết hợp. Vừa có giao diện ngon và những thứ hay ho của C#, vừa có hiệu năng cao của C++.

3 Likes

trước mình cũng xử lý ảnh trên C++, và khi động tới giao diện thì ko biết cách kết hợp với C# nên đành mò học Qt, bạn có thể hướng dẫn cụ thể một chút ko?

Bạn tìm hiểu PInvoke trong C#.

Bạn sẽ code những thứ bạn muốn làm với C++ rồi xuất ra các dll. C# hay Java sẽ gọi các hàm trong dll này để gọi chương trình xử lý. Các chương trình sẽ chạy với hiệu năng của C++.

3 Likes

Việc gì phải dùng nhiều ngôn ngữ cho cực, java và c# mình thấy hai thằng đó hỗ trợ đầy đủ mà!

Không có ngôn ngữ nào hoàn hảo. Việc kết hợp các ngôn ngữ với nhau để kết hợp những ưu điểm và hạn chế những nhược điểm.

2 Likes

cái này thuộc về viết thư viện rồi hay áp dụng cho game, app thì ít hơn :smiley:

thế trên linux, thì sao bạn???

Trên Linux cũng tương tự.

Bản chất là các ngôn ngữ sẽ build thành những thứ có thể dùng chung được. Và một project với ngôn ngữ nào đó sẽ gom chúng lại với nhau.

2 Likes

Anh cho em xin các tài liệu hoặc từ khóa để em tìm hiểu với ạ!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?