You'd prefer having to specify that you're printing a long long and not a short rather than letting the compiler figure that out for you (through operator overloading)? You'd prefer having to waste time looking up format specifiers or waste brain power remember them?
They're only countless if you're a compiler developer or a standard library author. You can definitely count the features if you're just an end user programmer. Here they are:
That's three things that you need to know. The most interesting of the three is the container/algorithm duality. Just look at Sean Parent here replace a page and a half of code C-like C++ code with 5 lines of proper C++ https://www.youtube.com/watch?... using nothing but algorithms.
I'd argue you'd actually need to learn LESS in order to learn what algorithms such as rotate or stable_partition do than having to write it out all the time.
The operator overloading argument is nonsense. You can say the exact same thing about any kind of function overloading. In Java, ArrayList.add is a completely different method to HashSet.add. You would similarly have to look up the type of object you're calling the add method of to figure out what it does. And even then you're not guaranteed that name is an accurate description of what it does. This is nothing to do with C++ but name overloading in general. For example, you can rewrite your example using no operators: assign(i, multiply(j, 5)) and you will still not know what it does without looking at the types of the arguments and the specification of the functions.
Name overloading of any sort is essential if you want a language to support generic code easily and cleanly. Otherwise you get the even worse C macro hacks that don't blow up on compile. Templates blow up on compile, and once you stop being afraid of it, it actually makes generic coding a lot easier to manage than macros.
This leads to the question of whether there will be some sort of sweeping federal action in Tesla's favor.
I'd say that's a poor choice of wording. If any such action was taken, it would be AGAINST dealers. It won't be in favour of any single company. It should be fair for all.
Fear driven development leads to anger driven development. Anger driven development leads to hate driven development. Hate driven development leads to buffering (and security defects).
Science requires all the things that religions purport to be interested in: honesty, trust, humility, even a measure of self sacrifice, but it does it better than religions because of interpersonal accountability.
My response that atheists needs something to believe in: believe in the future of humanity.
It doesn't actually exist. It has psychotic tendencies. It may reward or punish us on a whim, but we can hope that it will work out okay.
C++ has inheritance, but it is not virtual inheritance by default. Then you have templates, which give you polymorphism without inheritance, which is what makes std::vector and std::sort even faster than C in a lot of cases.
I've been spending a lot of time in C++11 and I can tell you short script programs are almost as easy as python to write. The only thing lacking is standard library support for networking, graphics and databases. C++11 does have type inference now, which is one of the reasons why it's now faster to write C++ than ever before. Actually, C++ has had type inference when templates were introduced, but it just wasn't available outside of templates like auto does now.
Did you even read a word I wrote, or do you think anyone who doesn't agree with you must be siding with the Chinese government?
There have been other protests and troubles since Tiananmen, and they have been largely avoiding another incident. Even the mess with the Uighurs right now. Where do you see the tanks rolling in? Do you realize parts of the country continue to open up in terms of economics AND freedom? Why did you ignore my example of Bo Xilai?
And speaking of Tiananmen, do you even understand why that even happened? They weren't doing it because they were being classical dictator villains hell bent on bending people to their will. They did it because the leaders were actually scared the protests could turn into real rebellions that would topple their power. Especially Deng Xiaoping, who was purged twice before due to the Cultural Revolution, which was in its own way a rebellion.
You need to understand Chinese political history before making assumptions that it works like a European nation. China never had the mentality of a divine right of kings.
It doesn't have any checks and balances to prevent corruption. However, those who are corrupt enough to cause trouble for the government can expect to be executed.
The firewall, I think even the Chinese government knows it's ineffective, and it certainly knows people can get around it easily enough.
As for "bend them to its will", no government can do that. It can suppress, and the Chinese government can do that quite well. But it knows well enough that if it suppresses too much, there would rebellion. The threat of rebellion runs all through Chinese history and there's always the millennia old cultural inheritance of the concept of righteous rebellion that not even the Chinese government can ignore. This was the case even during the Cold War. Why do you think they went after the Gang of Four over the Cultural Revolution?
Uh, no. You don't know how China works. Look what happened to Bo Xilai. China's ruling party has real problems, so there's no need to keep pandering to Cold War era myths about how the Chinese government operates.
The ruling party has a lot of engineers and technical people, but the corner cutting happens mostly in the construction and manufacturing industries. No, what the higher ups do is not cutting corners, but filling those industries with people they think they can get bribed from. And the mass suppression before protests get out of hand (ie, start being effective).
No, because in Java you declare variables to have types. In JS, you only get var. Seriously, if you used any JS heavy webpage, you'd know it slows down to a crawl. You can't heavily optimize JS arrays, for instance because you can't be sure of their member types until the last moment, no matter how much analysis you do.
Yes we can. With auto and lambda and implicit move semantics, you can write a lot of C++ in interesting ways without shooting yourself in the foot. You can almost get down to python's simplicity for really common tasks.
1. What would "entirely in C++" look like? It would look a lot like C. And there will always be some necessary assembler stuff.
4. I would say look at Qt. You can write pretty complicated graphical applications in fewer lines.
And what's stopping someone from naming a function that has nothing to do with the meaning of its name? It's the same problem.
You'd prefer having to specify that you're printing a long long and not a short rather than letting the compiler figure that out for you (through operator overloading)? You'd prefer having to waste time looking up format specifiers or waste brain power remember them?
They're only countless if you're a compiler developer or a standard library author. You can definitely count the features if you're just an end user programmer. Here they are:
Constructor/destructor pairs, containers/algorithms, lambda expressions.
That's three things that you need to know. The most interesting of the three is the container/algorithm duality. Just look at Sean Parent here replace a page and a half of code C-like C++ code with 5 lines of proper C++ https://www.youtube.com/watch?... using nothing but algorithms.
I'd argue you'd actually need to learn LESS in order to learn what algorithms such as rotate or stable_partition do than having to write it out all the time.
The STL of today is different from what you started with. If you need to non-mangled names, there's still extern C to create an API boundary.
The operator overloading argument is nonsense. You can say the exact same thing about any kind of function overloading. In Java, ArrayList.add is a completely different method to HashSet.add. You would similarly have to look up the type of object you're calling the add method of to figure out what it does. And even then you're not guaranteed that name is an accurate description of what it does. This is nothing to do with C++ but name overloading in general. For example, you can rewrite your example using no operators: assign(i, multiply(j, 5)) and you will still not know what it does without looking at the types of the arguments and the specification of the functions.
Name overloading of any sort is essential if you want a language to support generic code easily and cleanly. Otherwise you get the even worse C macro hacks that don't blow up on compile. Templates blow up on compile, and once you stop being afraid of it, it actually makes generic coding a lot easier to manage than macros.
You have to give him some credit for supporting same sex marriage.
They already allowed Scotland's previous demands for their own parliament. Why would they renege?
This leads to the question of whether there will be some sort of sweeping federal action in Tesla's favor.
I'd say that's a poor choice of wording. If any such action was taken, it would be AGAINST dealers. It won't be in favour of any single company. It should be fair for all.
Fear driven development leads to anger driven development. Anger driven development leads to hate driven development. Hate driven development leads to buffering (and security defects).
Science requires all the things that religions purport to be interested in: honesty, trust, humility, even a measure of self sacrifice, but it does it better than religions because of interpersonal accountability.
My response that atheists needs something to believe in: believe in the future of humanity.
It doesn't actually exist. It has psychotic tendencies. It may reward or punish us on a whim, but we can hope that it will work out okay.
So they admitted to doing business in Poland, Russia and Mexico. Big deal.
Or they can just make a complaint to the relevant authorities and the matter will be settled in their favour.
C++ has inheritance, but it is not virtual inheritance by default. Then you have templates, which give you polymorphism without inheritance, which is what makes std::vector and std::sort even faster than C in a lot of cases.
I've been spending a lot of time in C++11 and I can tell you short script programs are almost as easy as python to write. The only thing lacking is standard library support for networking, graphics and databases. C++11 does have type inference now, which is one of the reasons why it's now faster to write C++ than ever before. Actually, C++ has had type inference when templates were introduced, but it just wasn't available outside of templates like auto does now.
Did you even read a word I wrote, or do you think anyone who doesn't agree with you must be siding with the Chinese government?
There have been other protests and troubles since Tiananmen, and they have been largely avoiding another incident. Even the mess with the Uighurs right now. Where do you see the tanks rolling in? Do you realize parts of the country continue to open up in terms of economics AND freedom? Why did you ignore my example of Bo Xilai?
And speaking of Tiananmen, do you even understand why that even happened? They weren't doing it because they were being classical dictator villains hell bent on bending people to their will. They did it because the leaders were actually scared the protests could turn into real rebellions that would topple their power. Especially Deng Xiaoping, who was purged twice before due to the Cultural Revolution, which was in its own way a rebellion.
You need to understand Chinese political history before making assumptions that it works like a European nation. China never had the mentality of a divine right of kings.
It doesn't have any checks and balances to prevent corruption. However, those who are corrupt enough to cause trouble for the government can expect to be executed.
The firewall, I think even the Chinese government knows it's ineffective, and it certainly knows people can get around it easily enough.
As for "bend them to its will", no government can do that. It can suppress, and the Chinese government can do that quite well. But it knows well enough that if it suppresses too much, there would rebellion. The threat of rebellion runs all through Chinese history and there's always the millennia old cultural inheritance of the concept of righteous rebellion that not even the Chinese government can ignore. This was the case even during the Cold War. Why do you think they went after the Gang of Four over the Cultural Revolution?
Uh, no. You don't know how China works. Look what happened to Bo Xilai. China's ruling party has real problems, so there's no need to keep pandering to Cold War era myths about how the Chinese government operates.
The ruling party has a lot of engineers and technical people, but the corner cutting happens mostly in the construction and manufacturing industries. No, what the higher ups do is not cutting corners, but filling those industries with people they think they can get bribed from. And the mass suppression before protests get out of hand (ie, start being effective).
I don't doubt they improve performance. But they can't improve above the performance of code that has no need for that.
No, because in Java you declare variables to have types. In JS, you only get var. Seriously, if you used any JS heavy webpage, you'd know it slows down to a crawl. You can't heavily optimize JS arrays, for instance because you can't be sure of their member types until the last moment, no matter how much analysis you do.
Yes we can. With auto and lambda and implicit move semantics, you can write a lot of C++ in interesting ways without shooting yourself in the foot. You can almost get down to python's simplicity for really common tasks.
MOC compiles to standard C++ code. Without MOC, Qt's signals and slots can still be implemented in C++, and now it has support for lambdas.
My point is how can a Javascript compiler be confident of type specialization. It may be able to do so in restricted circumstances.
And that happens in Javascript?
1. What would "entirely in C++" look like? It would look a lot like C. And there will always be some necessary assembler stuff.
4. I would say look at Qt. You can write pretty complicated graphical applications in fewer lines.
C++ now has a deprecated attribute and it allows you to provide a reason string. And there's also static_assert for other errors.