Ngôn ngữ lập trình Go được thiết kế để giúp ngành công nghiệp phần mềm khai thác nền tảng đa lõi của bộ vi xử lý và hoạt động đa nhiệm tốt hơn.

Khai thác sức mạnh đa lõi

Vấn đề khai thác sức mạnh của những bộ vi xử lý đa lõi và thế hệ phần cứng mới là nhiệm vụ gần như “bất khả thi” của các ngôn ngữ lập trình hướng đối tượng hiện có của thế giới. Google đã đặt ra mục tiêu giải quyết sự bất cập này ngay từ khi có ý định hiện thực hóa dự án Google Go. Không chỉ khai thác tối đa các nền tảng đa lõi, Go còn được trang bị thêm khả năng giúp cho các nhà lập trình xử lý vấn đề “quản lý bộ nhớ trong quá trình hoạt động của phần mềm”. Thêm vào đó, Go phải có tốc độ vượt trội và đã gần đạt tới tốc độ của C và C++.

"Việc cho ra đời một phần mềm ngày càng trở nên khó khăn hơn”, Pike nói, "Tuy những chiếc máy tính đã nhanh hơn rất nhiều nhưng quá trình xử lý thông tin của các phần mềm tỏ ra không cải thiện là bao nhiêu. Nhiệm vụ của Go là phải đưa lĩnh vực phần mềm theo kịp tốc độ của sự phát triển phần cứng”.

Google đã thử nghiệm thành công Go bằng việc sử dụng chính nó để xây dựng website cho nó nhưng tham vọng của họ lớn hơn đó rất nhiều: Đưa Go vào xây dựng các phần mềm chạy trên máy chủ và bước thử nghiệm tiếp theo là dùng Go cho dịch vụ Gmail của mình và tiến tới thay thế hoàn toàn nhiệm vụ của JavaScript.

"Ít nhất thì nó (Go) cũng phải tốt hơn JavaScript", Pike tuyên bố mặc dù vẫn thừa nhận rằng một số dịch vụ, sản phẩm của họ đang phải nhờ đến JavaScript.

Một đặc tính mới rất thú vị của Go là các tác vụ sẽ được chia sẻ bởi chính server và máy trạm (thậm chí là điện thoại di động) trong quá trình sử dụng dịch vụ.

Có một thông tin về Go khiến không ít chuyên gia ngạc nhiên: Ngôn ngữ lập trình này đang sử dụng cả một công nghệ đã ra đời từ những năm 1960 có tên gọi CSP (communicating sequential processes) để xử lý các tương tác trong một gói chương trình hợp tác.

"Chúng tôi không dám chắc mình sẽ xử lý được những vấn đề của lập trình đa lõi nhưng chúng tôi sẽ xây dựng được một môi trường mà ở đó một phần của nền tảng kiến trúc đa lõi sẽ được khai thác hiệu quả hơn”, ông Pike nói.

Ngoài ra, Go còn có thể  ứng dụng thêm một số thành phần mở rộng cho phép các tác vụ hoạt động trên các máy chủ đa lõi thông qua một mạng lưới kết nối khác.

Tìm kiếm sự giúp đỡ

Nhóm phát triển Go đang lên tiếng kêu gọih những chuyên gia bên ngoài Google giúp đỡ họ trong dự án này đặc biệt là những sự giúp đỡ trong hệ thống thư viện cho phép tăng tốc lập trình bằng việc cung cấp các công cụ và thành phần để lập trình viên không phải mất công xây dựng từ đầu.

Go cũng cần được cải thiện thêm về khả năng đóng gói phần mềm. Chuyên gia Thompson đã viết một số chương trình hỗ trợ cho các nền tảng máy chủ x86 32 và 64 bit cũng như các bộ vi xử lý ARM.

ARM là bộ vi xử lý đang thống trị thế giới thiết bị di động và đây cũng chính là lĩnh vực mà Google đang rất muốn bành trướng cùng với hệ điều hành Android của mình. Nếu Go hỗ trợ tốt với nền tảng của ARM, các phần mềm viết bằng Go sẽ có thêm nhiều cơ hội phát triển hơn.

