The second model is of course what you get if you don't use exceptions, so any solution that is no slower isn't a performance hit.
The problem for embedded programming is that the exception path and the non-exception path have very different performance characteristics.... throwing an exception with the 'zero-cost' model can involve dozens of function invocations, each of which has to parse complex data structures
Yeah, that just sounds like lazy compiler writing. It's one thing to bias optimization for the path likely to be taken, it's another to just blow off performance on some path. Really, though, if you're using scoped objects, you'll be going through the same clean-up code regardless of the reason the stack is being unwound (the destructors for all your primitive objects).
It seems bizarre that you'd add a huge perf hit, when the semantics are no different from classic "safe" C code. Sounds like there's room for a C++ compiler tuned for embedded systems.
There are no "efficient object oriented design practices".
Sure there are. OOP doesn't automatically imply "crazy inheritance trees". If you only use inheritance when runtime polymorphism is really needed, and that's rare, your code will be plenty efficient.
Without runtime polymophism, a method call is just a function call, no overhead (and no object bloat). This is really a problem with library code, which all to often ends up OOP-heavy to make it broadly usable. Concepts really shine there, of course, and to your point the resistance against it in the committee is quite irrational.
Exceptions are perfectly deterministic. I guarantee you no entropy source is included either at compile time or at run time.
However, you can't safely use exception unless all your types are exception-safe. This is an easy pattern to follow, and easy to get right in code review, but it's not widely known. Plus, people just assume any C++ feature that's not in C must be slow, so the idea of cleaning up allocations and whatnot automatically as part of stack unwind must somehow be slower than writing all that code manually at the bottom of every function.
Scoped objects (inherently exception-safe objects) are definitely less error prone than goto fail.
Note that while the current implementation of C++ templates leads to code bloat, that's not inherent in the idea of concepts. Compile-time polymorphism is a great idea that will be very useful, especially for library code where even the slightest increase in time can make people ignore your library.
It's kind of sad that concepts are seen as a template thing, but I guess it makes them more broad than just classes - various bare functions can be concepts as well. I'd rather see it as a kind of interface definition, myself.
Fully automatic fingerprint matching is harder than you might expect. I wouldn't jump to the conclusion that it would be easier or more reliable. I'd like to think those options were compared rationally as part of the project, but government so maybe not. I do think people see fingerprinting differently, perhaps as more intrusive or as something you only do to criminals. I remember an outcry when the US announced it would do some fingerprinting at the border.
Never forget the business model of government: you take money from some people, you distribute some of it to other people, and you keep the rest for yourself. The key phrase, of course, is "keep the rest for yourself".
Not true. Often the "istribute some of it to other people" is the key point: those other people own a pet politician, and his job is to ensure a steady stream of taxpayer money to his owners. More money was given out in bank bailouts than has ever stuck to the hands of a politician.
What are the odds that someone randomly stealing your passport would find it useful? What are the odds a human border agent could tell the two of you apart? Biometrcs aren't supposed to be a magic answer, just a way to help automate the process.
So you're saying we've done nothing in 45 years? No progress?
Seems to me like the industry is rapidly changing from a "because we can" thing to commercially viable and expanding. That will in turn get costs down to the point where we can do a new set of "because we can" things.
Do say more! My lunch is rather bland today - could use a bit more salt.
The north wanted to stop immigration, the south wanted sovereignty. The combination doesn't leave much room, but May hard stance has already caused the EU to cave on "if you want our markets you have to take our immigrants". Negotiations continue. You start with an extreme stance when negotiating, then move from there - you don't start by compromising. Trade will end up little-changed between Britain and the EU, because everyone wants money, but posturing is important at the start.
Or we could just not make people suffer through that out of some vindictive "I did it so you should too" attitude.
That attitude is in your head, not my post.
I get this bullshit a lot. I explain some situation and how I or others found a way out - real world answers actually done. And people come out of the woodwork to complain in the way you did. WTF? Do you object to any useful advice in life? Not every bit of advice will worth for everyone. We get that. But everything that actually worked for someone will be useful for someone else!
Some people can't be functional adults, and obviously need charity, whether physically or mentally disabled. For the rest, yes, they need to find some path to skilled work. We as a society need to make that path easier, but it's clear there will be no unskilled jobs by the end of the century.
Well, when you make hyperbolic claims with no supporting details or evidence, expect skepticism.
And Microsoft was in fact paying people to do the very same with Linux back in the day, when the term "astroturf" was invented and Linux had a similar market share on the desktop to DDG's. Also, Google does all evil things, so I'm sure they're doing this evil thing.
Hate to break it to you but most jobs, by the numbers, require "almost no skills." 40% of US workers are unskilled. Should they all starve to death?
Today many of those jobs do pay a living wage, because "unskilled" is a broad category, and some of those jobs are just hard work. But there also need to be "first jobs", and those don't need to pay a living wage. I don't think Uber counts as that, though, but they still sound less sleazy than taxi companies.
When I was poor and working those sorts of jobs, you made a living by working 60+ hours a week. Because overtime kicked in at 40, no job would ever give you close to 40 hours: mid-30s was the most you could hope for. So you worked 2 jobs, and commuted between them, often with very inconvenient gaps between the jobs. I used to hate the idea of overtime pay, as it destroyed what little time might nave been left most days, and still no one in my circumstance got overtime pay.
It sucked, but you find a way to move to something better.
That gives Google the revenue to be far more evil than DDG. They have a full engineering team devoted to determining your race, your religion, level of education, income, and so on. If you're worried about Trump wanting a "Muslim registry", you should at least be vaguely concerned that Google already has one.
They can't NOT improve. It looks and behaves like a first-year CompSci student's summer project. I applaud the spirit behind what they are doing, but if Google is Photoshop, DDG is an Etch-A-Sketch.
I hear just complaint just often enough to suspect astroturfing. I've never had a problem with DDG search results - well, no more problem than I have with Google. Plus there's a lot of good bang commands that give me a better command line in my search box, starting with !wa to use the wonderful Wolfram Alpha site.
Not just the 80s - employers have never been willing to train for skilled labor, unless you go back to old-school apprenticeships, starting at age 12 and replacing later schooling. With some relevant training, employers will generally soak of the cost of the last 10%, just as you do when hiring someone from a non-identical job elsewhere. But that takes proving that you've already learned the basics, or a similar skill (and thus proving you can learn).
Employers don't train. Never have. Not really their core competency. The failure lies elsewhere, but it is a failure, and one we must address as a society as unskilled jobs dwindle away.
There are over a million skilled manufacturing jobs unfilled right now. There's plenty to manufacture, but skilled workers willing to do blue-collar work are hard to find. Sure, we'll never return to the old days, "but the good old days weren't always good, and tomorrow ain't as bad as it seems".
But that's a thing of science fiction. No one is seriously working towards that - why would we want it? It's neither what academic nor industry AI researchers are doing.
Oh, I agree - and Lambda is finally part of C++. The old std::function stuff was pretty bad, but it's much nicer now..
The second model is of course what you get if you don't use exceptions, so any solution that is no slower isn't a performance hit.
The problem for embedded programming is that the exception path and the non-exception path have very different performance characteristics.... throwing an exception with the 'zero-cost' model can involve dozens of function invocations, each of which has to parse complex data structures
Yeah, that just sounds like lazy compiler writing. It's one thing to bias optimization for the path likely to be taken, it's another to just blow off performance on some path. Really, though, if you're using scoped objects, you'll be going through the same clean-up code regardless of the reason the stack is being unwound (the destructors for all your primitive objects).
It seems bizarre that you'd add a huge perf hit, when the semantics are no different from classic "safe" C code. Sounds like there's room for a C++ compiler tuned for embedded systems.
There are no "efficient object oriented design practices".
Sure there are. OOP doesn't automatically imply "crazy inheritance trees". If you only use inheritance when runtime polymorphism is really needed, and that's rare, your code will be plenty efficient.
Without runtime polymophism, a method call is just a function call, no overhead (and no object bloat). This is really a problem with library code, which all to often ends up OOP-heavy to make it broadly usable. Concepts really shine there, of course, and to your point the resistance against it in the committee is quite irrational.
Exceptions are perfectly deterministic. I guarantee you no entropy source is included either at compile time or at run time.
However, you can't safely use exception unless all your types are exception-safe. This is an easy pattern to follow, and easy to get right in code review, but it's not widely known. Plus, people just assume any C++ feature that's not in C must be slow, so the idea of cleaning up allocations and whatnot automatically as part of stack unwind must somehow be slower than writing all that code manually at the bottom of every function.
Scoped objects (inherently exception-safe objects) are definitely less error prone than goto fail.
It's duck typing done right. You get a compile time error if it's not a duck, instead of a runtime error. That makes all the difference in the world.
Note that while the current implementation of C++ templates leads to code bloat, that's not inherent in the idea of concepts. Compile-time polymorphism is a great idea that will be very useful, especially for library code where even the slightest increase in time can make people ignore your library.
It's kind of sad that concepts are seen as a template thing, but I guess it makes them more broad than just classes - various bare functions can be concepts as well. I'd rather see it as a kind of interface definition, myself.
Fully automatic fingerprint matching is harder than you might expect. I wouldn't jump to the conclusion that it would be easier or more reliable. I'd like to think those options were compared rationally as part of the project, but government so maybe not. I do think people see fingerprinting differently, perhaps as more intrusive or as something you only do to criminals. I remember an outcry when the US announced it would do some fingerprinting at the border.
Never forget the business model of government: you take money from some people, you distribute some of it to other people, and you keep the rest for yourself. The key phrase, of course, is "keep the rest for yourself".
Not true. Often the "istribute some of it to other people" is the key point: those other people own a pet politician, and his job is to ensure a steady stream of taxpayer money to his owners. More money was given out in bank bailouts than has ever stuck to the hands of a politician.
Sounds like the automatic system would be just as good as a human looking at your passport, then? I think that's all they're going for here.
This is the most insightful post thus far. Someone please mod AC up to visibility.
What are the odds that someone randomly stealing your passport would find it useful? What are the odds a human border agent could tell the two of you apart? Biometrcs aren't supposed to be a magic answer, just a way to help automate the process.
So you're saying we've done nothing in 45 years? No progress?
Seems to me like the industry is rapidly changing from a "because we can" thing to commercially viable and expanding. That will in turn get costs down to the point where we can do a new set of "because we can" things.
You may be the only person not related to the devs who still runs FF modile.
Do say more! My lunch is rather bland today - could use a bit more salt.
The north wanted to stop immigration, the south wanted sovereignty. The combination doesn't leave much room, but May hard stance has already caused the EU to cave on "if you want our markets you have to take our immigrants". Negotiations continue. You start with an extreme stance when negotiating, then move from there - you don't start by compromising. Trade will end up little-changed between Britain and the EU, because everyone wants money, but posturing is important at the start.
What makes you think I was talking to you? Several people still read Slashdot.
Or we could just not make people suffer through that out of some vindictive "I did it so you should too" attitude.
That attitude is in your head, not my post.
I get this bullshit a lot. I explain some situation and how I or others found a way out - real world answers actually done. And people come out of the woodwork to complain in the way you did. WTF? Do you object to any useful advice in life? Not every bit of advice will worth for everyone. We get that. But everything that actually worked for someone will be useful for someone else!
Some people can't be functional adults, and obviously need charity, whether physically or mentally disabled. For the rest, yes, they need to find some path to skilled work. We as a society need to make that path easier, but it's clear there will be no unskilled jobs by the end of the century.
Well, when you make hyperbolic claims with no supporting details or evidence, expect skepticism.
And Microsoft was in fact paying people to do the very same with Linux back in the day, when the term "astroturf" was invented and Linux had a similar market share on the desktop to DDG's. Also, Google does all evil things, so I'm sure they're doing this evil thing.
Hate to break it to you but most jobs, by the numbers, require "almost no skills." 40% of US workers are unskilled. Should they all starve to death?
Today many of those jobs do pay a living wage, because "unskilled" is a broad category, and some of those jobs are just hard work. But there also need to be "first jobs", and those don't need to pay a living wage. I don't think Uber counts as that, though, but they still sound less sleazy than taxi companies.
When I was poor and working those sorts of jobs, you made a living by working 60+ hours a week. Because overtime kicked in at 40, no job would ever give you close to 40 hours: mid-30s was the most you could hope for. So you worked 2 jobs, and commuted between them, often with very inconvenient gaps between the jobs. I used to hate the idea of overtime pay, as it destroyed what little time might nave been left most days, and still no one in my circumstance got overtime pay.
It sucked, but you find a way to move to something better.
You should look into how Taxi companies work. People work the first 8 hours or so of the day just to break even.
That gives Google the revenue to be far more evil than DDG. They have a full engineering team devoted to determining your race, your religion, level of education, income, and so on. If you're worried about Trump wanting a "Muslim registry", you should at least be vaguely concerned that Google already has one.
They can't NOT improve. It looks and behaves like a first-year CompSci student's summer project. I applaud the spirit behind what they are doing, but if Google is Photoshop, DDG is an Etch-A-Sketch.
I hear just complaint just often enough to suspect astroturfing. I've never had a problem with DDG search results - well, no more problem than I have with Google. Plus there's a lot of good bang commands that give me a better command line in my search box, starting with !wa to use the wonderful Wolfram Alpha site.
Not just the 80s - employers have never been willing to train for skilled labor, unless you go back to old-school apprenticeships, starting at age 12 and replacing later schooling. With some relevant training, employers will generally soak of the cost of the last 10%, just as you do when hiring someone from a non-identical job elsewhere. But that takes proving that you've already learned the basics, or a similar skill (and thus proving you can learn).
Employers don't train. Never have. Not really their core competency. The failure lies elsewhere, but it is a failure, and one we must address as a society as unskilled jobs dwindle away.
There are over a million skilled manufacturing jobs unfilled right now. There's plenty to manufacture, but skilled workers willing to do blue-collar work are hard to find. Sure, we'll never return to the old days, "but the good old days weren't always good, and tomorrow ain't as bad as it seems".
But that's a thing of science fiction. No one is seriously working towards that - why would we want it? It's neither what academic nor industry AI researchers are doing.