C là dễ dàng ngôn ngữ nhanh nhất ra khỏi đó. Nhanh quá, chúng tôi viết các ngôn ngữ khác trong đó. Không ai nghiêm túc viết các trang web trong C. Tại sao? Nó rất dễ dàng để vít lên trong C theo cách rất khó phát hiện và nó hầu như không có gì để giúp bạn. Trong ngắn hạn, nó ăn lập trình và tạo ra lỗi.
Xây dựng ứng dụng mạnh mẽ, nhanh chóng không phải là về chọn ngôn ngữ nhanh nhất, khả năng bảo trì khoảng A) và khả năng mở rộng B).
Tính duy trì có nghĩa là nó không có nhiều lỗi. Nó có nghĩa là bạn có thể nhanh chóng thêm các tính năng mới và sửa đổi các tính năng hiện có. Bạn muốn một ngôn ngữ thực hiện càng nhiều công việc càng tốt cho bạn và không bị cản trở. Đây là lý do tại sao những thứ như Perl, Python, PHP và Ruby rất phổ biến. Tất cả đều được viết với sự tiện lợi của lập trình viên trong tâm trí về hiệu suất thô hoặc sự khéo léo. C được viết cho hiệu suất thô. Java đã được viết cho tidiness khái niệm.
Khả năng mở rộng có nghĩa là bạn có thể chuyển từ 10 người dùng thành 10.000 người dùng mà không cần viết lại toàn bộ nội dung. Điều đó có nghĩa là bạn đã viết mã chặt chẽ nhất mà bạn có thể quản lý, nhưng mã được tối ưu hóa cao thường khó bảo trì mã.Nó thường có nghĩa là làm việc vì lợi ích của máy tính, chứ không phải con người và doanh nghiệp. Đó là hy sinh bảo trì và bạn phải nói với ông chủ của bạn sẽ mất 3 tháng để thêm một tính năng mới.
Khả năng mở rộng những ngày này chủ yếu đạt được bằng cách ném phần cứng vào đó và song song. Có bao nhiêu quy trình và bộ vi xử lý và máy móc bạn có thể làm việc cho công việc của mình? Nếu bạn có thể đạt được điều đó, bạn chỉ có thể kích hoạt một máy tính đám mây giá rẻ khác khi bạn cần. Tất nhiên, bạn sẽ muốn tối ưu hóa một số, nhưng ở quy mô này, bạn nhận được nhiều hơn thế nữa trong việc thực hiện một thuật toán tốt hơn so với thắt chặt mã của bạn. Ví dụ, tôi đã dùng một ứng dụng PHP chậm chạp để xử lý 50 người dùng cùng một lúc, chuyển từ Apache với mod_php thành lighttpd với cân bằng tải, từ xa FastCGI quy trình cho phép song song với sự thay đổi mã tối thiểu. Một số hồ sơ cơ bản tiết lộ rằng khuôn khổ PHP họ sử dụng để nguyên mẫu là con chó chậm, vì vậy nó đã bị tước bỏ. Profiling cũng đề xuất một vài chỉ mục để làm cho các truy vấn cơ sở dữ liệu chạy nhanh hơn. Kết quả cuối cùng là một hệ thống có thể xử lý hàng ngàn người dùng và có thể thêm nhiều dung lượng hơn khi cần thiết trong khi hầu hết mã thực thi logic nghiệp vụ bị ảnh hưởng. Mất một vài tuần, và tôi thực sự không biết rõ về PHP.
Có thể có ích khi thực hiện lại các phần nhỏ, sắc nét bằng một ngôn ngữ rất nhanh, nhưng thông thường nó đã được thực hiện cho bạn dưới dạng một thư viện hoặc công cụ được tối ưu hóa. Ví dụ: máy chủ web của bạn. Đối với sự phức tạp và nhu cầu luôn thay đổi của logic kinh doanh, điều quan trọng là dễ bảo trì và mức độ hiệu quả của các lập trình viên của bạn. Bạn sẽ thấy rằng hầu hết các trang web được viết bằng PHP, Perl và Python vì chúng dễ viết, với các bit nhỏ, sắc nét được viết bằng những thứ như C, Java và exotics như Scala (ví dụ, Twitter) . Ví dụ: Wikia là một Mediawiki được sửa đổi được viết bằng PHP nhưng nó là biểu diễn (trong số các lý do khác) bằng cách thực hiện một heroic amount of caching.
Bước 1. Xác định các trường hợp bạn quan tâm. Bước 2. Xây dựng hệ thống để thu thập số cho những trường hợp này bằng nhiều ngôn ngữ khác nhau. Bước 3. So sánh, chọn một ngôn ngữ và thực hiện. –
người ta thường nói rằng các lập trình viên vĩ đại có thể viết chương trình tuyệt vời bằng ngôn ngữ crappy, và một lập trình viên crappy có thể mã chương trình crappy bằng một ngôn ngữ tuyệt vời. vì vậy điều quan trọng hơn là cách bạn mã hóa nó, lựa chọn ngôn ngữ là thứ yếu. ;) – Lukman
Nếu bạn cần chọn một ngôn ngữ nhanh để thực hiện một thuật toán đã biết, các tiêu chuẩn loạt đá luân lưu có ý nghĩa gì đó. Nếu bạn cần chọn một ngôn ngữ để viết một ứng dụng kinh doanh, các điểm chuẩn không có nghĩa là ngồi xổm. Vấn đề không phải là "ngôn ngữ nào có thể làm X nhanh hơn", bởi vì không có X đơn giản cho "doanh nghiệp của bạn". Hiệu suất và tính mạnh mẽ chủ yếu là do các lập trình viên của bạn giỏi như thế nào, không phải ngôn ngữ. – Schwern