<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:osnews="http://www.osnews.com/rss2#">
	<channel>
		<title>OSNews: </title>
		<link>http://www.osnews.com/story/26333/12_really_controversial_programming_opinions</link>
		<description>Exploring the Future of Computing</description>
		<language>en-us</language>
		<copyright>Copyright 2001-2013, David Adams</copyright>
		<webMaster>adam+nospam@osnews.com</webMaster>
		<lastBuildDate>Thu, 23 May 2013 14:12:01 GMT</lastBuildDate>
		<image>
			<url>http://www.osnews.com/images/osnews.gif</url>
			<title>OSNews.com</title>
			<link>http://www.osnews.com</link>
		</image>
		<item>
			<title>Scripts</title>
			<link>http://www.osnews.com/thread?533714</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533714</guid>
			<description>So if you run any OS in an VM (not paravirtualized) it suddenly becomes a script?</description>
			<pubDate>Mon, 03 Sep 2012 21:20:00 GMT</pubDate>
			<author>donotreply@osnews.com (panzi)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Copy/Pasting</title>
			<link>http://www.osnews.com/thread?533716</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533716</guid>
			<description><i>&quot;4. Copy/Pasting is not an antipattern, it fact it helps with not making more bugs&quot;</i><br />
<br />
I think what he/she means is that side effects are bad.</description>
			<pubDate>Mon, 03 Sep 2012 21:25:00 GMT</pubDate>
			<author>donotreply@osnews.com (panzi)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Scripts</title>
			<link>http://www.osnews.com/thread?533717</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533717</guid>
			<description>Lots of these opinions are &quot;controversial&quot; because they are a load of hogwash.<br />
<br />
I don't think there was any effort to actually filter out rubbish answers.<br />
<br />
I think you could say that it is only programming if you don't use a compiler (or even assembler), and be equally (in)valid.</description>
			<pubDate>Mon, 03 Sep 2012 21:28:00 GMT</pubDate>
			<author>donotreply@osnews.com (c0m47053)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Scripts</title>
			<link>http://www.osnews.com/thread?533719</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533719</guid>
			<description><div class="cquote">Lots of these opinions are &quot;controversial&quot; because they are a load of hogwash. </div><br />
Hogwash and/or gibberish. For example:<br />
<br />
<div class="cquote">If a method has a second line of code, it is a code smell. Refactor. </div><br />
What does that even mean?<br />
<br />
<div class="cquote">Having come from a coding background where you were required to know the hardware, and where this is still a vital requirements in my industry, I view high level languages as simply assembling someone else's work. </div><br />
<br />
So I assume this guy programs by waving a magnetised needle over the platter. Hey, wouldn't want to be using somebodies else's work now!</description>
			<pubDate>Mon, 03 Sep 2012 21:36:00 GMT</pubDate>
			<author>donotreply@osnews.com (Vanders)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>not controversial at all, just plain stupid.</title>
			<link>http://www.osnews.com/thread?533720</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533720</guid>
			<description>x86 assembler is scripting too.<br />
<br />
Because It's not native at all.  All x86 machine code is translated internally to microcode and that microcode is the native language of today CPUs.<br />
<br />
x86 instruction set is just a compatibility layer.   So all what We write are scripts.</description>
			<pubDate>Mon, 03 Sep 2012 22:30:00 GMT</pubDate>
			<author>donotreply@osnews.com (sergio)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Copy/Pasting</title>
			<link>http://www.osnews.com/thread?533722</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533722</guid>
			<description><div class="cquote"><i>&quot;4. Copy/Pasting is not an antipattern, it fact it helps with not making more bugs&quot;</i><br />
 <br />
 I think what he/she means is that side effects are bad. </div><br />
 I actually kind of agree with their point. I just think they made their point terribly.<br />
 <br />
 It does make a lot of sense to reuse existing code, not just because it's quicker that writing entire methods from scratch, but because (hopefully) you've already tested that code as well.<br />
 <br />
 Obviously there needs to be a balance though, eg if you're having to kludge together code just to make it possible to paste source from another project, then you really should have been writing that code afresh instead of cutting corners.<br />
 <br />
 But on the whole, programming is as much about reusing existing tools to fix new problems as it is about writing new tools too.<br />
<br />
[edit]<br />
<br />
-------------------------------------------------- <br />
<div class="cquote"><b><br />
10. Classes should fit on the screen. (+22/-7) by Jay Bazuzi<br />
</b><br />
If you have to use the scroll bar to see all of your class, your class is too big.<br />
<br />
Code folding and miniature fonts are cheating.<br />
<br />
 </div><br />
