Hỏi về cách để 2 ngôn ngữ lập trình có thể gọi tới nhau

Chào mọi người, em thấy thư viện sau có thể giúp Dart có thể gọi hàm viết từ Rust, và ngược lại. Thông qua phương pháp generator code:

Em tự hỏi điều đó là nhờ DartRust có mối lương duyên đặc biệt nào đó hay là thực sự có những cách tổng quát nào đó giúp 2 ngôn ngữ lập trình bất kỳ có thể tương tác với nhau ?

Ngoài cách thức dễ hình dung là thông qua các giao thức truyền tin: http, gRPC, …
thì em chưa hiểu được các nguyên lý đằng sau các cơ chế như JNI, MethodChannel, Dart FFI, … hay như thư viện flutter_rust_bridge kể trên. Dường như chúng đều tuân theo việc truy cập cùng bộ nhớ, chuyển đổi kiểu dữ liệu cho phù hợp với công nghệ của mình, dùng 1 cái gì đó (em chưa rõ, có lẽ là api hệ thống) để công nghệ này có thể tìm tên hàm từ công nghệ kia và gọi nó.

Rất mong được các bác giải đáp, cho gợi ý, từ khóa và bỏ qua việc mô tả chưa rõ ràng do thiếu nhận thức về các khái niệm kỹ thuật kể trên.

Em cảm ơn ạ !

Gần như chi tiết kỹ thuật cho từng project sẽ đều được liệt kê ở trang chủ của project đó. Với vấn đề của bạn, cách thức hoạt động được mô tả tương đối đầy đủ ở https://cjycode.com/flutter_rust_bridge/guides/contributing/overview#code-generator-overview

Và dĩ nhiên, cách này chỉ là 1 trong nhiều cách khác nhau để gọi… Các cơ chế như JNI , MethodChannel , Dart FFI , … đều sẽ có cách làm khác nhau chứ không có một mẫu chung nào cả nên không thể gộp chung vào được

2 Likes

Ủa ủa, nhảy vô học lập trình ngôn ngữ bậc cao mà không có học bài nào liên quan đến kiến trúc máy tính và ngôn ngữ cấp thấp, hệ điều hành hay sao mà hỏi kỳ lạ vậy nhỉ?

Có lẽ nào ngày nay học sinh có thể làm toán mà không biết các phép cộng, trừ, nhân, chia, bảng cửu chương, hằng đẳng thức và các tiên đề, định lý,… mà họ chỉ bấm máy tính công thức và điền đáp án hay sao? Phải nói là Gen Y như minh chịu thua, không hiểu được Gen Z, Gen Alpha luôn.

1 Like

Dạ cá nhân em có học nhưng chưa đáng kể ạ.
Câu trả lời rõ ràng hơn về những khái niệm này của bác sẽ là động lực to lớn để em dở lại những trang sách phủ bụi bám của mình để hiểu hơn về vấn đề mà em băn khoăn

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