Linked by Thom Holwerda on Mon 3rd Sep 2012 20:46 UTC, submitted by MOS6510
General Development I like this one: "By definition, a program is an entity that is run by the computer. It talks directly to the CPU and the OS. Code that does not talk directly to the CPU and the OS, but is instead run by some other program that does talk directly to the CPU and the OS, is not a program; it's a script." Here's the other eleven.
Thread beginning with comment 533884
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[7]: C++
by satsujinka on Wed 5th Sep 2012 05:40 UTC in reply to "RE[6]: C++"
satsujinka
Member since:
2010-03-11

Sets, queues, and stacks are all lists. They have slight restrictions, but that's the very definition of "minimal change." Boost is quite commonly regarded as a major example of terrible software (by the non-C++ using community.)

It is about difficulty, because I've already enumerated how to use arrays safely. Pointing out that lots of developers have bad habits is simply a red herring. I've already mentioned that I wish array manipulation had been included in the stdlib, but you can find/make a library for it as well. The only reason that buffer overflows are still so common is that many developers have NIH syndrome (or are simply ignorant about what's available to them, a problem that C++ doesn't solve.)

Reply Parent Score: 1

RE[8]: C++
by kwan_e on Wed 5th Sep 2012 07:32 in reply to "RE[7]: C++"
kwan_e Member since:
2007-02-18

Sets, queues, and stacks are all lists. They have slight restrictions, but that's the very definition of "minimal change."


Because the C standard lists sets and queues and stacks as part of the libraries...

Sets are lists? Really? Lists have the concept of unique membership? Everything is either a chunk of memory or linked chunks of memory if you go down low enough. Not only do you seem to not understand C++, you obviously never understood the data structure unit of your programming course.

Boost is quite commonly regarded as a major example of terrible software (by the non-C++ using community.)


Well, no shit. Therefore it makes your statement useless. Boost is terrible for web programmers. Boost is terrible for Python programmers. Boost is terrible for limited embedded systems.

It is about difficulty, because I've already enumerated how to use arrays safely. Pointing out that lots of developers have bad habits is simply a red herring.


And yet, pointing out the bad habits of C++ developers is not a red herring when criticising C++...

I'm not even talking about bad habits. I'm talking about SECURITY and SAFETY. Everyone makes mistakes. It's not about bad habits.

You better not be responsible for any high security systems. You do not have the right attitude for them.

Reply Parent Score: 3

RE[9]: C++
by satsujinka on Wed 5th Sep 2012 15:15 in reply to "RE[8]: C++"
satsujinka Member since:
2010-03-11

Do you not read? I quite clearly stated that a set is a minor modification to a list. Since you're too dense to understand that, I'll spell out the change:
Take your list's add method and wrap it in the following if:
if(!list.contains(item))

I haven't been pointing out bad habits of C++ developers. I've been talking about how C++ is too wide a target for team building. I've been talking about how C++ reinvented I/O tools. I've been talking about how the STL is mostly duplicate work. No where have I been talking about C++ developers.

See but everyone makes mistakes applies just as much to C++. Maybe vectors stop you from causing buffer overflows, but there's still plenty of logic errors left over. And considering vectors are harder to use (with C++ iterators clouding things up even more) the chance of logic errors increases. (I'm sure if I brought up the fact that there's plenty of buffer overflows in C++ programs, you'd just deflect it as them not using the correct container. Which is un-testable either way.)

If you're really about security and aren't just putting on a security circus, you'd realize that any security critical software must be triple checked (at least) by other developers. This is plenty of opportunity to check that the original dev. was using correct practices (as I've already enumerated.) This is plenty of time to check for logic errors. Just having a language provide you with "safe" containers does not make their usage safe. If you believe it does, then I'm afraid to tell you, but it's you that has the wrong attitude.

Reply Parent Score: 1