hahahaha one of my old college lecturers actually used to teach this.Edited 2012-09-03 22:48 UTC</description>
			<pubDate>Mon, 03 Sep 2012 22:39:00 GMT</pubDate>
			<author>donotreply@osnews.com (Laurence)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533723</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533723</guid>
			<description><div class="cquote">2. If it's not native, it's not really programming </div><br />
  <br />
  Wow, second item and the bullshit-o-meter is already peaking. This is just stupid elitism.<br />
  <br />
  <div class="cquote">The &quot;While&quot; construct should be removed from all programming languages </div><br />
  <br />
  Yeah, because making things artificially difficult is awesome. What language has &quot;Repeat&quot; anyway? Does he mean &quot;for&quot;?<br />
  <br />
  <div class="cquote">Developing on .NET is not programming. Its just stitching together other people's code. </div><br />
  <br />
  I'm nor a fan of nor do I program in .net but this is just more elitist nonsense.<br />
  <br />
  <div class="cquote">The use of try/catch exception handling is worse than the use of simple return codes and associated common messaging structures to ferry useful error messages. </div><br />
  <br />
  And the stupidity just goes on and on. We don't have to code the same way we did in the 80's anymore. Not every language is C. It's called progress.<br />
  <br />
  <div class="cquote">Object Oriented Programming is absolutely the worst thing that's ever happened to the field of software engineering. </div><br />
  <br />
  More elitist nonsense.<br />
  <br />
  <div class="cquote">Making invisible characters syntactically significant in python was a bad idea </div><br />
  <br />
  Yes, readable code is a very bad idea. Or not. Brackets are apparently awesome though.<br />
  <br />
 <div class="cquote">Classes should fit on the screen. </div><br />
 Because everyone's screen is the same size. So if I have a wide monitor standing on the side it's perfectly ok to have a class that's really long?<br />
  <br />
 <br />
  This whole thing is just some C programmer(s) that got butthurt.Edited 2012-09-03 22:48 UTC</description>
			<pubDate>Mon, 03 Sep 2012 22:43:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>...</title>
			<link>http://www.osnews.com/thread?533726</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533726</guid>
			<description><i>What language has &quot;Repeat&quot; anyway?</i><br />
 <br />
 Pascal.<br />
<br />
Oh and in C that would be the do..while cycle.Edited 2012-09-03 23:28 UTC</description>
			<pubDate>Mon, 03 Sep 2012 23:22:00 GMT</pubDate>
			<author>donotreply@osnews.com (Hiev)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: ...</title>
			<link>http://www.osnews.com/thread?533728</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533728</guid>
			<description>Oh right, I had forgot about. Been a long time since I used Pascal.<br />
 I certainly wouldn't say that is a better language construct than &quot;while&quot; though.<br />
<br />
<div class="cquote">Oh and in C that would be the do..while cycle. </div><br />
<br />
Nah, that has the evil word &quot;while&quot; in it. We can't have that <img src="/images/emo/tongue.gif" alt=";)" /> Edited 2012-09-03 23:29 UTC</description>
			<pubDate>Mon, 03 Sep 2012 23:28:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: ...</title>
			<link>http://www.osnews.com/thread?533729</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533729</guid>
			<description>And is not the same, do..while(repeat) will execute the cycle at least once, the while cycle may not get to be executed at all, obviously the guy making such statement is clueless.</description>
			<pubDate>Mon, 03 Sep 2012 23:30:00 GMT</pubDate>
			<author>donotreply@osnews.com (Hiev)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: Scripts</title>
			<link>http://www.osnews.com/thread?533730</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533730</guid>
			<description><div class="cquote">What does that even mean? </div><br />
<br />
It means the guy who said that can't code to save his life.</description>
			<pubDate>Mon, 03 Sep 2012 23:34:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: ...</title>
			<link>http://www.osnews.com/thread?533731</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533731</guid>
			<description>Yeah, the guy is obviously clueless or trolling to be controversial.<br />
<br />
From stackoverflow:<br />
<div class="cquote">One common mistake new programmers make with While is they assume that the code will break as soon as the tested condition flags false. </div><br />
<br />
That's a common mistake? If that's the kind of people he works with I'm afraid of what kind of software they would create.</description>
			<pubDate>Mon, 03 Sep 2012 23:40:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: ...</title>
			<link>http://www.osnews.com/thread?533732</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533732</guid>
			<description><div class="cquote">Yeah, the guy is obviously clueless or <b>trolling to be controversial.</b><br />
 </div><br />
To be honest, I thought that was the whole point of the Stack Overflow thread and the reason for the Bill The Lizard follow up too.<br />
<br />
Nobody said those opinions had to be valid; only that they had to be controversial.</description>
			<pubDate>Mon, 03 Sep 2012 23:59:00 GMT</pubDate>
			<author>donotreply@osnews.com (Laurence)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: ...</title>
			<link>http://www.osnews.com/thread?533734</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533734</guid>
			<description>Well, you can be controversial and make a good point (like 2 of those suggestions) or you can be completely in the wrong and controversial for the sake of being controversial.</description>
			<pubDate>Tue, 04 Sep 2012 00:16:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>C++</title>
			<link>http://www.osnews.com/thread?533735</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533735</guid>
			<description><div class="cquote">9. C (or C++) should be the first programming language (+24/-5) by hansen j<br />
<br />
The first language should NOT be the easy one, it should be one that sets up the student's mind and prepare it for serious computer science.<br />
C is perfect for that, it forces students to think about memory and all the low level stuff, and at the same time they can learn how to structure their code (it has functions!) </div><br />
<br />
As a C++ apologist, I strongly disagree. I didn't start out on C/C++ and I sure as hell bet that all C/C++ proponents started out on simpler languages, even if they refuse to remember or acknowledge the first time they dabbled.<br />
<br />
I started out on BASIC, Q and Casio, and through it learned how to structure complex programs even if the language doesn't seemingly allow it. Then I was forced to learn Pascal during high school because the teacher didn't know C. Of course, also learnt a bit of javascript along the way since making dynamic webpages were the thing to do.<br />
<br />
By this idiot's logic, people should start with assembler. Assembler for modern architectures have a lot of structured programming extensions too. But pedagogy is not the same as bragging rights. The real issue with pedagogy in any language, programming or human, is how to express ideas succintly and concisely.<br />
<br />
<div class="cquote">C++ has the added advantage that it really sucks <img src="/images/emo/smile.gif" alt=";)" />  thus the students will understand why people had to come up with Java and C#. </div><br />
<br />
I admit that it was learning Java at university (course standard, if not requirement) and then Python (self taught) that I understood many important programming and design principles. But those principles were what drew me BACK to C++. Once you read the stuff by Stroustrup and Sutter, they open your eyes to what C++'s proper usage is and how to choose which features not to use for which problems.<br />
<br />
I think all the people who hate C++ are simply reacting out of fear. Early in their experience, they came across a problem they couldn't fix right away. Rather than facing their fears, they just reacted and cower for safety with garbage collection and inheritance and factories up the yin-yang.<br />
<br />
In my experience neither Java or C# solves any problems in C++. They just have better IDEs and graphical debuggers, but that's about it.</description>
			<pubDate>Tue, 04 Sep 2012 00:46:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>OOPs</title>
			<link>http://www.osnews.com/thread?533736</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533736</guid>
			<description><div class="cquote">8. Object Oriented Programming is absolutely the worst thing that's ever happened to the field of software engineering. (+34/-14) by Breton<br />
