Từ mọi thứ tôi đã thấy, đó là sự kết hợp của lý do thực tế và lịch sử. Lý do lịch sử (chủ yếu) là CPython 1.0 được phát hành vào năm 1989. Vào thời điểm đó, C mới được chuẩn hóa gần đây. C ++ gần như không được biết đến và quyết định không thể mang theo được, vì hầu như không ai có trình biên dịch C ++.
Mặc dù C ++ phổ biến rộng rãi hơn và dễ dàng có sẵn ngày nay, nhưng vẫn cần một lượng công việc khá lớn để viết lại CPython vào tập hợp con của C tương thích với C ++. Chính nó, công việc đó sẽ cung cấp rất ít hoặc không có lợi ích thực sự.
Nó hơi giống bài đăng trên blog của Joel về việc bắt đầu lại và viết lại hoàn toàn là sai lầm tồi tệ nhất mà một công ty phần mềm có thể mắc phải. Tôi phản bác điều đó bằng cách chỉ ra chuyển đổi của Microsoft từ lõi Windows 3.0 sang lõi Windows NT và chuyển đổi của Apple từ MacOS 9 sang Mac OS / X. Không ai giết công ty - nhưng cả hai chắc chắn là những dự án lớn, đắt tiền, dài hạn. Cả hai cũng chỉ ra một điều rất quan trọng để thành công: duy trì cả hai cơ sở mã đủ lâu để (hầu hết) người dùng có thể chuyển sang cơ sở mã mới một cách thoải mái, dựa trên lợi ích (ít nhất là nhận thức được).
Tuy nhiên, đối với nhóm phát triển kích thước của Python, loại thay đổi đó khó khăn hơn nhiều. Ngay cả việc thay đổi từ Python 2 thành 3 cũng mất khá nhiều công sức và yêu cầu một sự chồng chéo tương tự. Tuy nhiên, ít nhất trong trường hợp đó, có những lợi ích trực tiếp đối với các thay đổi, việc viết lại thành C ++ (tự nó) sẽ không (ít nhất là ngay lập tức) cung cấp.
Sự giận dữ của Linus Torvalds đối với C ++ đã được đưa lên, vì vậy tôi cũng sẽ đề cập đến điều đó. Không có gì tôi thấy từ Guido cho thấy anh ta có cảm giác tiêu cực, mạnh mẽ đối với C ++. Về điều tồi tệ nhất tôi từng thấy anh ấy nói là việc dạy C ++ thường là một thảm họa - nhưng anh ấy ngay lập tức nói rằng điều này phần lớn là do các giáo viên không / không biết về C ++.
Tôi cũng nghĩ rằng trong khi nó có thể chuyển đổi rất nhiều mã C đến C ++ với tương đối dễ dàng, mà nhận được nhiều lợi ích thực sự từ C ++ đòi hỏi không chỉ viết lại khá hơn một chút hơn thế, nhưng cũng đòi hỏi đáng kể cải tạo của hầu hết các nhà phát triển có liên quan. Hầu hết C ++ được viết tốt khác biệt đáng kể so với C được viết tốt để làm những điều tương tự. Nó không chỉ là vấn đề thay đổi malloc
để new
và printf
để cout
, bởi bất kỳ căng của trí tưởng tượng.