4 ms·
The big difference here is how additions in C++ tend to work - e.g. keeping all of the deprecated ill-defined legacy and growning features on it like tumors unt
by 0xAA55 10y ago
The big difference here is how additions in C++ tend to work - e.g. keeping all of the deprecated ill-defined legacy and growning features on it like tumors until there are no more symbols left. Unlike Ada and Python which aren't afraid of throwing away poor design and were overall more thought out in the first place (especially Ada).
Its not a "complexity game" in so much as poor design being over-compensated for. C++ is like cancer infecting the minds of young programmers with buggy habits -- and no amount of features and static analysis will change what lies beneath... :p
- pjmlp 10y agoHow specially Ada?! The only thing Ada has thrown away was GC support that no compiler vendor has ever bothered to implement. What other features were thrown away across Ada83, Ada95, Ada2005 and Ada2012? If I present you Ada random code snippet X, are you sure you will be able to say which language version it requires? Also Python is the poster child of what happens when you throw compatibility away.
- 0xAA55 10y agoWhat I meant to emphasize was that Ada was well designed in the first place, and yes GC was a problem and so were some of the restrictions and aspects of the standard libraries. For example, a big one was unconstrained types for generic actuals... C is a mine-field of devastating design flaws which have caused many people to die because of decades old decisions made on a whim and any change to basic libraries to make them safer and removing dangerous functions is heresy. As far as Python, yes the two versions of the language is troublesome for users but the language is objectively better and students learning programming for the first time benefit from a more robust version. Feel free to give me a random code snippet ;p
- pjmlp 10y agoI fully agree with you regarding C, but even though C++ happens to be copy-paste compatible with it, C++ isn't C. It does provide the necessary language features for security conscious developers to write safe code, the fact that many write C++ as if it was "C with C++ compiler" is an unfortunate one. Yes it would have been great that we had Ada instead of C++, sadly that wasn't what greedy Ada compiler vendors wanted us to have.
- 0xAA55 10y agoIndeed, except for all the flaws C++ decided to add from C including is cryptic syntax (i++, ++i, <<, ::, ?) and macros it is a good language. In fact, from that list it seems like it is finally meeting parody on key Ada 95 features -- so maybe we dont have to be so sad :)
- AnimalMuppet 10y ago> C is a mine-field of devastating design flaws which have caused many people to die because of decades old decisions made on a whim... Wow. Hyperbole much? I get that you don't like C, but you sound like a raving lunatic who is completely unconnected with reality. Devastating design flaws? Flaws I can agree with. Devastating? That sounds a bit overstated. Caused many people to die? I call BS. (Yes, I'm pretty sure you might be able to document a few. But you said "many", and I'm calling you on it.) Decisions made on a whim? Again, BS. In fact, at this point you're just making stuff up.
- 0xAA55 10y agoFirst of all what if I am lunatic xD There are so many parts of C that are unsafe that a secondary tool is needed to have an reasonable type-checking and that tends to be devastating if they can be easily avoided by even safety critical engineers. https://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_slides.pdf https://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_... "Toyota does not claim to have followed MISRA Guidelines" And honestly I dont think we agree on what "a few" is. In my book if any more than 4 or 10 people die from a solved problem in computer science (like strong typing, mutexes, and range checking) that is already way too yes many As far as decisions on a whim compare the two language design efforts and i'll let you decide: http://www.adapower.com/index.php?Command=Class&ClassID=FAQ&CID=320 http://www.adapower.com/index.php?Command=Class&ClassID=FAQ&... "The requirements were not a language specification, but instead they attempted to define rigorously the needed characteristics in a form that could be critically reviewed." https://www.codingunit.com/the-history-of-the-c-language https://www.codingunit.com/the-history-of-the-c-language “It’s entirely Dennis Ritchie’s work”
- AnimalMuppet 10y ago"Decided by one man" != "decided on a whim".
- 0xAA55 10y ago"...despite the changes that it has undergone since its first published description, which was admittedly informal and incomplete..." ~ Dennis M. Ritchie It took a decade to even decide what the C language really was and standardize it -- sounds pretty undefined and whimsical to me. But we all use and understand words differently so let's agree to disagree :)
- BeetleB 10y ago>Also Python is the poster child of what happens when you throw compatibility away. And what, exactly, happened? For years I avoided Python3. Updating my code base was a hassle I did not want to deal with. Finally, a few months ago, I had some spare time and took the dive. And nothing bad happened. I did not even spend hours on it. At this point, all the libraries I need exist for Python3, and the automated tools update my code for Python3 without manual intervention almost every time.
- pjmlp 10y agoOf a community dragging their feets while avoiding to upgrade at all costs, with developers being forced to backport features into the 2.x branch.
- BeetleB 10y ago>Of a community dragging their feets while avoiding to upgrade at all costs, with developers being forced to backport features into the 2.x branch. A minor problem compared to dealing with developers continually using poor paradigms for eternity because C++ did not want to break compatibility. And I believe the developers who backport to 2.x are not those who implement the features in 3.x. The latter don't care at all about 2.x. Those who backport do not see it as a "pain" but as a new feature to add to their language.
- blub 10y agoIt's amazing that there's someone out there thinking that Python's compatibility break is a "minor problem", even when comparing apples to oranges. Fortunately the architects of the change said that they've learned their lesson. They don't have much choice either, another one like this and it would be bye bye python.
- BeetleB 10y ago>It's amazing that there's someone out there thinking that Python's compatibility break is a "minor problem", even when comparing apples to oranges. Certainly did not affect me or anyone I know.