<br />
The primary problem with OOP is the total lack of a rigorous definition that everyone can agree on. This easily leads to implementations that have logical holes in them, or language like Java that adhere to this bizarre religious dogma about what OOP means, while forcing the programmer into doing all these contortions and &quot;design patterns&quot; just to work around the limitations of a particular OOP system. </div><br />
<br />
Lack of rigorous definition is not a problem with OO. It is the fact that the real world does not play nice with neat concepts and principles. The real world does what it wants and you have to adapt.<br />
<br />
OO is just one of many ways to adapt. Design patterns are another. OO and design patterns are almost orthogonal to each other, and are orthogonal to other concerns like performance or parallelism.<br />
<br />
The design patterns a lot of Java frameworks go for is not because of getting around the limitations of its OO implementation, but because a few zealots spread the meme that everything needed a design pattern for every little thing. Java just happened to be co-opted for it because, in a way, it was designed with design patterns in mind.</description>
			<pubDate>Tue, 04 Sep 2012 00:56:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>My favorites</title>
			<link>http://www.osnews.com/thread?533737</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533737</guid>
			<description>Not particularly controversial but not widely adopted either:<br />
<br />
<div class="cquote">Programs must be written for people to read, and only incidentally for machines to execute. </div>Harold Abelson<br />
<br />
<div class="cquote">[...] when you have an setter on an object you turned it back into a data structure. </div>Alan Kay<br />
<br />
<br />
Any sweeping rules should at most be treated as guidelines. What <i>ultimately</i> matters is the result, not the process.</description>
			<pubDate>Tue, 04 Sep 2012 01:01:00 GMT</pubDate>
			<author>donotreply@osnews.com (ndrw)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533738</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533738</guid>
			<description>Yes, we are living in the future, so stop using exceptions and use maybes/tuples/multiple return values. Or really anything that doesn't turn your execution order into spaghetti.<br />
<br />
Also the OOP opinion was actually very reasonable. The author was lamenting the simple fact that OO is too vague. It's hard to have rationale, scientific discussions about something when the proponents of it can't even agree what they're talking about.</description>
			<pubDate>Tue, 04 Sep 2012 01:04:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: C++</title>
			<link>http://www.osnews.com/thread?533739</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533739</guid>
			<description>I'm a C proponent who started in C++...<br />
<br />
Personally, my (biggest) issue with C++ is that it's simply too large of a language. If you get 10 people who say they know C++ chances are good that the only overlap is going to be the subset of C++ that is C. <br />
<br />
C++ also reinvents a bunch of things from C (such as I/O) and it's debatable whether it actually improved them.<br />
<br />
tl;dr. C++'s flexibility is both its strength and its weakness. It allows you to do all sorts of crazy things, but at the end of the day they're still crazy.</description>
			<pubDate>Tue, 04 Sep 2012 01:13:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: OOPs</title>
			<link>http://www.osnews.com/thread?533741</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533741</guid>
			<description>There's an oft ignored fact that design patterns are really just missing features. Each and every single GoF design pattern is just a language feature. For example, the Command pattern is completely pointless if you have first class functions. Composite and Decorator are just recursive unions (of differing multiplicity.) Adapter, Bridge, and Facade are just use cases for composition. <br />
<br />
I can do this all day, I did a semester project on cross-language implementation comparisons using design patterns as a goal. <br />
<br />
I should probably mention that all languages have &quot;design patterns,&quot; it's completely insane to include every single possible feature in a language (such that you'd have a feature for every macro-structure you can concieve of.)</description>
			<pubDate>Tue, 04 Sep 2012 01:23:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Scripts</title>
			<link>http://www.osnews.com/thread?533742</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533742</guid>
			<description>There are significant downsides to treating the hardware instruction set as a stable programming interface. Logic processors have been stuck on the Von Neumann architecture since the dawn of time because we use static optimizing compilers to target a particular hardware instruction set, and in the case of x86, it's not even a particularly convenient instruction set to implement in hardware.<br />
<br />
Contrast this with the evolution of graphics processors, which support high-level programming interfaces via runtime interpreters plugged into the kernel device driver system which target unstable hardware architectures.<br />
<br />
Over time, the hardware interface moved up the stack as certain operations, such as vertex shading, were factored out of the drivers and implemented in hardware. The programming model didn't change much, but the hardware changed radically.<br />
<br />
Modern graphics processors understand compound data types like pixels, vertices, polygons, textures, and frames. Modern processors are remarkably good at integer arithmetic and boolean logic, but they don't understand the generalized sorted mapping type which dominates the architecture of most software systems.<br />
<br />
Everything from C and UNIX filesystems to Ruby and Cassandra are based on sorted maps. At some point in the development or runtime process, each reference is translated into a key on a sorted map, which is then translated into an address in a flat linear array.<br />
<br />
If not for statically compiled native machine code, the hardware would have evolved closer to the structured programming models that have prevailed since ALGOL, and modern processors would implement an instruction set closer to lua than x86.</description>
			<pubDate>Tue, 04 Sep 2012 01:41:00 GMT</pubDate>
			<author>donotreply@osnews.com (butters)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: C++</title>
			<link>http://www.osnews.com/thread?533743</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533743</guid>
			<description><div class="cquote">Personally, my (biggest) issue with C++ is that it's simply too large of a language. If you get 10 people who say they know C++ chances are good that the only overlap is going to be the subset of C++ that is C. </div><br />
