19/09/2019, 06:40

Vì sao C++ vẫn là sự lựa chọn tuyệt vời cho phát triển ứng dụng

Có lẽ sẽ hơi lạ khi giờ này tôi vẫn ngồi đây và nói về C++ trong năm 2015. Liệu C++ có còn là một lựa chọn tốt cho việc phát triển ứng dụng trên nhiều nền tảng. Trong khi đó, các ngôn ngữ như Objective-C, Java và C# cũng đang nhận được nhiều quan tâm từ giới lập trình. Phần ...

 Có lẽ sẽ hơi lạ khi giờ này tôi vẫn ngồi đây và nói  về C++ trong năm 2015. Liệu C++ có còn là một lựa  chọn tốt cho việc phát triển ứng dụng trên nhiều  nền tảng. Trong khi đó, các ngôn ngữ như  Objective-C, Java và C# cũng đang nhận được  nhiều quan tâm từ giới lập trình. Phần lớn các ứng  dụng ngày nay được viết dựa trên C/C++ và sau  nhiều năm phát triển nó đã tạo được một cộng  đồng lập trình viên đông đảo nhất trên thế giới.

 Có rất nhiều lý do cho việc sử dụng C++ cho những  ứng dụng hiện tại và cả tương lai. Sau đây sẽ là 5 lý do  chính vì sao chúng ta nên chọn C++. Nhưng trước hết,  hãy nói sơ về lịch sử phát triển của C++, một ngôn  ngữ   cực kỳ mạnh mẽ.

Lịch sử phát triển của C++

Vào đầu những năm 80, tại Bell Labs, Bjarne Stroustrup đã thiết kế ra C++ một dạng ngôn ngữ hướng đối tượng dựa trên C, ngôn ngữ này đã hỗ trợ cho rất nhiều hệ thống phần mềm trong năm 1972. Nhu cầu sử dụng ngôn ngữ hướng đối tượng tại Bell Labs rất cao vào thời điểm ấy. Những phần mềm hệ thống lớn cần cơ sở vật chất để có thể tổ chức và tái kiến thiết dữ liệu ứng dụng, vì vậy sức chứa và năng xuất yêu cầu được tăng lên khá nhiều. Cũng vì lý do đó, C++ đã nhanh chóng được ứng dụng cho những loại mô hình phát triển ấy đặc biệt là ngành công nghiệp viễn thông. Tới tận ngày nay, họ vẫn dùng những sản phẩm từ Bell Labs cho việc chuyển đổi hệ thống và hệ điều hành để có thể kết nối với thế giới như hiện nay. Năm 1988, C++ trở thành chuẩn ANSI/ISO quốc tế và được cập nhật thường xuyên bởi hội đồng thẩm định. Một trong những lần cập nhật lớn nhất là vào năm 2011 khi họ cho ra mắt C++11 standard, tập trung chủ yếu vào độ khả dụng của các khía cạnh phức tạp trên ngôn ngữ, theo ý kiến riêng của tôi đó đã là một thành công lớn.

Mặc cho sự nổi tiếng của Java, C# hay Objective C, C++ vẫn nằm trong hàng những ngôn ngữ được sử dụng rộng rãi nhất trên thế giới. Một báo cáo gần đây của tập đoàn Evans cho biết trên thế giới hiện đang có 11 triệu lập trình viên đang sử dụng C++ một cách thường xuyên. Phải có một lý do đặc biệt nào đó khiến Java và C# phải vay mượn syntax từ C++. Vì vậy việc tìm tại liệu cho C++ thật sự không quá khó, điều này cũng có nghĩa rằng hiện cũng đang có rất nhiều tính năng mà C/C++ hỗ trợ cho các ứng dụng mà bạn muốn tích hợp vào.

C++ được xậy dựng chuyên biệt cho những nền tảng độc lập được tìm thấy trên mỗi hệ điều hành. Nếu là một người dùng mobile thì bạn có thể sẽ biết rằng, các ứng dụng ở Android chủ yếu được viết dựa trên Java, còn ở trên iOS thì lại là Objective-C, nhưng có thể nhiều người chưa biết rằng C/C++ đã có mặt trên hầu hết trong bộ nhớ của các thiết bị bạn đang dùng. C/C++ đang điều khiển hầu như tất cả các loại thiết bị vừa và nhỏ (chẳng hạn như kernel, tương tác với phần cứng cũng như run-time của các thư viện), chưa hết, nó còn có mặt ở hệ thống mạng lưới viễn thông của các thiết bị này. Quan trọng hơn cả đối với một đội ngũ phát triển, có một giao diện và thư viện C/C++ cho tất cả mọi loại thiết bị và nền tảng. Android NDK toolset là một vì dụ điển hình cho bộ hỗ trợ toàn diện C/C++ được bổ sung cho các đội ngũ phát triển game, giúp họ có thể đạt được hiệu suất tốt nhất trên các thiết bị bằng cách tránh các Java và Android Java runtime Dalvilk, Máy ảo mà Android Java đang thực thi trên đó. Nó được cải thiện gần đây trên tất cả các thiết bị Android

C++ có thể tương thích tốt nhất với C.

Nhiều thư viện đang có trên các thiết bị này thông qua chức năng giao diện của C. Một trong những ví dụ này chính là POSIX, nằm bên ngoài C/C++ RTL/STL là một trong những thư viện được hỗ trợ nhiều nhất trên tất cả các nền tảng vì nó cung cấp một C API phổ biến cho tất cả các dịch vụ nền tảng căn bản. Một ví dụ khác nữa là OpenGL/ES, thư viện đồ hoạ hỗ trợ trên mọi hệ điều hành. Những thư viện này sẽ được sử dụng dễ dàng trực tiếp từ ứng dụng C++ mà không cần phải tạo ra ngôn ngữ ràng buộc, các kiểu dữ liệu đặc biệt, hoặc làm bất kỳ sự chuyển đổi runtime nào, bạn chỉ cần #include những header cần thiết và link gắn với thư viện đó là xong.

C++ không chỉ dành cho phía khách hàng. Như đã đề cập từ nãy đến giờ, Android NDK là một ví dụ rất tốt cho việc tiếp cận C++ để cho ra hiệu năng tốt nhất có thể. C++ cũng được sử dụng rộng rãi cho phía ứng dụng server. Thực tế, nó được tập trung trên các hệ thống khổng lồ như viễn thông, tài chính, kỹ thuật, v.v… nói chung là tất cả mọi ngành công nghiệp yêu cầu hiệu suất tối ưu. Trong những ngày đầu của các thiết gị nhúng, C++ đã trở nên vô cùng phổ biết cho các ứng dụng của thiết bị nhờ các lợi thế mà nó có được như đã đề cập ở trên, điển hình như sự tương thích của C trên các nền tảng được hỗ trợ và hiệu năng của runtime.

Kể từ khi C++ trở thành một ngôn ngữ biên dịch nó được chạy trực tiếp trên các CPU và được chọn là một trong những ngôn ngữ xuất sắc nhất. Đó cũng là lý do vì sao các lập trình viên game rất thích ngôn ngữ này. Tuy nhiên, phía khách hàng không phải là bên duy nhất hưởng lợi từ hiệu suất vượt bậc của nó, có thể kể đến các máy chủ trạm trung gian, hệ thống backend, là tổng thể của một bức tranh về hệ sinh thái của ứng dụng thời hiện đại, ảnh hưởng trực tiếp đến trải nghiệm của người dùng. C++ là ngôn ngữ có thể đảm nhiệm rất tốt trên tất cả các mảng vừa rồi.

Vào những ngày đầu của C++ chúng ta thường đừa rằng C++ là một ngôn ngữ có sức mạnh đủ để bạn có thể làm bất cứ điều gì. Tuy nhiên, Nó lại đòi hỏi sự tập trung cao độ hơn để có thể viết code được hiệu quả và an toàn, vì nó sẽ ảnh hưởng trực tiếp đến bộ nhớ và rất nhiều code tương tác với siêu thư viện STL. Một trong những chuẩn được xuất bản gần đây nhất của C++ là C++11, đã nhấn mạnh vào độ khả dụng của nó giúp cho lập trình viên đỡ sợ ngán ngẩm hơn. Nó có thể trở nên mạnh mẽ hơn bạn cần, đặc biệt khi làm việc với các framework phát triển ứng dụng. Nó bổ sung API phổ thông cho các dịch vụ thêm vào như UI control trên tất cả các thiết bị dùng cho Android, iOS, Windows, và cả trên hệ điều hành Mac.

Kết luận.

C++ thật ra đã có mặt được một thời gian khá lâu trên thị trường. Nó đã giúp giải quyết được rất nhiều vấn đề khó khăn của vô số ngành công nghiệp trên thế giới. Không những vậy, C++ còn là một nguồn lực lớn giúp thúc đẩy ngành công nghiệp mobile phát triển mạnh mẽ. Hơn nữa, để cải thiện hiệu suất của máy chủ cũng như máy chủ trạm trung gian thì C++ là một sự lựa chọn tuyệt vời cho phía khách hàng trên 2 nền tảng lớn là Android và iOS, vả đương nhiên là không thể thiếu 2 nền hệ điều hành lớn như Windows và Mac OS X. Với sự ra mắt gần đây của công cụ dành cho lập trình viên, C++ hỗ trợ thêm một số tính năng như thiết kế hình ảnh dành cho khách hàng, máy chủ trạm trung gian và các ứng dụng bên lề khác. C++ đã dần trở nên cực kỳ hiệu quả trong vai trò là một người tiên phong cho phát triển các ứng dụng hiện đại.

Topdev via Betanews

0