"Chúng tôi làm việc này trước tiên là vì Google nhưng chúng tôi đã quyết định sẽ phải mở nó ra với cộng đồng và mong muốn nhận được sự giúp đỡ của cộng đồng", Pike nói.

Và với những gì Google đang hy vọng vào Go cho thấy gã khổng lồ tìm kiếm này không có ý định biến Go thành một “kẻ thay thế” các ngôn ngữ lập trình hiện nay.

Theo ICTnews (CNET)



Bình luận

  • TTCN (3)
Hải Nam  30903

Có mấy cái link tham khảo về:
- FAQ http://bit.ly/9cS5X0
- Tech talk http://bit.ly/cUhYiJ (hơi dài, 1 tiếng lận, mình chưa xem :D)

Cơ bản là Google thấy dạo này máy tính phát triển quá, nền tảng đa lõi ra đời lâu rồi mà không thấy xuất hiện ngôn ngữ nào mới, và chuyên dụng cả, nên làm một cái để chơi (chỉ đang nghiên cứu thôi). Bài viết ở trên nói website golang.org sử dụng webserver viết bằng Go, nhưng mình xem header thì nó chỉ ghi “Google Frontend” nên không rõ lắm. Nhưng trong FAQ thì bảo hiện Google không sử dụng Google (vì nó chưa ổn định).

Google bảo Go sẽ không thay thế các ngôn ngữ hiện tại thì cũng khó hiểu. Giờ bộ VXL nào cũng đa lõi, các chip ARM mới cũng là MultiProcessor. Tức là Go đang có ưu thế. Hơn nữa Go lại chạy nhanh, vừa dùng được ở client lẫn server (giống JS với VBS quá :D), tốc độ thì lại vượt trội hay gần bằng C/C++ thì ai dùng mấy ngôn ngữ kia nữa. Theo quảng cáo trong FAQ thì một chương trình Go lớn chỉ mất vài giây để compile trên máy PC thông thường. Không biết lớn đến cỡ nào, bằng nhân Linux không, tại mình compile nhân Linux trên cái laptop HP-Compaq cũ (mua cách đây 4 năm) thì mất đến 20 phút lận Big Grin Còn gcc compile mấy chương trình bèo bèo mã nguồn có vài MB thì cũng mất dăm ba phút.

Tóm lại Google sắp có ngôn ngữ xịn, có trình biên dịch siêu nhân. Thì phải đá mấy đứa khác đi thôi.

panh  18

Xử lý nhanh không phải là điểm nhấn của ngôn ngữ lập trình hiện đại. Điều quan trọng là có phù hợp với xu thế hướng đối tượng hay không. Có dễ dàng thiết kế theo những pattern hiện đại hay không (như: Fundamental, Creational, Architectural, ....). Còn rất nhiều điều đặc trưng của 1 programming hiện đại, chứ không đơn thuần như google nghĩ.

Thằng google lúc nào cũng nói chuyện đao to búa lớn mà làm thì như con kiến. Lúc nào cũng khoe trình duyệt Chrome chạy nhanh khởi động nhanh mà xem lại toàn xài config của IE (mọi người thử vào setting của Chrome xem, nó load setting của IE lên...thiệt là củ chuối). Xài ké của người ta nên mình nhẹ hơn, chạy nhanh hơn là đúng rồi. Nhưng thử hỏi nếu máy tình không có IE thì Chrome lấy gì làm configuration.

Saucy Salamander  1
nói linh tinh một NNLT sinh ra để giải quyết một bài toán nhất định mà không phải chạy theo xu hướng của các NNLT khác. OOP không phải vạn năng, thực tế cho thấy OOP tỏ ra không hiệu quả trong Cloud computing "Vấn đề khai thác sức mạnh của những bộ vi xử lý đa lõi và thế hệ phần cứng mới là nhiệm vụ gần như “bất khả thi” của các ngôn ngữ lập trình hướng đối tượng hiện có của thế giới." //đấy là setting của Windows, không phải của IE -.-