HN2new | past | comments | ask | show | jobs | submitlogin

Your point is correct, but it seems like a defensive stance. Rather than debating the technical facets of the article, you fall back on the ubiquity of C++ projects as an overwhelmingly positive aspect. For what it's worth, people say the same thing about PHP; how do you feel about that language?

It's hard reading vitriolic attacks on things you enjoy. There was a talk given by a Rubyist on why he thought Scala sucked, and I found it very irritating (and incorrect). So, that being said, I don't want to dismiss people feeling this way when the subject is broached. It would be nice to find a way to raise these points without ruffling feathers.

...but I think it should still be talked about. Times change, we learn lessons, life moves on. In spite of this, our most-used software is written using a language that is decades old. C+ is not a mathematical theorem...there is no universal truth to it that gives it a timeless quality. It's very common in the medical profession to rapidly change treatment methods - although a majority of the underlying knowledge is static, the actual techniques and tools change as better ones are discovered. In the realm of programming, can't we at least have the discussion?

I'm not advocating totalitarian FP. What I would love is for people to just take some of the biggest lessons learned and apply them. Hell, if I could just get immutability by default (we all know untamed mutability is dangerous), no untyped null (Hoare's billion-dollar mistake), and truly useful first-class functions (with everything that implies), I'd say that's enough to mollify me for the present. Thinking way, way, way forward, I would like to see people really studying and rethinking programming in general. Just because this is how we are doing this now doesn't mean it's the best way. "Normality" is sort of an accident - I'd love to see a more studied approach.



> Rather than debating the technical facets of the article, you fall back on the ubiquity of C++ projects as an overwhelmingly positive aspect. For what it's worth, people say the same thing about PHP; how do you feel about that language?

As Stroustrup fittingly said: "There are only two kinds of languages: the ones people complain about and the ones nobody uses."

How can you know the downsides and warts of something you haven't used in a wide range of applications? Are you honestly saying there won't be any? Granted, an old, proven language will have far more warts than a fresh one that's still idealistic. Fixing old warts introduces new ones etc.

But I don't believe in the one true language.


> "There are only two kinds of languages: the ones people complain about and the ones nobody uses."

He said that because his language gets an inordinate amount of complaints.


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.


> For what it's worth, people say the same thing about PHP; how do you feel about that language?

I actually love how relaxed and non-pointy-headed PHP feels. They seem to have backed off and tried to remake the language as OOP now, which is sad.




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

Search: