I'd wager that any well-written Python software (isn't it all) will outperform any poorly written C++ program
Possible, but that C++ program would have to written
extremely poorly, almost to the point of being written intentionally to run slow.
For the record, I never said "you should never optimize". I said "you should never optimize unless you have to".
And I never said "you should always optimize". I said "you should always optimize if you need to". For modern applications, you don't need to optimize much. For simple games, you don't need to optimize much. For complex games that make full use of your PC's power, you do.
#6 It's not something I believe. It's something I can prove. For the same price of one software engineers day, you can buy the most ridiculously overpowered PC you can imagine.
Well that's wonderful from the software developer's perspective. Unfortunately most users can't always afford top-end PCs.
If user's time is so valuable - why don't they want to pay to optimize?
Who says they don't? If given a choice between a game that runs and plays great for $50, and a game that runs and plays horrible for $10, I'd choose the $50 game. But maybe that's just me.
#5 And it's true to. The least Mr. Hyde (is life too weird or what?) could do was provide evidence as to how he thinks one should profile a SOA driven multithreaded application, with hundreds of concurrent users, all wanting to do different things. Yes I'm aware that in your cute little Unix-like commandline tool, or pong game, you can fairly accurately profile the bottlenecks, but in any serious application, the complexity is too high to do so effectively.
As with most of your responses to the articles, it seems to me that you are totally misunderstanding. Here's the original point again:
Observation #5: Software engineers have been led to believe that they are incapable of predicting where their applications spend most of their execution time. Therefore, they don't bother improving performance of sections of code that are obviously bad because they have no proof that the bad section of code will hurt overall program performance.
The point made here is that (regardless of programming language) many developers fail to optimize portions of their code that they normally should "instinctually" know will be a bottleneck. In no way does this reference profiling your code, in fact, it's referring to the opposite.
Let me just eliminate this myth once and for all. Unless you have an intimate understanding of how your compiler (regardless of language) translates your source code into binary code, and likewise have an intimate understanding of all your build targets (including hardware and operating system quirks) there is no way you can effectively optimize a program.
You seem to think the word "optimize" automatically means CPU-level optimizations. It is useless and impractical to perform CPU-level optimizations unless you're using assembly, as you put it, "...there is no way you can effectively optimize a program" in this way.
A compiler-level optimization isn't useless though. For example, comparing the speed difference between an identical C++ and Python program, will demonstrate this point well.
Algorithm-level optimization is obviously the most important kind of optimization, but you seem to be making the incorrect assumption that C++ programmers use bad/buggy algorithms, while Python/C# programmers use perfect/100%-bug-free algorithms. Either that or you strongly believe that there's some evil nature to the C++ language that inherently introduces bugs into your software.
True, C++ can result in more low-level bugs if you don't know what you're doing, but every programmer should know that it's the logic bugs that really cause problems. And not even the most modern high-level language can prevent logic bugs.
For example in one part of my engine dynamically adding trees to the optimization system would sometimes result in those trees not being displayed. It turns out that this bug was basically a simple +/- mismatch and the wrong vertex buffer page was being marked for update. Whether I used C++ or Python to implement this, the same thing would have happened.
P.S. From the BRL terms and conditions:
Also, the use of foul language will not be tolerated. Messages found with this language will be deleted, and multiple offenders will be removed from the system.
No offense, but I don't want you to get banned or anything over this conversation.