Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The point I was making (somewhat sarcastically) is that the claims of deficiencies in C/C++ family of languages, such as they are, are way overblown. There are lots of problems with the model of course. The author is not the first person to express his utter dismay at the inelegance and crudeness (as they see it) of this model and won't be the last. They have seen the light. How can the others be so blind etc.

Meanwhile in the real world, every single computing device, billions of them, are working non-stop, days and weeks and months on end, on a foundation of millions and millions of lines of imperative code (mostly a combination of C/C++/java/ObjectiveC ). If this programming model was so horribly broken, so inadequate, so crude, how could mere humans have created such an enormously complex technological edifice on top of such shaky foundations?



> ...how could mere humans have created such an enormously complex technological edifice on top of such shaky foundations?

Mere humans have split the atom, mapped the human genome, walked on the surface of the moon, transplanted organs, achieved flight, cloned a sheep, and invented apple pie. I'd say next to these accomplishments, the act of writing good software using tools that make some aspects of the process difficult is hardly an achievement.

I agree that hysterics claiming we are a hair away from a total imperative meltdown are ridiculous. However, I think that "make some aspects of the process difficult" is a reasonable assessment of imperative, low-level programming. Can you tell me you've never been bitten by an unexpected null? Or, that you've never tired of having to write a class that's essentially a wrapper around a List/Map because the interface is not convenient or fluent?

I'm not suggesting we get a mob together and overthrow the tyrannical imperative government, leaving corpses dangling from the gallows as a warning to the next person who wants to mutate an input parameter. I just want the discussion to move away from "C++ is fine, quit your bitching" - this is totally unproductive.

If medical doctors thought like this, laproscopic surgery would never have been taken seriously since conventional surgery was totally adequate. "I mean, what's the problem? Yeah, being sliced open creates very long recovery times for people and is more likely to lead to infection, but that's just something we have to deal with. An incalculable number of lives have been saved through conventional surgery, so I really don't think we need to consider new methods."


I like your approach. We do need discussions on the pros and cons of languages rather than be so religious or "conservative" about them.

From what i understand, different tools are suited for different tasks. C is even more dangerous that C++ but i am sure everyone admits that it is great for high performance computing. But dangerous as it is, it would slow programmer productivity a HELL LOT if you try to take care of all the possible bugs.

IMO Java and the OOP paradigm is designed for manageability of really large software. it's far easier to group related code together, delegate responsibilities to those classes, and just do inheritance when you need to reuse old code. Not to mention it's designed to let you borrow code from other people and use it with ease. This is very helpful when working in large teams where people can work on separate parts that talk to each other

PS: i apologize for my lack of vision. I have no experience with Ruby, scala or FP languages


"every single computing device, billions of them, are working non-stop, days and weeks and months on end"

working non-stop? No, they don't. Today’s computers are filled with bugs because bad implementations that comes from bad implementation languages and bad tooling.

The reason C++ is used is because backwards compability/legacy/history trumps everything else. Just look at MS Windows for a proof for that. Or x86 CPU architecture.


working non-stop? No, they don't.

Those are claims that go against my personal experience (pretty much every device and server system I control has uptime in weeks or months). So unless you can actually show me some hard data to the contrary...


Are you claiming that there are never any crashes or downtime in any device?


Sigh. No. Where did I say "never crashes" ?

You on the other hand seem to be implying that a different programming model will result in a never crashing system at the scale of the current internet.


Erlang crowd seems to `put their money where their mouth is` regarding this question.


Remember Erlang runtime is also written in C ultimately. I would have believed claims about Erlang "never crashes" if I hadn't had to personally debug mysterious hangs in Erlang runtime (running RabbitMQ):

http://erlang.2086793.n4.nabble.com/infinite-loop-when-beam-...


You claimed non-stop without any facts or anything.

I'm saying that we could have way fewer bugs and crashes with better languages and tooling.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: