1
Tại sao lại có nhiều ngôn ngữ khác nhau? Sao không đồng bộ lại làm 1?
1
letrungngoc10 đã đăng:

Tại sao con người lại có nhiều ngôn ngữ khác nhau??

Về mặt ý tưởng thì mỗi ngôn ngữ được tạo ra để tối ưu cho 1 mục đích cụ thể, tương tự như tại sao bạn không thể đồng bộ các loại xe thành một vậy, ví dụ xe tải cần động cơ mạnh độ bền cao nhưng chạy chậm trong khi xe khách cần động cơ êm ái và đạt tốc độ nhanh bởi vì xe tải không sinh ra với mục đích chở khách mà xe khách lại không sinh ra với mục đích chính là chở vật liệu.

Cộng đồng 17.04.2020
thêm bình luận...
0
susukem20 đã đăng:

General Purpose Programming Languages là cụm từ bạn thường thấy khi bạn mới bắt đầu tìm hiểu về một ngôn ngữ nào đó ví dụ như Python, C/C++, Java, C#, Ruby, Golang ..v.v. Tức là bạn có thể sử dụng ngôn ngữ đó cho hầu hết mọi bài toán bạn muốn giải quyết, từ phát triển ứng dụng web, pc hoặc trên smartphone, cloud, ..v.v.

Nhưng chúng luôn có những thế mạnh và điểm yếu riêng ví dụ:

  • C/C++là ngôn ngữ bậc thấp chỉ trên hợp ngữ một xíu, chính về thế mà điểm mạnh của nó là tốc độ thực thi trong khi điểm yếu của nó khó viết, lập trình viên phải quan tâm đến những thứ như tự quản lý cấp phát bộ nhớ.

  • Python/Ruby là ngôn ngữ bậc cao, điểm mạnh của chúng là cú pháp linh hoạt, cho phép bạn xử lý bài toán chỉ trong vài dòng code ngắn ngủi, không cần qan tâm tới bộ nhớ khi bạn lập trình, nhưng điểm yếu của chúng có lẽ là GC hoặc virtual (làm chương trình của bạn chậm hơn)

  • Golang chẳng hạn, điểm mạnh của nó là tốc độ thực thi và xử lý đồng thời (concurrency) với chi phí thấp, vì cú pháp tương tự như C/C++ nên code khó viết, khó đọc, viết code rất mệt nhọc vì Golang sử dụng cấu trúc tĩnh và bạn phải tự build lấy những function nhỏ nhặt của mình như tìm chuỗi, tìm phần tử trong mảng, ...v.v.

Hoặc chúng sinh ra chỉ cho những platform nhất định, vấn đề là vì nhiều ông lớn công nghệ muốn có sản phẩm riêng của mình hoặc muốn khách hàng bị phụ thuộc vào mình, tức là khi code bằng ngôn ngữ này thì phải sử dụng hệ điều hành của họ mới có thể code đươc, ví dụ:

  • Swift chỉ chạy trên nền tảng Apple và iPhone, giả sử bạn muốn phát triển ứng dụng cho iPhone, mặc dù bạn vẫn có thể sử dụng Ruby để code nhưng nó rất là cực, bạn phải cần tool để compile code trong khi tại sao không chọn lấy ngay Swift - một đứa con tinh thần của Apple được Apple hỗ trợ cho mọi thứ để integrate với system của họ.

  • C# là đứa con tinh thần của Window, bạn vẫn có thể dùng C# để dev trên MacOS nhưng khá khổ sở vì bạn phải cần tool trung gian để compile code.

Ở chỗ mình làm thì team sử dụng các ngôn ngữ sau:

  • Ứng dụng chạy trên Windows: sử dụng .NET (C#) là tất nhiên rồi, không chạy đi đâu cả, nó là đứa con tinh thần của Windows nên được họ support cho nhiều thứ.
  • Backend sử dụng Ruby (Ruby on Rails), lập trình Web với UI phức tạp thì Ruby là sự lựa chọn ngon lành bởi vì nó giúp bạn devs nhanh, cú pháp Ruby linh hoạt giúp bạn xử lý nhanh các request.
  • Nhưng Ruby khá tệ trong việc xử lý những dữ liệu khủng, ví dụ dữ liệu có khoảng 1 triệu dòng trở lên, đó là lý do chọn Golang để giảm tải 1 phần cho việc xử lý này, Golang không hỗ trợ UI phức tạp như Ruby nhưng Golang hỗ trợ xử lý đồng thời rất tốt để build ở dạng service.

Vấn đề về bản quyền, ngôn ngữ lập trình cũng có những ngôn ngữ bạn phải trả tiền mới được sử dụng, cho nên cộng đồng lập trình sẽ tạo nên một bộ ngôn ngữ lập trình khác tương tự nhưng là free, mã nguồn mở.

đã bổ sung 4.0 năm trước bởi
Avatar: susukem susukem20
1

Cám ơn bạn, bạn chia sẻ chi tiết quá :)

Cộng đồng 18.04.2020
thêm bình luận...
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)