Tại sao các ngôn ngữ lập trình không làm cú pháp giống nhau?

Em mới học lập trình ạ. Nếu như có ai hỏi “tạo sao trên thế giới không sử dụng và phát triển chỉ một ngôn ngữ lập trình?” Thì câu trả lời là:

  • Mỗi ngôn ngữ có một chức năng, đặc điểm riêng.
  • Ai cũng muốn tạo ra ngôn ngữ mới tốt hơn, kế thừa cái cũ nhưng kết quả là không thể loại bỏ ngôn ngữ cũ mà bây giờ chúng ta có thêm một ngữ mới nữa!

Vậy tại sao các ngôn ngữ đó không dùng chung một cú pháp để lập trình viên dễ học ngôn ngữ mới:
Ví dụ như C# khai báo hằng thì dùng keyword const, keyword này được nhiều ngôn ngữ sử dụng để ám chỉ hằng, nhưng java lại dùng final cũng để thông báo cho compiler đó là hằng.

Đa số các ngôn ngữ đều chỉ định datatype trước tên biến. VD : bool something = true; nhưng typescript là var something:boolean = true; vì Typescript là bản nâng cấp của JavaScript muốn code rõ nghĩa hơn, chặt chẽ và dễ code hơn, vậy tại sao Microsoft không thiết kế cú pháp giống như các ngôn ngữ phổ biến trước đó VD như C# cũng của Microsoft.

Không biết cú pháp có liên quan gì đến API của hệ thống hay bị phụ thuộc vào nguyên lý gì không ạ?

bạn cần xem lại kiến thức này

còn về tại sao các ngôn ngữ không dùng cú pháp giống nhau,
chẳng có lý do gì để phải giống nhau cả, vì ngôn ngữ ra đời với mỗi lý do khác nhau, hướng đến những mục tiêu khác nhau, và người thiết kế cũng là khác nhau

không ai quy định vẽ tranh chân dung là phải như thế này, như thế nọ, kết quả là không có cái nào giống cái nào, nên chẳng có lý do gì để bắt ngôn ngữ này phải giống ngôn ngữ kia cả

thay vì đoán mò thì bạn nên học vững kiến thức cơ bản, học nguyên lý ngôn ngữ lập trình, học về quá trình tạo ra một ngôn ngữ lập trình để khỏi phải đoán mò

11 Likes

Nhiều ngôn ngữ viết theo kiểu này mà. Scala chẳng hạn.

1 Like

Haha, vậy tại sao thế giới không sử dụng chung một ngôn ngữ ta. Học chi lắm ngôn ngữ chỉ để mục đích giao tiếp và ghi chép :slight_smile:

2 Likes

khoan bàn tới NNLT, tại sao con người ko xài chung 1 ngôn ngữ :triumph: :triumph: :triumph:

3 Likes

Tất cả nnlt mà có cú pháp giống nhau thì tạo nnlt khác để làm gì. Nên nhớ nnlt là cú pháp dành cho người đọc chứ không phải cho máy tính đọc, do đó nhiều khái niệm trong nnlt không hề tồn tại trong ngôn ngữ máy

4 Likes

Em tưởng phần chính của ngôn ngữ lập trình là phần engine, compiler, quản lý thread, các tool auto liên quan bên dưới ngôn ngữ đó khi tương tác phần cứng máy, xử lý networking, công nghệ lõi bên trong, v/v…đây mới là điểm khác biệt gây nổi bật hoặc gây tranh cãi, còn cú pháp chỉ là phần phụ ạ :thinking:

Khi bạn là một người dùng ngôn ngữ thì bạn sẽ thấy vậy, còn nếu bạn là một người tạo ra ngôn ngữ, bạn sẽ làm một ngôn ngữ cho một như cầu mới và đó là tác phẩm của bạn, phục vụ nhu cầu của bạn thì bạn chả có lý do gì để làm tương tự như người khác.

Thực tế cái phần phụ đấy nó lại chiếm phần lớn lí do để 1 ngôn ngữ mới ra đời

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