<br />
Yes, but the people who are really proficient with C++ will use the STL, which has no overlap with C, because C simply does not have the facility.<br />
<br />
The biggest issue with C++ are people who come from it from the C perspective and don't use the language features that promote safety. The easiest thing, first of all, is to use vectors and strings rather than arrays. The next easiest is to use RAII rather than dynamic allocation.<br />
<br />
<div class="cquote">C++ also reinvents a bunch of things from C (such as I/O) and it's debatable whether it actually improved them. </div><br />
<br />
I wouldn't call it reinvention. They just OO'd some of the tedious bits.<br />
<br />
<div class="cquote">tl;dr. C++'s flexibility is both its strength and its weakness. It allows you to do all sorts of crazy things, but at the end of the day they're still crazy. </div><br />
<br />
I haven't had to do a crazy thing in C++ at all. Have a look at Qt. Aside from the MOC (which translates to standard C++ anyway), there is nothing crazy with Qt.</description>
			<pubDate>Tue, 04 Sep 2012 01:49:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: OOPs</title>
			<link>http://www.osnews.com/thread?533744</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533744</guid>
			<description>I remember being utterly confused after reading books on OOP back in '90s. Authors often bundled other concepts with OOP, making it almost impossible to figure out what all the fuss is about.<br />
<br />
In particular, OOP has nothing to do with:<br />
- types or access modifiers - that's encapsulation,<br />
- inheritance/mixins - that's code reuse,<br />
- any particular coding style - that's plumbing,<br />
- patterns - that's cooking recipes.<br />
They are all useful techniques, it's just they have nothing to do with OOP.<br />
<br />
Object oriented programming is really about having a bunch of objects (separable entities &quot;living their own lives&quot;) communicating with each other. It's really as simple as that, yet very few OO programs or frameworks fit this definition.<br />
<br />
For example, in another post I mentioned Kay's &quot;setters are evil&quot; rule. Why? For the same reason any mutation is evil. Calling a setter means taking control out of a target object and placing it in the calling one. So the target object is no longer a separate entity and becomes just a dumb storage of fields others may fiddle with - a data structure. This puts the calling object in business of coordinating changes and ensuring consistency of the target object state, which requires a lot more knowledge than just the API.</description>
			<pubDate>Tue, 04 Sep 2012 01:49:00 GMT</pubDate>
			<author>donotreply@osnews.com (ndrw)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533746</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533746</guid>
			<description><div class="cquote">"<i>2. If it's not native, it's not really programming </div><br />
  <br />
  Wow, second item and the bullshit-o-meter is already peaking. This is just stupid elitism. </i>"<br />
<br />
Pseudo-elitism.<br />
<br />
Any interpreted functional language like LISP or Haskell is way harder and sophisticated than most native procedural language like C or even ASM.</description>
			<pubDate>Tue, 04 Sep 2012 02:01:00 GMT</pubDate>
			<author>donotreply@osnews.com (sergio)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: OOPs</title>
			<link>http://www.osnews.com/thread?533748</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533748</guid>
			<description>One of the worst confusion is that UML and OO are interchangeable. It makes it way too easy to over-design a solution to any problem.</description>
			<pubDate>Tue, 04 Sep 2012 02:08:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533751</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533751</guid>
			<description><div class="cquote">Or really anything that doesn't turn your execution order into spaghetti. </div><br />
<br />
Good thing that is impossible to do with return values, eh?<br />
<br />
<div class="cquote">The author was lamenting the simple fact that OO is too vague. </div><br />
<br />
Seriously, what does it matter? As long as the OO model in the language you use makes sense and you know when to use and when not to.</description>
			<pubDate>Tue, 04 Sep 2012 04:12:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533762</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533762</guid>
			<description>None of the things I mentioned do it by default (you have to make the decision to have spaghetti code.) try/catch/finally does it by default. That's the whole reason you people use it.<br />
<br />
The definition of OO matters when we want to have serious discussions about it. It's sort of hard to judge the merits of something that lacks a solid definition.</description>
			<pubDate>Tue, 04 Sep 2012 06:24:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Popcorn anyone?</title>
			<link>http://www.osnews.com/thread?533765</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533765</guid>
			<description>My suggestion: post it to /. and go get a big bowl of popcorn <img src="/images/emo/smile.gif" alt=";)" /></description>
			<pubDate>Tue, 04 Sep 2012 06:56:00 GMT</pubDate>
			<author>donotreply@osnews.com (bitwelder)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: C++</title>
			<link>http://www.osnews.com/thread?533766</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533766</guid>
			<description>Except the STL is almost entirely duplicate functionality. list and map are the only new containers. Everything else is either a duplicate or a minor change away from being a duplicate.<br />
<br />
Vectors don't really make life easier. And RAII is only useful if you're doing OO.<br />
<br />
The C I/O functions work at least as well as C++'s, even on objects.<br />
<br />
Honestly, I think Qt is crazy, but most GUI programming is.</description>
			<pubDate>Tue, 04 Sep 2012 07:11:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533769</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533769</guid>
			<description><div class="cquote">That's the whole reason you people use it. </div><br />
<br />
&quot;you people&quot;?</description>
			<pubDate>Tue, 04 Sep 2012 07:51:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[2]: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533770</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533770</guid>
			<description>As some new to code. I'd like an explanation or a link to one, sounds interesting..</description>
			<pubDate>Tue, 04 Sep 2012 07:56:00 GMT</pubDate>
			<author>donotreply@osnews.com (sherriffwoody)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533771</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533771</guid>
			<description><div class="cquote">try/catch/finally does it by default </div><br />
<br />
Try/catch does not automatically create spaghetti code any more than return values and message structures.</description>
			<pubDate>Tue, 04 Sep 2012 07:57:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: C++</title>
			<link>http://www.osnews.com/thread?533772</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533772</guid>
			<description><div class="cquote">Except the STL is almost entirely duplicate functionality. list and map are the only new containers. Everything else is either a duplicate or a minor change away from being a duplicate. </div><br />
<br />
Set, queue, deque, unordered (hash), heap. If by &quot;minor change&quot; you mean lack of manual memory management, then yeah. But I would call that an improvement.<br />
<br />
Bunch of standard algorithms. Smart pointers. Concurrency.<br />
<br />
Let's not forget that C++ allows things like Boost to happen.<br />
<br />
<div class="cquote">Vectors don't really make life easier. And RAII is only useful if you're doing OO. </div><br />
<br />
So you like having to explicitly allocate and deallocate memory? Even with C99 variable length arrays, you can't easily push or pop or insert or delete items or resize without the possibility of introducing bugs. Then you also have to manually keep track of the length of the array in case you don't use the whole thing.<br />
<br />
<div class="cquote">The C I/O functions work at least as well as C++'s, even on objects. </div><br />
<br />
And?<br />
<br />
<div class="cquote">Honestly, I think Qt is crazy, but most GUI programming is. </div><br />
<br />
Then in no way can you say anything about C++. C++ is designed for complicated things, like GUI programming for example.</description>
			<pubDate>Tue, 04 Sep 2012 08:09:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533773</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533773</guid>
			<description><div class="cquote">"<i>try/catch/finally does it by default </div><br />
<br />
Try/catch does not automatically create spaghetti code any more than return values and message structures. </i>"<br />
<br />
Most try/catch (in Java especially) are for exceptions that normally people don't care enough about anyway, and so they catch them where needed and ignore.<br />
<br />
So in terms of ignoring errors, they're not different. I'd prefer exceptions though if I do want to handle errors.</description>
			<pubDate>Tue, 04 Sep 2012 08:14:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Scripts</title>
			<link>http://www.osnews.com/thread?533792</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533792</guid>
			<description>Well, he didn't said that the CPU or the OS can't be virtual and guest, respectively, but only that the program should be *directly* talking to the CPU and the OS. By such definition, a program whose instructions are *directly* talking to a virtual CPU and an guest OS is still a program, not a script...<br />
<br />
Anyway, less controversial than pseudo-elitism IMHO.</description>
			<pubDate>Tue, 04 Sep 2012 12:22:00 GMT</pubDate>
			<author>donotreply@osnews.com (phoudoin)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: ...</title>
			<link>http://www.osnews.com/thread?533802</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533802</guid>
			<description><div class="cquote">Nobody said those opinions had to be valid; only that they had to be controversial. </div><br />
<br />
That doesn't make any sense either. If you don't need to make sense just for the sake of being controversial, then how about these?<br />
<br />
1. Everyone should always write code using two toes of their choice but only from their left foot.<br />
2. No function should ever be more than 82 lines of code, except on a Tuesday when they should be no more than 81 and 83 lines long.<br />
3. Every single programmer should learn COBOL. No exceptions.<br />
4. Always name your variables as anagrams of the word &quot;hexaphene&quot;<br />
5. Never compile your code after dark.<br />
6. The letter 'y' should be banned from use in Java.</description>
			<pubDate>Tue, 04 Sep 2012 13:11:00 GMT</pubDate>
			<author>donotreply@osnews.com (Vanders)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[6]: ...</title>
			<link>http://www.osnews.com/thread?533805</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533805</guid>
			<description><div class="cquote"><br />
That doesn't make any sense either. If you don't need to make sense just for the sake of being controversial, then how about these?<br />
<br />
1. Everyone should always write code using two toes of their choice but only from their left foot.<br />
2. No function should ever be more than 82 lines of code, except on a Tuesday when they should be no more than 81 and 83 lines long.<br />
3. Every single programmer should learn COBOL. No exceptions.<br />
4. Always name your variables as anagrams of the word &quot;hexaphene&quot;<br />
5. Never compile your code after dark.<br />
6. The letter 'y' should be banned from use in Java. </div><br />
To be fair, you might have valid point with #5. ;-)</description>
			<pubDate>Tue, 04 Sep 2012 13:26:00 GMT</pubDate>
			<author>donotreply@osnews.com (Laurence)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[6]: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533807</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533807</guid>
			<description>Using try/catch for normal control flow is the worst idea ever.</description>
			<pubDate>Tue, 04 Sep 2012 13:29:00 GMT</pubDate>
			<author>donotreply@osnews.com (JAlexoid)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: C++</title>
			<link>http://www.osnews.com/thread?533809</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533809</guid>
			<description><div class="cquote">Yes, but the people who are really proficient with C++ will use the STL, which has no overlap with C, because C simply does not have the facility.  </div><br />
Lets agree on one thing - proficient and intelligent people will use the best available tools and abuse their strengths. This is language independent.<br />
A proficient and intelligent person will take a turd and make diamonds out of the carbon it it.<br />
<br />
Problem with C++ is that it's so wide that finding a group of people that think the same way about C++ is virtually impossible.<br />
<br />
<div class="cquote">I haven't had to do a crazy thing in C++ at all. Have a look at Qt. Aside from the MOC (which translates to standard C++ anyway), there is nothing crazy with Qt. </div><br />
He said allows, it doesn't mean that everyone is doing crazy things. Though C++ developers tend to veer off quite often into crazy stuff.</description>
			<pubDate>Tue, 04 Sep 2012 13:30:00 GMT</pubDate>
			<author>donotreply@osnews.com (JAlexoid)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: Scripts</title>
			<link>http://www.osnews.com/thread?533810</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533810</guid>
			<description><div class="cquote">"<i>What does that even mean? </div><br />
 <br />
 It means the guy who said that can't code to save his life. </i>"<br />
 <br />
 Notice he was also the guy that came up with &quot;If you have to use the scroll bar to see all of your class, your class is too big.&quot;  I hope I never have to work with that guy's code.<br />
<br />
UPDATE: Oh dear god... that guy used to be on Microsoft's C# team.Edited 2012-09-04 13:32 UTC</description>
			<pubDate>Tue, 04 Sep 2012 13:30:00 GMT</pubDate>
			<author>donotreply@osnews.com (sparkyERTW)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: C++</title>
			<link>http://www.osnews.com/thread?533819</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533819</guid>
			<description><div class="cquote">Problem with C++ is that it's so wide that finding a group of people that think the same way about C++ is virtually impossible. </div><br />
<br />
I fail to see why this is a problem. The multi-style nature of C++ is better than trying to cram every problem into an OO or functional or message passing style.<br />
<br />
Conversely, I think you highlighted the best thing about C++ and is certainly one of the design goals Stroustrup had in mind. It allows the programmers to choose the style that fits a problem best.<br />
<br />
I would hope that a person using C++ to write a webserver would have a completely different idea of how to use it to a person who uses C++ to write a game, or a realtime controller, or a stock exchange, or a highly parallel physics simulator, or a compiler.</description>
			<pubDate>Tue, 04 Sep 2012 14:47:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: Comment by Soulbender</title>
			<link>http://www.osnews.com/thread?533835</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533835</guid>
			<description>About what? Error handling? OO being a poorly defined concept that no two people agree on? (well, that's an exaggeration, I'm sure you can find two people who agree; the point is simply that there's a lot of dispute even between proponents.)</description>
			<pubDate>Tue, 04 Sep 2012 16:58:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: C++</title>
			<link>http://www.osnews.com/thread?533837</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533837</guid>
			<description>A better solution is to group styles into different languages.<br />
<br />
That way you have clear definitions of what features to expect. If you have two devs who say &quot;I know X&quot;, it means you can be reasonably sure that they can check each other's work.<br />
<br />
Additionally, say we have a section of code that should be pure (functional.) We can do that in C++, but there's no guarantee that someone won't come by and make it impure. If we instead require a pure language, then this issue never comes up. The restrictions of each language give you guarantees about the characteristics of the code, making it easier to reason about.<br />
<br />
If you have every feature available all the time, then the code quickly and easily becomes more complicated than it has any right to be. You have to manually restrain yourself with C++; you simply don't have to do that with simpler languages.<br />
<br />
Now, I'll admit that cross-talk between languages is currently kind of a pain. Most languages really only interface well with C... and even then not necessarily well. So maybe it makes sense to use C++, for now, but that doesn't mean that C++ isn't an issue.</description>
			<pubDate>Tue, 04 Sep 2012 17:10:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: C++</title>
			<link>http://www.osnews.com/thread?533839</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533839</guid>
			<description>All those containers are duplicates of other containers in the STL. Also, Boost is a nightmare, not a benefit.<br />
<br />
If you can't manage an array, then you have no right to be talking about &quot;complicated things.&quot; Arrays are not difficult things to work with. Push, pop, insert, and delete are all straight forward functions (that C should have defined, but I digress.) Keeping track of the length is also not difficult (and can be managed by the push/pop/insert/delete functions.)<br />
<br />
GUI programming is not crazy because it's complicated, it simply isn't complicated. It's tedious. But more to the point, the current style of GUI programming is crazy because it ignores good coding conventions )such as reduction of coupling.) This is practically a requirement of most GUI frameworks, because they insist on ignoring the fact that they're dealing with a reactive system. Instead of making themselves reactive, they use the event model (which only poorly emulates the desired properties, because it requires explicit handling of events.)</description>
			<pubDate>Tue, 04 Sep 2012 17:36:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: Scripts</title>
			<link>http://www.osnews.com/thread?533844</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533844</guid>
			<description><div class="cquote"><br />
 Notice he was also the guy that came up with &quot;If you have to use the scroll bar to see all of your class, your class is too big.&quot; </div><br />
<br />
I can agree with that, if you are using a 30&quot; monitor and a smallish font.</description>
			<pubDate>Tue, 04 Sep 2012 20:14:00 GMT</pubDate>
			<author>donotreply@osnews.com (zlynx)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[3]: OOPs</title>
			<link>http://www.osnews.com/thread?533852</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533852</guid>
			<description>The only UML diagram I think any one uses regularly is the UML class diagram. That is where the confusion lies.<br />
 <br />
 I haven't really used UML except for class diagrams since university.<br />
 <br />
 We were told not to use Flow Diagrams at University, but they are pretty good for non-developers to see a high level flow of logic and developers can just follow it through in a debugger if need be (Our codebase is very bad).Edited 2012-09-04 20:59 UTC</description>
			<pubDate>Tue, 04 Sep 2012 20:59:00 GMT</pubDate>
			<author>donotreply@osnews.com (lucas_maximus)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: Scripts</title>
			<link>http://www.osnews.com/thread?533854</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533854</guid>
			<description>TBH I think it is a trite way of saying<br />
<br />
&quot;Make sure you aren't putting any unnecessary shit in there.&quot;<br />
<br />
I see a lot of massive classes where some things could have been broken down better via inheritance.</description>
			<pubDate>Tue, 04 Sep 2012 21:07:00 GMT</pubDate>
			<author>donotreply@osnews.com (lucas_maximus)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: C++</title>
			<link>http://www.osnews.com/thread?533863</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533863</guid>
			<description><div class="cquote">I fail to see why this is a problem. The multi-style nature of C++ is better than trying to cram every problem into an OO or functional or message passing style.  </div><br />
<br />
I think I already expressed this from a perspective of a person that has to hire developers to develop and maintain a codebase. <br />
When you are a lone star programmer - C++ is great.<br />
When you have to work with a large group of people - then it becomes a problem.<br />
<br />
And no, there are not two ways of doing things in C++, there are thousands. In short - too many to be good for assembling and maintaining a team.</description>
			<pubDate>Tue, 04 Sep 2012 23:11:00 GMT</pubDate>
			<author>donotreply@osnews.com (JAlexoid)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[6]: C++</title>
			<link>http://www.osnews.com/thread?533866</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533866</guid>
			<description><div class="cquote">All those containers are duplicates of other containers in the STL. Also, Boost is a nightmare, not a benefit. </div><br />
<br />
Only because it's obvious you have no idea how to code C++ properly.<br />
<br />
<div class="cquote">If you can't manage an array, then you have no right to be talking about &quot;complicated things.&quot; Arrays are not difficult things to work with. Push, pop, insert, and delete are all straight forward functions (that C should have defined, but I digress.) Keeping track of the length is also not difficult (and can be managed by the push/pop/insert/delete functions.) </div><br />
<br />
And yet the number one security defect continues to be caused by buffer overruns and other low level array management. It's not about difficulty, it's about SAFETY.<br />
<br />
If you're more concerned about bragging rights rather than doing the Right Thing, you have no right to be programming for a job at all. Why the hell should people waste time writing the same array management stuff over and over again, introducing bugs (even the best of us still do), when we already have a library that does it.</description>
			<pubDate>Tue, 04 Sep 2012 23:31:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[6]: C++</title>
			<link>http://www.osnews.com/thread?533867</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533867</guid>
			<description><div class="cquote">"<i>I fail to see why this is a problem. The multi-style nature of C++ is better than trying to cram every problem into an OO or functional or message passing style.  </div><br />
<br />
I think I already expressed this from a perspective of a person that has to hire developers to develop and maintain a codebase. <br />
When you are a lone star programmer - C++ is great.<br />
When you have to work with a large group of people - then it becomes a problem. </i>"<br />
<br />
And that's the fault of the language is it?<br />
<br />
<div class="cquote">And no, there are not two ways of doing things in C++, there are thousands. In short - too many to be good for assembling and maintaining a team. </div><br />
<br />
As another person pointed out, there is a large overlap between C++ and C. So in practice, most people actually do have similar ideas about C++.<br />
<br />
You're confusing design with code. Programmers will always have different ideas about what DESIGN to use, whatever language it's implemented in.<br />
<br />
Compared to languages like Python and Lisp and Java, C++ is no worse off in the different language facilities that people think of using.</description>
			<pubDate>Tue, 04 Sep 2012 23:35:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[6]: Scripts</title>
			<link>http://www.osnews.com/thread?533868</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533868</guid>
			<description><div class="cquote">&quot;Make sure you aren't putting any unnecessary shit in there.&quot; </div><br />
<br />
I would hope that's not controversial.<br />
<br />
<div class="cquote">I see a lot of massive classes where some things could have been broken down better via inheritance. </div><br />
<br />
Ah but don't you know? OOP is evil incarnate.</description>
			<pubDate>Tue, 04 Sep 2012 23:51:00 GMT</pubDate>
			<author>donotreply@osnews.com (Soulbender)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[7]: Scripts</title>
			<link>http://www.osnews.com/thread?533871</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533871</guid>
			<description>I always love sweeping statements when it comes to programming languages (except for PHP that does deserve a lot of hate IMHO).</description>
			<pubDate>Wed, 05 Sep 2012 00:37:00 GMT</pubDate>
			<author>donotreply@osnews.com (lucas_maximus)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[7]: C++</title>
			<link>http://www.osnews.com/thread?533877</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533877</guid>
			<description><div class="cquote">And that's the fault of the language is it? </div><br />
A problem doesn't mean fault. (See hardware drivers for FOSS OS'es)<br />
Also, you're being defensive.</description>
			<pubDate>Wed, 05 Sep 2012 02:07:00 GMT</pubDate>
			<author>donotreply@osnews.com (JAlexoid)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[8]: C++</title>
			<link>http://www.osnews.com/thread?533878</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533878</guid>
			<description><div class="cquote">"<i>And that's the fault of the language is it? </div><br />
A problem doesn't mean fault. (See hardware drivers for FOSS OS'es)<br />
Also, you're being defensive. </i>"<br />
<br />
Can't see how I can avoid being defensive when I'm writing in defense of C++...<br />
<br />
I just can't believe the fuzzy thinking that goes into tech criticism. Problems with programmers are confused with the problems of the language. Personal preferences are confused with problems of the language. What you call defensive, I call seeking to get people to understand what they're saying rather than just &quot;X is bad because of completely unrelated reasons&quot;.<br />
<br />
* Unlike most other geeks, I don't have a problem with fuzzy thinking in general. I appreciate it for the creativity it can produce, but not for deductive reasoning.</description>
			<pubDate>Wed, 05 Sep 2012 02:37:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[7]: C++</title>
			<link>http://www.osnews.com/thread?533884</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533884</guid>
			<description>Sets, queues, and stacks are all lists. They have slight restrictions, but that's the very definition of &quot;minimal change.&quot; Boost is quite commonly regarded as a major example of terrible software (by the non-C++ using community.)<br />
