2009-03-16 19 views
20

Tôi đã phỏng vấn Bjarne Stroustrup, nhà phát minh ra C++.C++ là "lãng phí thời gian"?

http://artlung.com/smorgasborg/Invention_of_Cplusplus.shtml

Stroustrup: Vâng, nó được đủ lâu, bây giờ, và tôi tin rằng hầu hết mọi người đã tìm ra cho mình rằng C++ là một sự lãng phí thời gian, nhưng tôi phải nói, nó đưa chúng lâu hơn rất nhiều so với tôi nghĩ rằng nó sẽ ...

Người phỏng vấn: Có, nhưng C++ về cơ bản là ngôn ngữ âm thanh.

Stroustrup: Bạn thực sự tin rằng, phải không? Bạn đã từng ngồi xuống và làm việc trên một dự án C++ chưa? Đây là những gì xảy ra: Đầu tiên, tôi đã đặt đủ những cạm bẫy để đảm bảo rằng chỉ những dự án tầm thường nhất mới hoạt động lần đầu tiên. Mất quá tải toán tử. Vào cuối của dự án, hầu hết các mô-đun đều có nó, thông thường, bởi vì các chàng trai cảm thấy họ thực sự nên làm điều đó, như trong khóa đào tạo của họ. Các nhà điều hành tương tự sau đó có nghĩa là một cái gì đó hoàn toàn khác nhau trong mỗi mô-đun. Hãy thử kéo rất nhiều với nhau, khi bạn có một trăm hoặc hơn mô-đun. Và như để ẩn dữ liệu, Chúa, đôi khi tôi không thể không cười khi tôi nghe về những vấn đề mà các công ty đã làm cho các mô-đun của họ nói chuyện với nhau.

Đây có phải là trò lừa bịp không? Có bất kỳ điểm nào trong số này có vẻ đúng đối với bất kỳ lập trình viên C++ kỳ cựu nào không?

+3

Tùy thuộc vào tâm trạng của thời điểm .. mọi thứ có thể là 'lãng phí thời gian', và những thứ như nhận xét trên SO có thể sử dụng thời gian ... – vrdhn

+1

Snopes hoặc nó đã không xảy ra :) ... trong khác Tôi nghĩ rằng nó an toàn để giả định đây là một trò đùa/trò lừa bịp bởi một người nào đó, cho sự xuất hiện của nó trên một trang được gọi là "công cụ ngẫu nhiên" và cốt truyện mà nó được cho là bị cấm xuất bản. – thomasrutter

Trả lời

49

Bạn chỉ cần đánh dấu vào Stroustrup's website (the FAQ part) để thấy rằng đó là sai - một trò lừa bịp nổi tiếng như Giu-đa Himango đã chỉ:

Bạn có thực sự cung cấp cho một cuộc phỏng vấn với IEEE?

mà bạn thú nhận rằng C++ được cố tình tạo ra như là một ngôn ngữ khủng khiếp để viết unmaintainable mã để tăng lương lập trình viên? Tất nhiên là không. Read the real IEEE interview.

+4

Cảm ơn bằng chứng dứt khoát về trò lừa bịp. – Unknown

39

Đó là well-known hoax.

Và không, việc học C++ không lãng phí thời gian của bạn, điều gì đó đã được thảo luận trên StackOverflow nhiều lần.

+1

Liên kết đó chỉ hiển thị "(lừa đảo)" nhưng không giải thích bất kỳ điều gì khác. – Unknown

+1

cuộn xuống dưới cùng của liên kết - đó là một giả mạo – MrTelly

0

C++ (và Java) có lẽ là ngôn ngữ tốt nhất để tìm hiểu cách hiểu khái niệm về OOP. Tôi nhớ việc học nó ở trường đại học đã mang lại lợi ích cho tôi rất nhiều.

+3

Có nhiều ngôn ngữ tốt hơn cho việc học OOP, Ada, Java, C#, Python, Go, v.v. C++ có rất nhiều "gotchas" mà một lập trình viên newbie có thể conflate C++ 's cần thiết cách giải quyết với OOP thực. – weberc2

6

Từ bài viết có tiêu đề "Cuộc phỏng vấn thực sự" trong IEEE Computer Magazine Vol. 31 Số phát hành 6 pp.110-114 (tháng 6 năm 1998):

Trong vài tháng qua, một cuộc phỏng vấn lừa đảo giữa Stroustrup và máy tính đã thực hiện các vòng trong không gian mạng. Trong khi chúng tôi hối tiếc sự cố, nó mang lại cho chúng tôi cơ hội chào đón để có được cha đẻ của C++ chia sẻ những hiểu biết của mình về Tiêu chuẩn C++ và phát triển phần mềm nói chung. Chúng tôi cũng có thể chứng thực cho cảm giác hài hước và hài hước của anh ấy tiếp tục - anh ấy gợi ý rằng cuộc phỏng vấn nghiêm túc sẽ là một bản nhại hài hước hơn nhiều khi anh ấy tự viết nó.

26

Như đã đề cập, đây là trò lừa đảo nổi tiếng.

Nhưng nó gây ra một số điểm thú vị. Những ngày này C++ là một sự lãng phí thời gian, ngoại trừ khi bạn không có khả năng lãng phí thời gian. Ít opaquely: C + + là một sự lãng phí của thời gian phát triển, ngoại trừ khi bạn không thể đủ khả năng để lãng phí thực hiện thời gian.

