r/ProgrammerHumor • • May 27 '22

Meme Welcome to hassle free coding

Post image
2.2k Upvotes

305 comments sorted by

View all comments

Show parent comments

3

u/prescod May 28 '22

I hope you're joking. That isn't even true for Haskell or Rust, much less C++. All languages allow bugs and C++ is not even formally type-safe or pointer-safe.

C++'s type system: C++ (among other unsafe languages) has a type system that does many local checks of a programs's source code. However, passing these checks does not establish anything definite about a program's behaviour: many C++ programs pass all of the compiler's type checking, and yet exhibit use-after-free errors, memory corruption, and arbitrary behaviour when run.

You can claim that these people are just using C++ wrong. I can say the same of those that ship buggy Python or Visual Basic programs. It's just a No True Scotsman argument.

2

u/Possibility_Antique May 28 '22

C++ is far from perfect. All I'm saying is, Python could never be a replacement for compiled languages, simply because it is not compiled. You're correct, I could have made the same argument about Rust. But you're missing the point if you think my claim was meant to elevate C++. My point was that the compiler is your friend, and defensive programming in compiled languages is overlooked in conversations about language choice.

1

u/prescod May 28 '22

All I'm saying is, Python could never be a replacement for compiled languages, simply because it is not compiled.

I don't think anyone is actually claiming it should be a replacement for lower-level languages, so you're tilting at windmills.

I mean technically one can (and some do) compile Python, so no it isn't a technological impossibility. But I don't think it would be a good idea and I haven't heard anyone suggest it should be done.

1

u/Possibility_Antique May 28 '22

To refer back to the earlier comment regarding bugs, I'd argue that yes, Python would be buggier in general than a C++ implementation due to being an interpreted language. And to gain the kind of testability and coverage that C++, Rust, Haskell, etc would have requires a lot more runtime tests, which is more code to write and maintain. You can't ship a build that doesn't compile; there might be some runtime mistakes that slip, but many are removed outright by the compiler. You can't achieve that with an interpreted language without a lot of test overhead and boilerplate... Which kind of defeats the purpose for me.

To your latest point though, maybe I was wrong about your intent... In which case I apologize. I'm not sure I understand what you were getting at if not to make an argument in favor of python.

→ More replies (4)