<br />
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.)</description>
			<pubDate>Wed, 05 Sep 2012 05:40:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[4]: OOPs</title>
			<link>http://www.osnews.com/thread?533903</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533903</guid>
			<description><div class="cquote">The only UML diagram I think any one uses regularly is the UML class diagram. That is where the confusion lies.<br />
 <br />
 I haven't really used UML except for class diagrams since university.<br />
 <br />
 We were told not to use Flow Diagrams at University, but they are pretty good for non-developers to see a high level flow of logic and developers can just follow it through in a debugger if need be (Our codebase is very bad). </div><br />
<br />
Strangely, I think UML class diagrams are perhaps the most useless UML diagram. They're pain to make, class design changes all the time, and thus they're a pain to update.<br />
<br />
Regarding flow diagrams, I find UML sequence diagrams to be a better replacement.<br />
<br />
For me, the trick with UML and any diagramming language is not to go into any detail. Anything more than a brief outline is even more ridiculous to maintain and keep accurate than code itself.</description>
			<pubDate>Wed, 05 Sep 2012 07:24:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[8]: C++</title>
			<link>http://www.osnews.com/thread?533906</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533906</guid>
			<description><div class="cquote">Sets, queues, and stacks are all lists. They have slight restrictions, but that's the very definition of &quot;minimal change.&quot; </div><br />
<br />
Because the C standard lists sets and queues and stacks as part of the libraries...<br />
<br />
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.<br />
<br />
<div class="cquote">Boost is quite commonly regarded as a major example of terrible software (by the non-C++ using community.) </div><br />
<br />
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.<br />
<br />
<div class="cquote">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. </div><br />
<br />
And yet, pointing out the bad habits of C++ developers is not a red herring when criticising C++...<br />
<br />
I'm not even talking about bad habits. I'm talking about SECURITY and SAFETY. Everyone makes mistakes. It's not about bad habits.<br />
<br />
You better not be responsible for any high security systems. You do not have the right attitude for them.</description>
			<pubDate>Wed, 05 Sep 2012 07:32:00 GMT</pubDate>
			<author>donotreply@osnews.com (kwan_e)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[5]: OOPs</title>
			<link>http://www.osnews.com/thread?533944</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533944</guid>
			<description><div class="cquote">Strangely, I think UML class diagrams are perhaps the most useless UML diagram. They're pain to make, class design changes all the time, and thus they're a pain to update. </div><br />
<br />
The IDE can be be configured to provide a set. <br />
<br />
I don't use them for large projects with several thousand files, I used them as documentation for a particular component or set of components.<br />
<br />
They don't necessarily have to be totally up-2-date. As long as I see how the classes fit together it is better than &quot;Find All References&quot; in VS and trying to fit it all together in my head.<br />
<br />
<div class="cquote">Regarding flow diagrams, I find UML sequence diagrams to be a better replacement. </div><br />
<br />
For non-technical people such as Project Managers or a Higher a flow diagram is quite easy to understand.<br />
<br />
<div class="cquote">For me, the trick with UML and any diagramming language is not to go into any detail. Anything more than a brief outline is even more ridiculous to maintain and keep accurate than code itself. </div><br />
<br />
I mostly work with .NET and Front End Web Tech. I find UML mostly redundant for what I do unless it is specifying either class diagrams or part of the ORM for the Data Access Layer.</description>
			<pubDate>Wed, 05 Sep 2012 12:44:00 GMT</pubDate>
			<author>donotreply@osnews.com (lucas_maximus)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE[9]: C++</title>
			<link>http://www.osnews.com/thread?533960</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533960</guid>
			<description>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:<br />
Take your list's add method and wrap it in the following if:<br />
if(!list.contains(item))<br />
<br />
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.<br />
<br />
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.)<br />
<br />
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 &quot;safe&quot; 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.</description>
			<pubDate>Wed, 05 Sep 2012 15:15:00 GMT</pubDate>
			<author>donotreply@osnews.com (satsujinka)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Scripts</title>
			<link>http://www.osnews.com/thread?533965</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533965</guid>
			<description>Also is any program using a I/O library (ie. not talking to OS directly) a script?</description>
			<pubDate>Wed, 05 Sep 2012 16:17:00 GMT</pubDate>
			<author>donotreply@osnews.com (JuEeHa)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>If you need tools to program correctly it is a fail</title>
			<link>http://www.osnews.com/thread?533974</link>
			<guid isPermaLink="true">http://www.osnews.com/thread?533974</guid>
			<description>I agree that exceptions are often ignored when they should be handled with an intelligible error message. <br />
<br />
But I disagree that using error structures is a solution. Firstly it is not reasonable to rely on tooling to verify that all error values are tested. Second it is just awkward to return an error structure with each function. <br />
<br />
At least, the stack trace printed by a logged exception can be used by developers to locate the issue. Not great, but much better than continuing with erroneous data (in the case of an ignored error value)<br />
<br />
I don't think singletons should be used. If you think you need one, use a function which returns an unique object- at least you have the option to generate more of this object if needed, while if you use a real singleton this is not possible.</description>
			<pubDate>Wed, 05 Sep 2012 18:39:00 GMT</pubDate>
			<author>donotreply@osnews.com (jido)</author>
			<category>Comments</category>
		</item>
	</channel>
</rss>
