- Đây là phim tài liệu nhìn lại 40 năm lịch sử của C++, gói gọn từ khởi đầu ở Bell Labs đến quá trình được chấp nhận trên toàn cầu và đà tăng trưởng hiện nay, với sự xuất hiện của những nhân vật từng tham gia vào lịch sử, quá trình chuẩn hóa và hệ sinh thái công cụ của C++
- C++ khởi đầu từ C with Classes, thứ mà Bjarne Stroustrup tạo ra tại Bell Labs bằng cách kết hợp khả năng kiểm soát phần cứng của C với tính trừu tượng hướng đối tượng của Simula, rồi dần phát triển thành một ngôn ngữ trừu tượng hiệu quả cho các hệ thống quy mô lớn
- Bản triển khai đầu tiên CFront chuyển C++ thành mã C để có thể tiếp tục dùng nguyên vẹn hạ tầng và thư viện C sẵn có, và khi số người dùng tăng lên sau năm 1983 thì tính tương thích trở thành bài toán cốt lõi
- Chuẩn hóa ANSI/ISO được khởi động dưới áp lực từ IBM, HP và Sun đã ngăn sự phân mảnh giữa các bản triển khai theo từng nhà cung cấp, và chuẩn năm 1997 bao gồm namespace, exception, template và STL
- Đầu những năm 2000, mùa đông của C++ xuất hiện do Java và C#, cú sụp dot-com cùng đà tăng hiệu năng CPU quá nhanh, nhưng đến khoảng năm 2004 khi việc tăng tần số dừng lại và tính song song trở nên quan trọng thì C++11 đã tạo ra một thời kỳ phục hưng
- Ngày nay C++ được dùng tại CERN, trong game, tài chính, AI/HPC dựa trên CUDA, hệ thống nhúng và nhiều nơi khác; các thách thức lớn còn lại là an toàn bộ nhớ, độ phức tạp, quy mô của ủy ban chuẩn hóa và thiếu hụt nguồn tài trợ
C with Classes bắt đầu từ Bell Labs
- C++ là một ngôn ngữ đã hơn 40 năm tuổi; vào thời điểm nó ra đời chưa có các công cụ như editor hiện đại, tô sáng cú pháp, điều hướng mã, tự động hoàn thành hay refactoring, và nhiều lập trình viên vẫn dùng BASIC hoặc assembly khác nhau tùy từng chip
- Trong giai đoạn nhu cầu về các chương trình lớn và phức tạp hơn ngày càng tăng, Bjarne Stroustrup tại Bell Labs muốn xây dựng các hệ thống phân tán, và để xử lý những thành phần như device driver, network interface, memory manager hay process thì cần một ngôn ngữ mức thấp
- C cho phép kiểm soát phần cứng hoàn toàn và phù hợp với lập trình hệ thống, nhưng khi chương trình ngày càng lớn thì nó thiếu khả năng biểu đạt các cấu trúc như module, kênh giao tiếp hay giao thức
- Stroustrup rất thích tính an toàn kiểu mạnh, kiểu do người dùng định nghĩa, class và phân cấp class của Simula mà ông từng dùng ở Cambridge, nhưng cho rằng Simula quá chậm và tốn quá nhiều bộ nhớ
- Vì vậy ông tạo ra C with Classes bằng cách đưa các chức năng cơ bản của Simula vào C, rồi trong gần 40 năm sau đó tiếp tục phát triển C++ theo hướng khiến nó có thể làm được mọi thứ mà cả Simula lẫn C có thể làm
CFront, cái tên và giai đoạn lan rộng ban đầu
- Ban đầu C with Classes được tạo dưới dạng một tiền xử lý C, nhưng khi người khác bắt đầu dùng nó, Stroustrup nhận thấy khác biệt với C chưa đủ lớn nên đã dành một năm để cải tiến compiler và bản thân ngôn ngữ
- CFront không tạo mã máy bằng backend truyền thống mà biên dịch sang mã C, nhờ đó người dùng C++ có thể giữ nguyên môi trường C hiện có mà không phải đưa vào toàn bộ hạ tầng hay thư viện mới
- CFront được tạo ra vào năm 1983 và là một compiler thực thụ, thực hiện phân tích từ vựng, phân tích cú pháp, kiểm tra kiểu, tạo biểu diễn cây và tối ưu hóa cây
- Tên C++ xuất phát từ việc toán tử
++của C mang nghĩa tăng lên; về mặt ý nghĩa thì++Cmới chính xác hơn, nhưng để tiện cho việc lập chỉ mục và tham chiếu nên tên trở thành C++ - AT&T từng thử bán compiler C++ khi tham gia mảng máy tính và phần mềm, nhưng phần cứng không bán đủ tốt; các bản triển khai C++ ban đầu vì thế gần như được phát tán rộng rãi với mức phí chỉ tương đương chi phí băng từ và giấy phép thương mại rất thấp
- Trong một thời gian, Stroustrup tự mình phụ trách tài liệu, compiler, triển khai ngôn ngữ và cả helpdesk; khoản đầu tư của AT&T là rất nhỏ, có lần chỉ phân bổ 5.000 USD cho 3 năm phổ biến một ngôn ngữ lập trình đa dụng
- Ở CFront 2.0, một lỗi trong xử lý đa kế thừa đã bị phát hiện, và vì một tính năng cốt lõi đã hứa hẹn có thể bị hỏng theo cách không thể sửa sau khi ra hiện trường, bản sửa đã được làm và phát hành chỉ trong vài ngày
- Do phải giữ nguyên cùng số hiệu phát hành, phiên bản đó được phát hành là 2.0.0 thay vì 2.0.1, và tính tương thích trở thành yêu cầu áp đảo đến mức bị đùa là “C word”
Chuẩn hóa và STL
- C++ là công cụ nâng cao năng suất nội bộ của AT&T, nhưng nó không thể thành công nếu bị giam trong một công ty duy nhất; nó cần các nhà phát triển bên ngoài và một hệ sinh thái thư viện
- Trước thời web, các nhóm như
comp.lang.c++trên Usenet và các tạp chí máy tính như Byte là con đường lan truyền thông tin, và cuối thập niên 1980 Stroustrup đã đi thuyết trình tại nhiều công ty và tổ chức để giới thiệu ngôn ngữ - Việc sử dụng tăng lên mà không có chiến dịch quảng bá hay nhà bảo trợ mạnh, nhưng khi Borland, Microsoft, IBM, Sun và các hãng khác mỗi bên tự làm bản triển khai C++ và thiết kế template riêng, khả năng tương thích mã bị chia cắt nghiêm trọng
- Những người đại diện cho IBM, HP và Sun đã yêu cầu Stroustrup chuẩn hóa C++ theo quy tắc ANSI; ông cho rằng còn quá sớm, nhưng cuối cùng sau một năm đã đồng ý tạo tài liệu nền tảng cho chuẩn hóa
- Annotated Reference Manual, tức ARM, trở thành tài liệu đầu vào cho việc chuẩn hóa và mở đường cho việc đưa vào các tính năng như template, exception và namespace
- Chuẩn được định nghĩa là bản hợp đồng giữa người viết mã C++ và các bản triển khai C++, giúp nhiều nhà cung cấp có thể hiểu cùng một đoạn mã theo cùng một nghĩa
- STL do Alexander Stepanov tạo ra lấy ý tưởng cốt lõi là thuật toán phải hoạt động trên mọi cấu trúc dữ liệu phù hợp, và các cấu trúc dữ liệu cũng phải có thể truyền dữ liệu cho nhau
- Trước STL, ai cũng tự tạo cách riêng cho array, list, tree, container và thuật toán, còn STL đưa ra một cách mạnh mẽ và thống nhất để định nghĩa thuật toán và container
- Đề xuất STL từng bị phản đối vì quá muộn và quá lớn so với lịch chuẩn hóa, và cả những công ty lớn như Microsoft cũng phản đối, nhưng sau các bài trình bày và tranh luận thì khoảng 80% ủy ban đã tán thành, giúp nó được đưa vào chuẩn
- C++ được chuẩn hóa vào tháng 11 năm 1997, với các tính năng nền tảng quan trọng được bổ sung gồm namespace, exception, template và Standard Template Library
- LLVM bắt đầu sau giai đoạn chuẩn hóa này nên không mang gánh nặng di trú mã cũ, nhờ đó có thể dùng các tính năng mới theo đúng cách chúng được thiết kế
Mùa đông và thời kỳ phục hưng C++11
- Trong thập niên 1990, C++ trở thành ngôn ngữ làm thay đổi cách phát triển vốn xoay quanh Fortran trong phần mềm và tính toán vật lý năng lượng cao như tại CERN; các thư viện và mã hiện có được port sang C++ hoặc được làm lại cho phù hợp với C++
- Trong phát triển game, khi card đồ họa và API bắt đầu đảm nhiệm công việc mức thấp, đã xuất hiện làn sóng chuyển từ C và assembly lên C++, và C++ được dùng trong hệ sinh thái engine như Unreal
- Trong tài chính, khi giao dịch tự động và giao dịch tần suất cao xuất hiện, độ trễ ở mức micro giây trở nên quan trọng, và C++ được dùng như một ngôn ngữ có thể đạt độ trễ thấp mà không cần vi tối ưu hóa từng dòng
- Sau cú sụp dot-com năm 2000, Java nổi lên nhờ hoạt động marketing mạnh của Sun với hình ảnh là “ngôn ngữ của tương lai” và “ngôn ngữ của Internet”; Java xuất hiện như một phản ứng trực diện trước độ phức tạp của C++
- Bên trong Microsoft cũng có mong muốn kết hợp cách phát triển form dễ dùng của Visual Basic với hiệu năng và sức biểu đạt của C++, và kết quả là C# ra đời
- Trong giai đoạn 2000~2005, đó không chỉ là sự chững lại mà là một thời kỳ suy giảm của C++; khi tần số CPU vẫn tiếp tục tăng, nhiều nhà thiết kế ngôn ngữ và lập trình viên xem hiệu năng là điều ít quan trọng hơn
- Khoảng năm 2004, việc tăng tần số bộ xử lý chạm trần, giới hạn về hiệu năng và điện năng của lõi đơn lộ rõ, còn lợi ích từ song song hóa mức lệnh giảm dần; thời kỳ phần cứng tự động làm chương trình chạy nhanh hơn đã chấm dứt
- Đa lõi và tính song song trở nên quan trọng, nhưng khi đó chuẩn C++ hoàn toàn chưa có threading; email của Herb Sutter “C++ multi-threading: is the standardization committee listening” đã làm nổi bật vấn đề này
- C++0X bắt đầu từ năm 2002 và ban đầu nhắm tới việc hoàn thành trong giai đoạn 2007~2009, nhưng do liên tục trì hoãn để đưa thêm các tính năng quan trọng nên cuối cùng mất 13 năm
- C++11 giới thiệu move semantics, concurrency,
auto, range-based for loop, smart pointer, lambda,constexprvà nhiều thứ khác, đồng thời trở thành chuẩn đầu tiên trong họ ngôn ngữ C chính thức xử lý threading - C++11 tạo nên một thời kỳ phục hưng khi nhu cầu về các tính năng ngôn ngữ dễ dùng và an toàn hơn gặp đúng lúc nhu cầu tận dụng tối đa hiệu năng phần cứng
- Sau đó mô hình train model để phát hành chuẩn đúng thời hạn được áp dụng, và ủy ban chọn chu kỳ 3 năm thay vì 2 năm
- C++14 là một bản phát hành nhỏ, chứa các mục chưa kịp đưa vào C++11 cùng các sửa lỗi, còn C++17 và C++23 bổ sung rất nhiều tính năng cho ngôn ngữ và thư viện chuẩn
Quy mô hiện tại và các thách thức
- Độ phức tạp của C++ tiếp tục tăng, bị chỉ trích vì có quá nhiều cách khởi tạo biến và thậm chí bị chê là “mức độ phức tạp khó hiểu nổi”
- Ủy ban chuẩn hóa cũng đã phình to lên đến 527 người, làm dấy lên lo ngại rằng số lượng tiểu ban và chủ tịch nay đã tương đương toàn bộ số thành viên thuở ban đầu
- Trong thiết kế ngôn ngữ, có thể thêm vào nhưng gần như không thể loại bỏ, nên câu hỏi quan trọng không chỉ là đưa cái gì vào mà còn là lúc nào phải từ chối
- C++ được dùng trong sản xuất điện, turbine gió, nồi cơm điện, sân bowling, phim Hollywood, ô tô, tài chính, máy ảnh và nhiều nơi khác, đến mức có thể nói là “gần như ở khắp mọi nơi”
- Codebase C++ của HRT có hơn 1 triệu dòng và 15.000 tệp, và chỉ riêng năm 2025 đã có khoảng 800 nhà phát triển tạo ra 84.000 commit
- Trong game, Unity dùng C# còn Unreal dùng C++; những trò chơi cần tốc độ khung hình cao và đồ họa nhanh như Call of Duty dùng C++ vì lý do hiệu năng
- Trong Nvidia và lĩnh vực tăng tốc tính toán, C++ cũng rất quan trọng; dù bề mặt có thể dùng Python, phần tải tính toán thực tế vẫn do các thư viện CUDA được tối ưu hóa cao đảm nhiệm
- Rust và C++ được nêu là các ngôn ngữ tăng trưởng nhanh; có số liệu cho rằng số lập trình viên C++ đã tăng từ 9,4 triệu năm 2022 lên 16,3 triệu năm 2025
- Nhu cầu đối với các ngôn ngữ có hiệu suất trên điện năng tốt vẫn tiếp tục, giúp C++ giữ được những mảng sử dụng xuất sắc và khó thay thế
- Đồng thời cũng có lo ngại rằng khi các tay chơi lớn chuyển nguồn lực sang AI, kinh phí dành cho C++ có thể giảm đi
- Trong thời kỳ đại dịch, đã xuất hiện các động thái từ chính phủ và cơ quan quản lý nhằm rời xa C++, vốn không mặc định cung cấp an toàn bộ nhớ; an toàn bộ nhớ được nêu là vấn đề quan trọng nhất cần giải quyết
- Ở C++26, để tăng cường độ cứng hóa phần mềm, biến chưa khởi tạo sẽ không còn là undefined behavior nữa, và thư viện chuẩn C++26 sẽ cung cấp tùy chọn bounds safety cho các kiểu phổ biến như
string,span,vector - static reflection của C++26 là tính năng cho phép mã chương trình nhìn vào chính mã chương trình, và được đánh giá là tính năng đơn lẻ có tác động lớn nhất từng được chuẩn hóa
- AI có thể tạo ảnh hưởng rất lớn đến an toàn ngôn ngữ và cách con người sử dụng ngôn ngữ lập trình, nhưng kết luận hiện tại vẫn là chưa ai biết chính xác điều gì sẽ xảy ra tiếp theo
1 bình luận
Ý kiến trên Hacker News
Tôi vẫn thấy nhận xét của Ken Thompson chỉ trích C++ là một đống ý tưởng thiếu nhất quán và phức tạp rất thấm thía. Lần cuối tôi dùng nó cho công việc là C++98, còn 11/17/20 thì chỉ nghịch qua vì tò mò
Nếu c++/cfront không hưởng hào quang của C thì tôi nghi ngờ nó có được dùng rộng rãi hay không, và tôi cho rằng đó vừa là bản sắc vừa là giới hạn mà C++ không muốn thay đổi. Việc phải tốn một lượng thời gian tương tự để làm sạch implementation bằng các công cụ như Coverity/Valgrind cho những thứ mà compiler lẽ ra xử lý được là điều cực kỳ khó chịu
Thời C++98, tôi còn có thể hiểu khá rõ chuyện gì đang diễn ra nhờ cuốn sách của Bjarne về cấu trúc bên trong, nhưng về sau thì các loại sách kiểu “effective, more effective, proficient, performant C++” nở rộ như cả một ngành công nghiệp, đến mức trước khi có LLM thì tôi đã từ bỏ kỳ vọng có thể hiểu được code sẵn có do người khác viết. Dành thời gian để học domain problem còn thấy thỏa mãn hơn
Dù vậy, vì có những nhân vật tôi thích như Kernighan và Stepanov xuất hiện nên tôi vẫn sẽ xem bộ phim tài liệu này
Tôi hỏi liệu có cần giấy phép để làm compiler C++ không, và liệu có phải gọi nó bằng tên khác chứ không phải C++ hay không. Ông ấy cười và bảo cứ tự nhiên làm, còn cảm ơn vì tôi là người làm compiler duy nhất từng hỏi xin phép. Tôi thấy cáo phó của ông ấy vài năm trước; ông là một người tử tế
Nó compile chậm đến mức đau khổ, và không hỗ trợ near/far pointer vốn là thứ bắt buộc với các ứng dụng không quá đơn giản. Zortech C++ đã giải quyết những vấn đề đó và bán chạy như tôm tươi, tạo ra khối lượng tới hạn cần thiết cho thành công của C++
Lưu lượng trên comp.lang.c++ tăng vọt, Borland nhìn doanh số của chúng tôi rồi từ bỏ sản phẩm ngôn ngữ hướng đối tượng riêng để làm Turbo C++. Microsoft cũng thấy thành công của Borland nên làm C++ của riêng mình
Chúng tôi cũng bán khá nhiều compiler Zortech C++ cho Microsoft, và họ đã dùng nó để phát triển COM. Tôi cũng từng nghe đồn Microsoft đang làm một ngôn ngữ C hướng đối tượng riêng tên là C*, nhưng chưa bao giờ xác nhận được
Một trong những lý do ủy ban C có thể cầm cự rất lâu mà không thêm quá nhiều là vì họ có thể chỉ sang C++ và nói “việc đó là chuyện bên kia, không phải việc của chúng ta”. Nếu không có C++, ai mà biết C có biến thành một ngôn ngữ với class, template và lambda hay không
C và UNIX do họ tạo ra cũng đã đánh bại những hệ thống LISP và Smalltalk tiên tiến hơn, đơn giản vì việc triển khai của chúng đơn giản hơn. Ngay cả hệ điều hành dựa trên Plan 9 tiến bộ hơn của chính họ cũng không thể lấn át các hệ thống họ Unix phổ biến hơn
Rốt cuộc có vẻ khả năng phân phối và mức “đủ tốt” luôn chiến thắng. Tôi cho rằng các ngôn ngữ động như Perl, Python, Ruby, JavaScript, PHP cùng với Java được marketing rất mạnh đã cung cấp đủ các tính năng cấp cao để khiến mọi người không chuyển sang Lisp và Smalltalk
Nhìn theo góc này, C++ có thể là phương tiện để gắn các tính năng cấp cao lên một ngôn ngữ hiệu năng cao cấp thấp vốn đã được chấp nhận rộng rãi, từ đó biến nó thành công nghệ đủ tốt cho việc chấp nhận trên diện rộng
Dạo này tôi làm việc với C++ khá nhiều, nên quyết định xem video trong lúc chờ build xong. Thời lượng vừa khít, và may là video cũng rất hay
Cá nhân tôi thấy C++ là ngôn ngữ thanh lịch nhất trong số những ngôn ngữ tôi đã dùng suốt khoảng 15 năm. Nếu bạn thuộc kiểu người “thích hệ thống hóa”, và muốn có một mô hình tinh thần cực kỳ chính xác về những gì mình viết ra đến tận bit cuối cùng, thì khó có gì bằng C++
Tôi thừa nhận vẫn có những giới hạn và sự bất định đến từ compiler các thứ, nhưng tôi vẫn nghĩ vậy
Bạn hoàn toàn có quyền thích làm việc với C++, và đúng là có thể làm được nhiều thứ bằng C++, nhưng khó mà nói C++ làm được điều đó bằng “rất ít thứ”, và có lẽ điểm này cũng không gây nhiều tranh cãi
Tôi rất vui khi bộ phim tài liệu này có Andrei Alexandrescu. Cuốn Modern C++ Design của ông đã thực sự mở rộng tư duy của tôi khi đọc, và có lẽ đến giờ vẫn vậy. Có ai đã đọc chưa?
Tôi khuyên nên nhờ chatbot AI tóm tắt từng chương rồi hỏi xem đối ứng hiện đại là gì. Một số idiom đã được cải tiến, và có vẻ cả một mục đã được thay thế bằng việc dùng std::variant và std::visit
C++ nên biến mất. Tôi hiểu là rất nhiều người đã đầu tư vào nó và một lượng mã khổng lồ đã được viết bằng C++. Trước đây tôi từng là fan và đến giờ nó vẫn là ngôn ngữ chính trong công việc của tôi, nhưng trong bối cảnh năm 2026 khi LLM có thể tìm ra mọi lỗ hổng và số lượng kẻ tấn công cũng tăng lên, chúng ta cần một ngôn ngữ mà an toàn là mặc định
C++ là ngôn ngữ mà để có được sự an toàn thì phải bật một cách tùy chọn và luôn cần mức cảnh giác cực độ. Điều đó không hiệu quả, và hàng chục năm kinh nghiệm đã chứng minh điều đó
shared_ptrđược đưa vào ở C++11Nó đã tiếp nhận gần như mọi ý tưởng, và chúng ta đã biết điều gì hiệu quả và điều gì không ngoài thực chiến. RAII, phân biệt move và copy, smart pointer, placement-new, generic có thể được giữ lại
Ngược lại,
auto_ptr, copy mặc định, một số cách triển khai exception nhất định, đa kế thừa ảo, và các template thay thế nguyên cả khối mã có thể bị loại bỏ. Theo tôi thì cuộc chiến đã kết thúc, và Rust là kết quả tổng hợp tốt nhất của những gì đã chứng minh là hiệu quả. Việc nó còn kế thừa cả thời gian biên dịch chỉ là phần thêm vàoTôi ngạc nhiên là luồng phát triển C++ vẫn tiếp tục. Khi game hay chương trình được làm bằng C++ thì thường tốt vì hiệu năng phần lớn được đảm bảo, nhưng nếu bảo tôi tự viết C++ thì chắc tôi sẽ khóc
Có quá nhiều thứ phải nhớ và tiêu chuẩn thì quá đa dạng. Chỉ cần dự án tôi vào bảo trì là C++ thì tinh thần đã tụt ngay. Nó đơn giản là quá khó. Nếu người khác viết sẵn thì tốt, nhưng đó không phải ngôn ngữ tôi muốn tự tay viết
Dùng ngôn ngữ nào cũng cần kiểu khởi động tương tự, nên với tôi nó không khác nhiều so với Python, Go hay Java
Nếu nhìn C++ mà không tính thư viện chuẩn thì nó khá là ổn
Vấn đề chính của hệ sinh thái C++ là ai cũng tự gọt ra phần tập con ngôn ngữ của riêng mình. Vì vậy thay vì một hệ sinh thái thống nhất, ta có nhiều hệ sinh thái với các phong cách và tập con ngôn ngữ/thư viện chuẩn xung đột lẫn nhau. Điều này khiến việc tái sử dụng mã thông qua thư viện trở nên khó hơn mức cần thiết
[0] https://hftuniversity.com/post/the-c-standard-library-has-be...
Ưu điểm lớn của tập tính năng đồ sộ này là C++ cho phép dùng các lớp trừu tượng tốt từ mức rất thấp đến rất cao. Bạn có thể làm việc ở mức thấp như inline assembly, phép toán bit, thao tác bộ nhớ trực tiếp, và cũng có thể viết ở mức cao gần như ngôn ngữ scripting. Dù miền bài toán yêu cầu gì thì C++ cũng gánh được
Nói thêm, nhìn vào thông tin hồ sơ thì trừ khi bạn đang ở Bắc Triều Tiên, tốt hơn nên thêm một số 0 vào đơn giá. Làm vậy bạn sẽ có được khách hàng dài hạn hơn và coi trọng chất lượng hơn
Sống như một lập trình viên C++ đúng là có cảm giác y như vậy
Mỗi lần dạy các lập trình viên web, tôi đều nói rằng ngôn ngữ của internet không phải JavaScript mà là C++. Lập trình viên web chỉ là những người dùng đang vui chơi bên trong các chương trình do lập trình viên C++ tạo ra
Còn ngôn ngữ của internet là gì thì kém rõ ràng hơn nhiều
Một bộ phim tài liệu miễn phí về chủ đề tôi đam mê thì thật tuyệt. Cảm ơn
Chỉ là tôi hơi kỳ lạ: tôi không xem được kiểu phim tài liệu ghép từ những câu ngắn của nhiều người nối tiếp nhau. Tôi hiểu ý đồ là “để họ tự kể câu chuyện”, nhưng vì nó làm tôi mất tập trung nên tôi cần một người dẫn chuyện nói cho tôi biết nên nghĩ gì
Dù vậy tôi vẫn dành thiện cảm cho những người làm ra nó
Tôi đã bỏ lỡ xu hướng gần đây, nhưng gần đây có phim tài liệu về Python, Clojure, và có lẽ cả ngôn ngữ khác nữa. Có phải cùng một nhóm người đang làm cả series về nhiều ngôn ngữ không? Hay chỉ là trùng hợp? Hay bây giờ mọi ngôn ngữ lập trình đều đang lao vào làm phim tài liệu video cho riêng mình?
Có vẻ họ đang làm phim tài liệu về phần mềm nguồn mở
Chandler Carruth có một số suy nghĩ thú vị về chủ đề này: https://hachyderm.io/@chandlerc/116694268329657881
Mãi đến 10 phút cuối họ mới đụng nhẹ tới những chỉ trích quen thuộc như độ phức tạp ngày càng tăng hay an toàn bộ nhớ. Dù vậy tôi vẫn xem khá thích