Well, it's a wrong opinion. Think about it again and you will see why angle brackets are chosen.
"I also think that ! would make at least as much sense for destructors as ~ but look nicer"
~ is much easier to spot than !.
"Because we don't all use major toolkits. "
Why don't you blame the designer of the code you are using then, instead of blaming the language?
"If I call baseclass->mymethod() and mymethod is virtual, typically I expect it to call the subclass if baseclass is actually an instance of subclass. "
You are not calling "baseclass->method()", you are calling "baseclass->method(data)".
"C# solved this problem by forcing you to be explicit about overrides."
It's a non-problem.
"I know it is. It's still an annoyance that I'd rather avoid."
Perhaps you also want the computer to understand English to write the code for you?
"I thought the point was that it was obvious."
The point of code that the will be executed after the exception is not obvious in any language.
"Just because I can't come up with a better way doesn't mean there isn't one and it doesn't mean I can't consider it unwieldy."
Yes, there isn't one. Believe me. Try to make a programming language and you will see.
"Well, if I see some well formed template code I'll let you know..."
You should have already let me know, because there is plenty of well formed template code around...
" are used for greater than, less than and bitwise shifts"
But are not brackets; the rest ((), [], {}) must be always paired. It makes a lot more sense to use ,
"Square brackets would make more sense"
To you, maybe.
"and not require special handling when you nest them."
How come? the grammar would still be ambiguous.
"What does that parameter do in the operator overload? Which one is a preincrement overload and which is the postincrement? "
Nothing, the parameter is there to tell the postfix operation from the prefix operation. It's not so bad that requires a slashdot comment. Would you prefer a keyword?
"Not all of us are lucky enough to only use our own code."
No major toolkit uses multiple inheritance. I don't know why you are bitching about it.
"base class contains virtual mymethod(int param=0). Subclass contains virtual mymethod(). Calling mymethod() gives different results if you call it on the subclass or the baseclass."
And that's how it's supposed to work. The opposite is not just possible.
"Extra level of nesting"
It's necessary because the statements inside the try block need to be a different block from the rest of the code.
"and not immediately obvious where the code will jump to"
That's the point of exceptions.
"Like I say, it's useful, but there has to be a better way to do this."
Oh yeah? you are the smart one to discredit all language designers that came before you? please show us the better way to do this.
How do they expect to buy their expensive products, when they cut our paychecks? the current economic crisis is not a joke. Many people become unemployed, each minute we talk about it, and many people accept paycheck cuts in order to keep their jobs. How are we supposed to buy expensive new cool stuff?
Amen brother. How very true. Unfortunately, while you should have been modded "5, insightful", that accolade went to other posters that blame the language with very weak arguments.
Your post is extremely provocative, to the point that one can suspect you are totally ignorant of C++.
"but the reality is you have a jumble of constructs and tools that can easily be used wrong (and often are by novices and intermediate developers)."
My 4 co-workers, that work on iPhone applications, are still struggling with Obj-C memory management bugs, while I've successfully manage 250,000 lines of c++ code alone without any memory management problem in sight.
If there is a language with a jumble of constructs and tools, that is Obj-C (the language that you must alloc and init your objects separately, and then you have to manually count references by using acquire and release).
"I daresay you could teach an intermediate coder how to do OO in straight C and get better results than if they were trying to use C++."
Yeah, and write all those vtables by hand. And then maintain them.
"And yeah, I'm in the camp of "Obj-C is better than C++"."
You are totally ignorant of modern C++. And with the new C++ that supports move semantics, C++ kicks Obj-C's ass big time in performance and safety.
"C++ really needs to die. Any further energy spent on C++ needs instead to be put into JVM and other abstraction technologies."
You are totally ignorant then of how much C++ is still needed.
"Performance is excellent (close to C, which with a good compiler is close to hand-written assembly in most cases) "
Performance is actually equal to C for the same type constructs. If you use no virtual functions, for example, member function calls are C calls, in reality.
You are exaggerating. Finding the appropriate function in modern IDEs is as simple as either doing text search over the function name or use autocomplete to guide you to the correct function.
Would you prefer a language that doesn't have overloading? then you would have to specify lots of different functions, all with the same purpose, but with different names. GTK is an example of this: create_button, create_button_with_text, create_button_with_text_and_image, create_button_with_image, etc.
COBOL and FORTRAN are very good languages for their problem domain. That's why they succeeded. C++ is an extremely good language, for its problem domain: writing "large" software where performance is critical.
It does not matter if it's difficult to get into. Every good language is difficult to get into. Haskell, the uber language, is one of the most difficult languages to get into, but when you get it, you are extremely productive with it.
but we all have occasions where we need to stop in a bus zone for a minute to drop something off, or realize that we left our change in our other pants and can't pay the meter
"Your Honor, I am not responsible for the accident, I had just forgotten to turn on the lights that night."
"Dear sirs, we are not responsible for the plane explosion, our engineer has simply forgotten to tighten a bolt."
"Your Honor, our company is not responsible for the poisoning of those people, we had just forgotten to clear up the material from the poisonous chemical"...etc
Since when forgetting something is recognized by the law?
If the majority decides bank robbery is okay, then you should probably investigate why and will likely have to change the way banks opperate.
And if 99% of the population likes to rob banks, then you should probably make robbing banks legal.
The world changes constantly therefore moral values change constantly. Laws should reflect the current moral values of society, not what was once decided many decades ago.
Bullshit. First of all, there are some moral standards throughout the centuries and cultures, and one of them is that theft is not ok. Secondly, the current moral values of society may be wrong. Remember Galileo?
No, it doesn't.
Many times this WILL be the truth, but you cannot honestly believe that somebody who downloads a dozen movies every week would pay for all those movies if he could not download them.
1 copy != 1 lost sale.
Bullshit, and yes it is, with a big fucking YES. Maybe not all movie downloads are lost sales, but it's not that all movie downloads are not lost sales. In other words, some of the downloads are indeed lost sales.
Again, no. For the plain and simple logical reason that "value" is subjective. The person copying may value something at 0$, but that doesn't mean other people will value it similarly.
Bullshit, and big one, that is. You are not a serious person, are you? and you were modded 5, insightful...Jesus Christ. The value you assign to the movie is not the actual economic value of the movie. You may not like a movie, but you can't just dismiss all the work that has been done to produce the movie. Lots of people have worked on a movie that you say it's a shitty movie, but that doesn't give you any right to illegally enjoy it.
No. A lower valuation does not directly relate to financial harm.
Bullshit. So, if I can valuate your house at 1 dollar, am I entitled to take it?
No. The net effect may be neutral or even possitive given an increase in popularity. i.e. MS-DOS.
Bullshit. Yes, it may be neutral, or even positive, but it is usually negative. But it doesn't matter if it's not negative or not. You must be ashamed of yourself for thinking in this way. Murdering an equal amount of women and men does not make murder equal, even if the net effect is that the proportion of men to women will not change.
Not "everything", merely the few highschool economics books that you've been reading.
Economics is far more complex than you describe.
And you, sir, are a MORON. You should be ashamed of yourself. I am ashamed of you. It's just unbelievable that one can think that he can take anything he wants. And all you people that modded him insightful, you must be ashamed of yourselves.
The real reason that HTML5 is not ready yet is the nature of HTML: it is a set of instructions that must be interpreted with 100% accuracy from all involved parties, which is something extremely difficult, if not outright impossible.
If HTML was an API, then its behavior would depend on the API's implementation, which is much easier to fix than a specification: an API is a testable specification, because it's code that can run and be tested; an on-paper specification cannot be executed until it is transformed to code.
The only realistic solution is to make HTML an API for a programming language that the browser understands. In this way, the meaning of each tag and of each attribute will be completely defined by code, and thus it will be much easier to change or throw away.
Imagine having to do window management on a device like that, stuff you don't even have to bother about on iOS or Android OS.
You don't have to do window management if you work with maximized windows.
Imagine an OS where lots of apps aren't designed for e.g. changed dpi settings (to at least be able to put your thumb on a maximize widget and not hit the restore widget!)
The size of the maximize/minimize/restore buttons is independent of the DPI. You can set it to whatever you like by changing the size of the window caption.
Imagine how no text box in the OS will automatically pop up a virtual keyboard
It can be done on Windows, there are various events that can be used for that: textbox focus, caret creation/transfer etc. It's only when an app uses very low level methods to handle textbox focus and caret redraw that this will not work, but you can't blame Windows on that.
and that the built-in Windows 7 virtual keyboard that's there consumes a third of the entire display on a 1024x600 touch screen.
Microsoft can make it smaller, if they find the current size is unusable.
That's where Windows 7 is today, at best. They haven't even thought about how you're supposed to *use* Windows 7 as a touch OS yet, it's just a cobbled together mess of mouse interfaces, touch-oriented keyboards, small widgets, and API's for multi-touch features
Fud, fud, and more fud. Windows 7 can easily be operated as a pad operating system, because a pad has a large screen.
Personally, I'd prefer a Windows 7 pad over an iPad any day.
Do you think that MS is incapable of producing the absolutely bestest browser of all times? they can, but they don't want. They want vendor lock in. A 100% standards conforming browser will be bad for their business.
But the OPEC countries which you did not include contain the Persian Gulf countries Iran, Iraq, Kuwait, Qatar, Saudi Arabia, the United Arab Emirates amongst others. It's more like USA gets a lot more of its oil from countries around the Persian Gulf: according to your link, it's 17% from Persian gulf countries and 48% from OPEC countries.
So it seems that USA is a lot more dependent on Persian Gulf oil than you imply.
A theory of everything will be a set of mathematical laws, based on some axioms. These axioms will not be proven, but it does not matter. What matters is that this theory will describe every phenomenon.
"This is my opinion"
Well, it's a wrong opinion. Think about it again and you will see why angle brackets are chosen.
"I also think that ! would make at least as much sense for destructors as ~ but look nicer"
~ is much easier to spot than !.
"Because we don't all use major toolkits. "
Why don't you blame the designer of the code you are using then, instead of blaming the language?
"If I call baseclass->mymethod() and mymethod is virtual, typically I expect it to call the subclass if baseclass is actually an instance of subclass. "
You are not calling "baseclass->method()", you are calling "baseclass->method(data)".
"C# solved this problem by forcing you to be explicit about overrides."
It's a non-problem.
"I know it is. It's still an annoyance that I'd rather avoid."
Perhaps you also want the computer to understand English to write the code for you?
"I thought the point was that it was obvious."
The point of code that the will be executed after the exception is not obvious in any language.
"Just because I can't come up with a better way doesn't mean there isn't one and it doesn't mean I can't consider it unwieldy."
Yes, there isn't one. Believe me. Try to make a programming language and you will see.
"Well, if I see some well formed template code I'll let you know..."
You should have already let me know, because there is plenty of well formed template code around...
" are used for greater than, less than and bitwise shifts"
But are not brackets; the rest ((), [], {}) must be always paired. It makes a lot more sense to use ,
"Square brackets would make more sense"
To you, maybe.
"and not require special handling when you nest them."
How come? the grammar would still be ambiguous.
"What does that parameter do in the operator overload? Which one is a preincrement overload and which is the postincrement? "
Nothing, the parameter is there to tell the postfix operation from the prefix operation. It's not so bad that requires a slashdot comment. Would you prefer a keyword?
"Not all of us are lucky enough to only use our own code."
No major toolkit uses multiple inheritance. I don't know why you are bitching about it.
"base class contains virtual mymethod(int param=0). Subclass contains virtual mymethod(). Calling mymethod() gives different results if you call it on the subclass or the baseclass."
And that's how it's supposed to work. The opposite is not just possible.
"Extra level of nesting"
It's necessary because the statements inside the try block need to be a different block from the rest of the code.
"and not immediately obvious where the code will jump to"
That's the point of exceptions.
"Like I say, it's useful, but there has to be a better way to do this."
Oh yeah? you are the smart one to discredit all language designers that came before you? please show us the better way to do this.
How do they expect to buy their expensive products, when they cut our paychecks? the current economic crisis is not a joke. Many people become unemployed, each minute we talk about it, and many people accept paycheck cuts in order to keep their jobs. How are we supposed to buy expensive new cool stuff?
You don't know c++ yet to criticize it. Go back to making useful applications and then come back to talk.
Amen brother. How very true. Unfortunately, while you should have been modded "5, insightful", that accolade went to other posters that blame the language with very weak arguments.
Your post is extremely provocative, to the point that one can suspect you are totally ignorant of C++.
"but the reality is you have a jumble of constructs and tools that can easily be used wrong (and often are by novices and intermediate developers)."
My 4 co-workers, that work on iPhone applications, are still struggling with Obj-C memory management bugs, while I've successfully manage 250,000 lines of c++ code alone without any memory management problem in sight.
If there is a language with a jumble of constructs and tools, that is Obj-C (the language that you must alloc and init your objects separately, and then you have to manually count references by using acquire and release).
"I daresay you could teach an intermediate coder how to do OO in straight C and get better results than if they were trying to use C++."
Yeah, and write all those vtables by hand. And then maintain them.
"And yeah, I'm in the camp of "Obj-C is better than C++"."
You are totally ignorant of modern C++. And with the new C++ that supports move semantics, C++ kicks Obj-C's ass big time in performance and safety.
"C++ really needs to die. Any further energy spent on C++ needs instead to be put into JVM and other abstraction technologies."
You are totally ignorant then of how much C++ is still needed.
"Performance is excellent (close to C, which with a good compiler is close to hand-written assembly in most cases) "
Performance is actually equal to C for the same type constructs. If you use no virtual functions, for example, member function calls are C calls, in reality.
It depends...if they have a public interface.
"and totally unreadable"
That's highly subjective. I never had any problem reading template code that is well formed.
"and why use the triangular brackets!?"
Because [] are taken for array, () are taken for functions and expressions and {} are taken for array/struct literals and blocks.
"The syntax to differentiate pre and post increment seems completely arbitrary"
Arbitrary in what degree? the whole language is arbitrary, in the way you put it. It was conceived in the mind of Stroustrup.
"and the headaches caused by multiple inheritance"
You don't have to use multiple inheritance, if you don't like it. It's not mandatory.
"and default parameters"
I've read all criticism there is online about c++, but I never saw anything about default parameters. What is your problem with them?
"The try/catch construct is also useful but it feels so unwieldy."
What's so unwieldy in it? if it could be implemented in any way that is more efficient, it would.
You are exaggerating. Finding the appropriate function in modern IDEs is as simple as either doing text search over the function name or use autocomplete to guide you to the correct function.
Would you prefer a language that doesn't have overloading? then you would have to specify lots of different functions, all with the same purpose, but with different names. GTK is an example of this: create_button, create_button_with_text, create_button_with_text_and_image, create_button_with_image, etc.
COBOL and FORTRAN are very good languages for their problem domain. That's why they succeeded. C++ is an extremely good language, for its problem domain: writing "large" software where performance is critical.
It does not matter if it's difficult to get into. Every good language is difficult to get into. Haskell, the uber language, is one of the most difficult languages to get into, but when you get it, you are extremely productive with it.
but we all have occasions where we need to stop in a bus zone for a minute to drop something off, or realize that we left our change in our other pants and can't pay the meter
"Your Honor, I am not responsible for the accident, I had just forgotten to turn on the lights that night."
"Dear sirs, we are not responsible for the plane explosion, our engineer has simply forgotten to tighten a bolt."
"Your Honor, our company is not responsible for the poisoning of those people, we had just forgotten to clear up the material from the poisonous chemical"...etc
Since when forgetting something is recognized by the law?
So your solution is to not have any sort of control systems anywhere, because someday some dictator might take advantage of it?
It's like having a headache and cutting off the head to cure the problem.
It's just a bunch of programs with the required knowledge embedded in them. No new knowledge is produced by them.
So? did those parents let their kids do criminal activity? sure they did. They have to pay the price.
I hope all political parties support this law.
If the majority decides bank robbery is okay, then you should probably investigate why and will likely have to change the way banks opperate. And if 99% of the population likes to rob banks, then you should probably make robbing banks legal. The world changes constantly therefore moral values change constantly. Laws should reflect the current moral values of society, not what was once decided many decades ago.
Bullshit. First of all, there are some moral standards throughout the centuries and cultures, and one of them is that theft is not ok. Secondly, the current moral values of society may be wrong. Remember Galileo?
No, it doesn't. Many times this WILL be the truth, but you cannot honestly believe that somebody who downloads a dozen movies every week would pay for all those movies if he could not download them. 1 copy != 1 lost sale.
Bullshit, and yes it is, with a big fucking YES. Maybe not all movie downloads are lost sales, but it's not that all movie downloads are not lost sales. In other words, some of the downloads are indeed lost sales.
Again, no. For the plain and simple logical reason that "value" is subjective. The person copying may value something at 0$, but that doesn't mean other people will value it similarly.
Bullshit, and big one, that is. You are not a serious person, are you? and you were modded 5, insightful...Jesus Christ. The value you assign to the movie is not the actual economic value of the movie. You may not like a movie, but you can't just dismiss all the work that has been done to produce the movie. Lots of people have worked on a movie that you say it's a shitty movie, but that doesn't give you any right to illegally enjoy it.
No. A lower valuation does not directly relate to financial harm.
Bullshit. So, if I can valuate your house at 1 dollar, am I entitled to take it?
No. The net effect may be neutral or even possitive given an increase in popularity. i.e. MS-DOS.
Bullshit. Yes, it may be neutral, or even positive, but it is usually negative. But it doesn't matter if it's not negative or not. You must be ashamed of yourself for thinking in this way. Murdering an equal amount of women and men does not make murder equal, even if the net effect is that the proportion of men to women will not change.
Not "everything", merely the few highschool economics books that you've been reading. Economics is far more complex than you describe.
And you, sir, are a MORON. You should be ashamed of yourself. I am ashamed of you. It's just unbelievable that one can think that he can take anything he wants. And all you people that modded him insightful, you must be ashamed of yourselves.
The real reason that HTML5 is not ready yet is the nature of HTML: it is a set of instructions that must be interpreted with 100% accuracy from all involved parties, which is something extremely difficult, if not outright impossible.
If HTML was an API, then its behavior would depend on the API's implementation, which is much easier to fix than a specification: an API is a testable specification, because it's code that can run and be tested; an on-paper specification cannot be executed until it is transformed to code.
The only realistic solution is to make HTML an API for a programming language that the browser understands. In this way, the meaning of each tag and of each attribute will be completely defined by code, and thus it will be much easier to change or throw away.
Imagine having to do window management on a device like that, stuff you don't even have to bother about on iOS or Android OS.
You don't have to do window management if you work with maximized windows.
Imagine an OS where lots of apps aren't designed for e.g. changed dpi settings (to at least be able to put your thumb on a maximize widget and not hit the restore widget!)
The size of the maximize/minimize/restore buttons is independent of the DPI. You can set it to whatever you like by changing the size of the window caption.
Imagine how no text box in the OS will automatically pop up a virtual keyboard
It can be done on Windows, there are various events that can be used for that: textbox focus, caret creation/transfer etc. It's only when an app uses very low level methods to handle textbox focus and caret redraw that this will not work, but you can't blame Windows on that.
and that the built-in Windows 7 virtual keyboard that's there consumes a third of the entire display on a 1024x600 touch screen.
Microsoft can make it smaller, if they find the current size is unusable.
That's where Windows 7 is today, at best. They haven't even thought about how you're supposed to *use* Windows 7 as a touch OS yet, it's just a cobbled together mess of mouse interfaces, touch-oriented keyboards, small widgets, and API's for multi-touch features
Fud, fud, and more fud. Windows 7 can easily be operated as a pad operating system, because a pad has a large screen.
Personally, I'd prefer a Windows 7 pad over an iPad any day.
The taskbar in Windows 95 and quick launch was stolen from the NextStep dock.
The NextStep dock was stolen from the Risc O/S.
Do you think that MS is incapable of producing the absolutely bestest browser of all times? they can, but they don't want. They want vendor lock in. A 100% standards conforming browser will be bad for their business.
But the OPEC countries which you did not include contain the Persian Gulf countries Iran, Iraq, Kuwait, Qatar, Saudi Arabia, the United Arab Emirates amongst others. It's more like USA gets a lot more of its oil from countries around the Persian Gulf: according to your link, it's 17% from Persian gulf countries and 48% from OPEC countries.
So it seems that USA is a lot more dependent on Persian Gulf oil than you imply.
A theory of everything will be a set of mathematical laws, based on some axioms. These axioms will not be proven, but it does not matter. What matters is that this theory will describe every phenomenon.
The most important achievement of humanity...and the official records are destroyed.
If that does not smell hoax, I don't know what does...!!!
The GUI was actually invented by Dag Engelbart: http://inventors.about.com/library/weekly/aa081898.htm
So you are advocating people not being compensated enough for their efforts? Because if you have 1 billion pirates, then your effort is worth a lot.