+4

cho thời gian thực hiện, C có thể tốt hơn – hasen

+3

C là tốt hơn trong một số trường hợp, C++ ở những người khác. Nhưng C++ là biểu cảm hơn (xem http://accu.org/index.php/journals/1539), trừ khi nó được thực hiện một cách tồi tệ và làm xáo trộn – dcw

+1

@dcw và hầu như mọi thứ khác là biểu cảm hơn C và C++. Nó luôn luôn bi thảm khi thấy một "C + + là xấu" thread xuống cấp để "tốt nó tốt hơn so với C" như thể đang nói điều gì đó ... – weberc2

1

C++ không còn lãng phí thời gian của bạn nữa. Bạn sẽ hiểu các khái niệm có giá trị sẽ giúp bạn hiểu nhiều khái niệm khác bằng các ngôn ngữ lập trình khác nhau. I.E .: VTABLE.

+3

C++ xác định không có điều như vtable, đó là một chi tiết thực hiện. Và nó có liên quan như thế nào với các ngôn ngữ khác? – fredoverflow

+2

C++ là một loạt các cách giải quyết xuất phát từ thiết kế ban đầu kém (hoặc ít nhất một thiết kế hy sinh tất cả các mối quan tâm thực tế về khả năng tương thích ngược với C). Nếu bạn cần phải tìm hiểu các khái niệm lập trình thực tế, hãy kiểm tra Ada. Nếu bạn cần tìm hiểu cách một máy tính hoạt động, hãy thử lắp ráp. – weberc2

4

Như những người khác đã đề cập, Cuộc phỏng vấn này là trò lừa bịp.

Vâng, tôi là một trong những người ghét C++ và thường không sử dụng nó, nhưng việc học nó chắc chắn không lãng phí thời gian. Ít nhất bây giờ tôi biết tại sao tôi ghét C++ và tôi hiểu tại sao những người khác sử dụng ngôn ngữ này và nghĩ rằng nó là tốt.

Nếu bạn muốn học ngôn ngữ này để biết về khái niệm, lợi ích và nhược điểm của nó, để có thể đọc mã được viết trong đó, và nói chung để có thể "nói về" nó, nó không bao giờ là phí thời gian. Tương tự đối với bất kỳ ngôn ngữ lập trình nào khác. Nó sẽ tăng expierience của bạn. Ví dụ, C++ cho thấy một cách phổ biến của OOP - một cách tôi không thích, nhưng một cách nhiều người khác sử dụng.

Nhưng nếu bạn muốn tìm hiểu nó bởi vì "mọi người nói rằng nó là tốt nhất" (như tôi đôi khi đọc), sau đó nó thực sự là một sự lãng phí thời gian. Tương tự đối với bất kỳ ngôn ngữ lập trình nào khác.

0

Stroustrup không phải là ngu ngốc để nói rằng! Nó chắc chắn là một trò lừa bịp!

+2

IMHO Stroustrup và "stupid" không nên thuộc về nhau trong một câu. –

1

không phải là một khung duy nhất sử dụng tất cả các tính năng ngôn ngữ của C++. Điều này giới thiệu không nhất quán lớn tới hệ sinh thái của ngôn ngữ.

QT là một trong số ít các API mà tôi sẽ gọi một khuôn khổ (hay API cho một nhiều của sự vật):
Nhưng nó định nghĩa chuỗi riêng, mảng riêng, ...

điểm là gì của thư viện "chuẩn" khi không ai có thể sử dụng thư viện theo cách di động và tương thích (từ khía cạnh của tương tác với các API khác)?

Tôi biết, có tăng, nhưng tăng so với API như QT là gì? Không có gì.

Xem xét Java: API Java chuẩn, và mọi API "nước ngoài" đều sử dụng nó, tất cả đều hoàn toàn tương thích.

+2

Vâng, tôi chắc chắn có một số ví dụ chống lại vị trí của tôi, nhưng không gần như nhiều so với C++. –

+0

Tăng cường và QT về cơ bản và khái niệm khác nhau, bạn so sánh táo với cam. – ArthurChamz

2

Các lập trình viên cảm thấy bị thu hút bởi các ngôn ngữ cấp cao hơn để quản lý bộ nhớ và các nhiệm vụ khác cho họ, có thể cảm thấy rằng C++ là một sự lãng phí thời gian.
Nó chắc chắn là nếu bạn có thể đạt được mục tiêu tương tự với một ngôn ngữ khác trong thời gian ít hơn và với ít sửa lỗi và không nhớ những nhược điểm là hiệu quả.
Nhưng tôi không hối hận vì đã học và dành rất nhiều giờ mã hóa trong C/C++ vì nó là một ngôn ngữ đẹp và cho phép bạn tạo ra những thứ không có nhiều ngôn ngữ khác.

Ý tôi là, bạn có muốn sử dụng ngôn ngữ mà hệ điều hành và trình biên dịch được viết không? đó không phải là sự lãng phí thời gian chút nào từ quan điểm của tôi.

+1

Tôi biết rằng phần thân của câu hỏi tập trung vào việc liệu trích dẫn của Stroustrup có phải là trò lừa bịp hay không, nhưng dù sao tiêu đề cũng đi * Có phải C++ là "lãng phí thời gian" không? * – Petruza

Các vấn đề liên quan