Tại sao các phần mềm lại có thể được viết bằng nhiều ngôn ngữ lập trình khác nhau vậy? Mình thấy các hệ điều hành như Windows, Android hau iOS được viết bằng các ngôn ngữ khác nhau. Mình nghĩ các phần mềm chỉ được viết bằng một ngôn ngữ duy nhất thôi chứ;
Tại sao nhiều phần mềm hay ứng dụng được viết bằng nhiều ngôn ngữ lập trình?
Mỗi ngôn ngữ lập trình có một thế mạnh riêng, module nào cần xử lý chuyên biệt thì dùng ngôn ngữ chuyên biệt đó. VD : App có nhiều tầng, khúc dưới giao tiếp với máy thì dùng ngôn ngữ bậc thấp như C, assembly, … khúc giữa cần đa luồng, call API, kết nối CSDL thì dùng java, C#, … khúc đầu có tương tác với user thì dùng ngôn ngữ chuyên xử lý giao diện. Mỗi module đều viết bằng một ngôn ngữ duy nhất VD : web service, micro service, IoT, … Giống như chiếc xe, nội thất thì làm bằng gỗ, ghế bọc da, gương bằng thủy tinh, gầm bằng thép, … đâu có chi tiết nào làm bằng chất liệu hỗn tạp đồng, thau sắt thép nhựa lẫn lộn đâu. Lập trình cũng vậy, đâu có file nào lẫn lộn 2, 3 ngôn ngữ đâu bạn
Bạn cứ demo được cái điều bạn đang nghĩ đi, rồi mọi người sẽ nghe theo bạn
But why do you think so? Tell me your opinion and prove it.
Cậu đã bao giờ chơi Lego chưa?
Các block lego, miễn là cùng giao diện kết nối giữa các khối, sẽ có thể được gắn với nhau, và tạo ra hình thù cậu muốn. Và các khối lego hiển nhiên đều độc lập, không phụ thuộc vào chất liệu, hình dáng, màu sắc của khối đó.
Phần mềm cũng vậy. Miễn là cậu đảm bảo được sự kết nối giữa các module, cậu hoàn toàn có thể viết ra phần mềm sử dụng các module được viết bằng các công nghệ, ngôn ngữ lập trình khác nhau.
Hi vọng phép so sánh trên giúp cậu hiểu.
Theo hiểu biết của mình thì có bao gồm 2 nguyên nhân sau(có nhiều hơn nhưng mik biết mỗi 2, hóng để biết thêm)
-
Vì như vậy tính ứng dụng của nó sẽ cao hơn, thường các phần mềm người ta sản xuất ra với mục đích để cho càng nhiều người sử dụng càng tốt nên người ta phải thiết kể để phần mềm có thể sử dụng được trên hầu hết những thiết bị công nghệ như máy tính để bàn, xách tay, smartphone, ipad,robot…v.v một cách tốt nhất mà những thiết bị này một ngôn ngữ lập trình không đáp ứng được hết – Như Java chạy tốt trên Android, không chạy tốt trên CPU, C hay C++ sẽ chạy trên CPU mượt hơn, Python chạy trên robot - nên họ dùng nhiều ngôn ngữ để nhiều thiết bị đọc/sử dụng được ứng dụng của mình.
-
Bởi vì mỗi ngôn ngữ lập trình sẽ chuyên về một mảng khác nhau mà một số phần mềm/ứng dụng thì nó lại bao gồm nhiều mảng - vd bạn muốn tạo web thì cần phải dùng HTML để thiết kế và sắp đặt nội dung, ảnh, và tất cả những yếu tố trên website, ngoài ra cần dùng CSS tạo cho website màu sắc/hiệu ứng đẹp hơn - nhưng máy chủ không đọc được những yêu cầu viết từ 2 phần mềm này, nếu chỉ có 2 cái này thông tin trên web chỉ là thông tin tĩnh và không có tương tác qua lại với người dùng, javascript/java hoặc python dùng để viết mã nguồn cho máy chủ để nhận những yêu cầu của người dùng, xử lý, truy xuất dữ liệu và trả về kết quả. (tạo phần động và kiểm soát dữ liệu). – Bởi vậy muốn tạo 1 web thì thường bạn cần biết ít nhất 3 thứ HTML, CSS và Javascript
Hết rùi ạ, hóng thêm :))