I don't agree with you. I use recursion all the time on infinite data structures where obviously the inner loops using recursion can't limit. That has to be handled by the out loops creating the evaluation context.
You are wrong here. The whole point of recursion is to abstract away the details of how a loop executes and focus on what the loop does. Then later you use a recursion design pattern to abstract away the naive recursion. In a looping structure you end up having to decide immediately on bounds cases handling.
Most languages that handle recursion well just translate most simple recursions into iterative loops during compilation anyway.
You aren't going to win that debate easily. You are arguing for micro kernels. And of course you are right that micro kernels do allow for extensions much more easily. The problem is that they have notoriously horrible performance for operations that repeat too frequently because the wrapping and unwrapping of calls gets too expensive. Same thing that happens in user code at a high level. Linear efficiency matters. Speeding up every computer on the planet 20% is worth a lot of hassle to OS developers.
The article is a bit lite the summary on/. is worse. The article itself specifically mentions your use case: data structures where you want to convert a list of data into a list of actions as examples where recursion is often helpful.
The article talks about 4 features: goto, eval (run code from a string), multiple inheritance, and recursion. It discusses why the 4 get attacked by simplicity advocates:
goto -- incomprehensible logic in programs eval -- security risks multiple inheritance -- breaks single responsibility since one module can have subtle impacts on how other modules acts in this context recursion -- article isn't clear though the comments above are mostly correct. In non-tail recursive languages recursion usually creates algorithms that are O(n) in memory. Even in tail recursive languages this can happen (and in fact in those languages because more complex recursions are encourages O(n^2) isn't uncommon when recursion isn't used carefully / well understood).
It then mentions that these things should be used to avoid complexity in certain situations. goto -- error handling multiple inheritance -- is generally too useful to give up. implement with interfaces and be careful eval -- JSON, HTML, math... recursion -- trees, some list algorithms... recommend to implement imperative style mostly though (article assumes the language can't handle recursion)
Now my opinion: Recursion is obviously the best understood of the 4. It is easily provable that there exists recursive algorithms which are both important and are not implementable as loops. Recursion classification is a still active research problem. Most imperative programers don't even bother to think deeply about their algorithms and not using design patterns from recursive features means the same bugs are introduced over and over again in code. IMHO there is no reason not to be abstracting loops away using built in functional design patterns in code.
Multiple inheritance is too powerful to give up. Java was wrong here. Better safety than the C++ style seems to be needed though. For OO languages this should be an active area of experimentation.
goto is today rarely used and when it is it often avoids complexity. I think we hit the right level of compromise here decades ago and this is a dead issue.
Eval I think history has shown that without explicit evals developers end up having to create implicit evals where the code acts in complex ways on input. The code / data duality is not dead. Complex evaluation of input and layering aren't going away. Perl's concept of taint checking is likely the best approach: make it explicit and let the compiler check for accidental security risks.
The law can't be changed such that OS updates can't remove functionality for the reason you mention. Its an unreasonable burden on OS creators. What might be the case is better disclosure of included services (i.e. an explicit declaration that Apple has the right to remove server support for features from legacy OSes, along with a note that OS upgrades can cause performance declines)...
I think it depends on how complex the workflows are in the call center and which integrations you need. There isn't a simple best.
As for call recording. Recording calls isn't so trivial as you add integrations. Say for example you add telepresence. Agent X dials from his cell on the road. Does his dial route through your PBX and get recorded or does it go direct and not get recorded? If it goes through your PBX how do you make is seamless? How do you classify these calls. How do you attach metadata? Now add simple conferencing. How do you avoid having multiple copies? How do you workflows if different participants have different default metadata....?
Etc... Its easy when you don't think about the details.
Well first off their are no police this is federal. There are cases all the time where one person commits a crime and another takes revenge and the law is still enforced. There is nothing unusual about this case other than it happened on a computer.
We do it all the time. We've been doing it for hundreds of years in America. By around 15 years after immigration immigrants are high functioning in the culture though cultural differences remain. By 2nd generation (that is children of parents who have been here 15 years or more) there are few remaining culture differences that influence economic well being. By 3rd and 4th those disappear entirely.
You have been reluctant to define intelligent. I don't know what scientific results you are talking about. We are learning how brains work. We have been able to emulate simple ones. So far there is no sign of some missing ingredient in what we are doing. The road we are on looks promising.
Correct and may be the case that with today's excellent telecommuting that the localization advantage is going to disappear. However things like:
a) people tend to pick first job near their college b) people often tend to pick careers based on parents c) people's career paths are guided by opportunities where they work etc... still drive local specialization.
The situation above was the complaint is made by the victim who is admitting they did it. To use your analogy (though it doesn't quite fit) this would be like the dealer going to police admitting he shorted the crackhead because he is being threatened by him.
As for giving him access. No the thief did not give the victim access. Granting access is an act of intent. You don't grant me access to your house because your front door has bad locks that I know how to pick.
I wouldn't blame race as much as class. Also I disagree with you on liberal conservative. I don't think it breaks out that neatly. Liberals are often big fans of bilingual education systems that would homogeneously group the kids. You have people on both sides turning this into the least bad option.
What you are asking is what Paul Krugman got his Noble Prize for. The issue is networks of highly specialized skill sets. Let's take a non tech example. There are for given organic molecules only about 10 people in the world who understand their properties in terms of cooking them together well enough to design API processes (the step before making drugs). You need lots of these people to work together to design a drug. So to have a complex economy these people must be collocated in a completely non random formation. In particular places like Groten CT and New Brunswick NJ. The companies need to do this work and the companies that make equipment for them benefit from colocation. So you get a huge concentration of drug expertise. And that expertise is not easily movable for any individual company.
Similarly auto expertise in the Detroit area. Similarly top notch pit bosses and first rate dancers willing to appear topless exist in Las Vegas. Similarly rare tech expertise in San Fransisco.
How does repealing Prop 13 have a net negative effect on anyone?
Take a community with property taxes ranging from.1% to 2.5% of current value, with an average of.6% because of prop 13. Repeal 13 and the property tax rates for everyone go to.6%. Obviously the people paying.1 or.2% suffer but there is a corresponding and exactly equal gain for the people paying 2.5%. All repealing 13 does is remove an artificial barrier to trade.
Prop 13 is cumulative in its effects. Every year it is going to get worse. Year 1 the effect was minimal. As far as forcing retirees out of houses, being forced to sell useless property and turn it over to better more productive use sounds like a societal benefit to me. Why retire on expensive real estate?
San Fransisco has a population density of 2700 people / sq mile. LA and NYC are around 4600. Really crowded areas like Mumbai are around 63k. You could fit a lot more people in.
The problem with wages in America is primarily not competition. The problem primarily is the tax structure and profit structure policies. Even drastic changes in immigration policy are unlikely to have much effect on competition though obviously less trade and less immigration would help increase wages.
I think the article is talking about 3 different trends as one.
a) The Western economies are structurally biased against children. The cost of raising a middle class child (all inclusive) is about $3m in NPV terms by the time they stop needing to be fully supported. Society clearly covers some of the educational expenses, employers cover some of the medical expenses but parents absorb a huge burden in lost wages and money spent. What societies of asking of parents is too much of a burden. There needs to be more subsidization if we want to maintain a higher birthrate.
b) In America we have had a government policy for a generation of depressing wages, particularly in areas of the economy that impact the bottom half of males. That's resulted in a huge drop off in family formation for the bottom half of the labor pool. With easy and reliable birth control the birthrate has been declining among this demographic drastically.
c) San Fransisco has high rents a good services for singles and thus disproportionately people without children will want to live there. That's causing immigration of singles in and emigration of family people out.
Obviously all 3 hit San Fransisco but I don't see how San Fransisco can itself address (a) or (b).
A static system fails to good play. Take the most common situation, computer is in the big blind (i.e. you had a forced blind bet before you were dealt). 1/2 the hands dealt will be less than average. Folding a raise with a substandard hand subsidizes your opponent almost always raising regardless of his cards. So you can't fold. Calling a raise with a substandard hand subsidizes your opponent better hands, he raises when he is good and mucks when he isn't. So you can't call. Reraising with substandard hands makes the whole situation even worse.
There is no static solution against a dynamic opponent in partial information games.
I don't agree with you. I use recursion all the time on infinite data structures where obviously the inner loops using recursion can't limit. That has to be handled by the out loops creating the evaluation context.
You are wrong here. The whole point of recursion is to abstract away the details of how a loop executes and focus on what the loop does. Then later you use a recursion design pattern to abstract away the naive recursion. In a looping structure you end up having to decide immediately on bounds cases handling.
Most languages that handle recursion well just translate most simple recursions into iterative loops during compilation anyway.
You aren't going to win that debate easily. You are arguing for micro kernels. And of course you are right that micro kernels do allow for extensions much more easily. The problem is that they have notoriously horrible performance for operations that repeat too frequently because the wrapping and unwrapping of calls gets too expensive. Same thing that happens in user code at a high level. Linear efficiency matters. Speeding up every computer on the planet 20% is worth a lot of hassle to OS developers.
The article is a bit lite the summary on /. is worse. The article itself specifically mentions your use case: data structures where you want to convert a list of data into a list of actions as examples where recursion is often helpful.
The article talks about 4 features: goto, eval (run code from a string), multiple inheritance, and recursion. It discusses why the 4 get attacked by simplicity advocates:
goto -- incomprehensible logic in programs
eval -- security risks
multiple inheritance -- breaks single responsibility since one module can have subtle impacts on how other modules acts in this context
recursion -- article isn't clear though the comments above are mostly correct. In non-tail recursive languages recursion usually creates algorithms that are O(n) in memory. Even in tail recursive languages this can happen (and in fact in those languages because more complex recursions are encourages O(n^2) isn't uncommon when recursion isn't used carefully / well understood).
It then mentions that these things should be used to avoid complexity in certain situations.
goto -- error handling
multiple inheritance -- is generally too useful to give up. implement with interfaces and be careful
eval -- JSON, HTML, math...
recursion -- trees, some list algorithms... recommend to implement imperative style mostly though (article assumes the language can't handle recursion)
Now my opinion:
Recursion is obviously the best understood of the 4. It is easily provable that there exists recursive algorithms which are both important and are not implementable as loops. Recursion classification is a still active research problem. Most imperative programers don't even bother to think deeply about their algorithms and not using design patterns from recursive features means the same bugs are introduced over and over again in code. IMHO there is no reason not to be abstracting loops away using built in functional design patterns in code.
Multiple inheritance is too powerful to give up. Java was wrong here. Better safety than the C++ style seems to be needed though. For OO languages this should be an active area of experimentation.
goto is today rarely used and when it is it often avoids complexity. I think we hit the right level of compromise here decades ago and this is a dead issue.
Eval I think history has shown that without explicit evals developers end up having to create implicit evals where the code acts in complex ways on input. The code / data duality is not dead. Complex evaluation of input and layering aren't going away. Perl's concept of taint checking is likely the best approach: make it explicit and let the compiler check for accidental security risks.
The law can't be changed such that OS updates can't remove functionality for the reason you mention. Its an unreasonable burden on OS creators. What might be the case is better disclosure of included services (i.e. an explicit declaration that Apple has the right to remove server support for features from legacy OSes, along with a note that OS upgrades can cause performance declines)...
iPhone 4S = 2011
iOS 8 = 2014
In 2014 expected life for a phone given the subsidy model was 20-24 mo.
They are one of the biggest players. An industry standard. You definitely don't follow telecom. :)
I think it depends on how complex the workflows are in the call center and which integrations you need. There isn't a simple best.
As for call recording. Recording calls isn't so trivial as you add integrations. Say for example you add telepresence. Agent X dials from his cell on the road. Does his dial route through your PBX and get recorded or does it go direct and not get recorded? If it goes through your PBX how do you make is seamless? How do you classify these calls. How do you attach metadata? Now add simple conferencing. How do you avoid having multiple copies? How do you workflows if different participants have different default metadata....?
Etc... Its easy when you don't think about the details.
Well first off their are no police this is federal. There are cases all the time where one person commits a crime and another takes revenge and the law is still enforced. There is nothing unusual about this case other than it happened on a computer.
We do it all the time. We've been doing it for hundreds of years in America. By around 15 years after immigration immigrants are high functioning in the culture though cultural differences remain. By 2nd generation (that is children of parents who have been here 15 years or more) there are few remaining culture differences that influence economic well being. By 3rd and 4th those disappear entirely.
You have been reluctant to define intelligent. I don't know what scientific results you are talking about. We are learning how brains work. We have been able to emulate simple ones. So far there is no sign of some missing ingredient in what we are doing. The road we are on looks promising.
Correct and may be the case that with today's excellent telecommuting that the localization advantage is going to disappear. However things like:
a) people tend to pick first job near their college
b) people often tend to pick careers based on parents
c) people's career paths are guided by opportunities where they work
etc... still drive local specialization.
The situation above was the complaint is made by the victim who is admitting they did it. To use your analogy (though it doesn't quite fit) this would be like the dealer going to police admitting he shorted the crackhead because he is being threatened by him.
As for giving him access. No the thief did not give the victim access. Granting access is an act of intent. You don't grant me access to your house because your front door has bad locks that I know how to pick.
See my post 3 up.
I wouldn't blame race as much as class. Also I disagree with you on liberal conservative. I don't think it breaks out that neatly. Liberals are often big fans of bilingual education systems that would homogeneously group the kids. You have people on both sides turning this into the least bad option.
What you are asking is what Paul Krugman got his Noble Prize for. The issue is networks of highly specialized skill sets. Let's take a non tech example. There are for given organic molecules only about 10 people in the world who understand their properties in terms of cooking them together well enough to design API processes (the step before making drugs). You need lots of these people to work together to design a drug. So to have a complex economy these people must be collocated in a completely non random formation. In particular places like Groten CT and New Brunswick NJ. The companies need to do this work and the companies that make equipment for them benefit from colocation. So you get a huge concentration of drug expertise. And that expertise is not easily movable for any individual company.
Similarly auto expertise in the Detroit area. Similarly top notch pit bosses and first rate dancers willing to appear topless exist in Las Vegas. Similarly rare tech expertise in San Fransisco.
How does repealing Prop 13 have a net negative effect on anyone?
Take a community with property taxes ranging from .1% to 2.5% of current value, with an average of .6% because of prop 13. Repeal 13 and the property tax rates for everyone go to .6%. Obviously the people paying .1 or .2% suffer but there is a corresponding and exactly equal gain for the people paying 2.5%. All repealing 13 does is remove an artificial barrier to trade.
Prop 13 is cumulative in its effects. Every year it is going to get worse. Year 1 the effect was minimal. As far as forcing retirees out of houses, being forced to sell useless property and turn it over to better more productive use sounds like a societal benefit to me. Why retire on expensive real estate?
San Fransisco has a population density of 2700 people / sq mile. LA and NYC are around 4600. Really crowded areas like Mumbai are around 63k. You could fit a lot more people in.
The problem with wages in America is primarily not competition. The problem primarily is the tax structure and profit structure policies. Even drastic changes in immigration policy are unlikely to have much effect on competition though obviously less trade and less immigration would help increase wages.
I think the article is talking about 3 different trends as one.
a) The Western economies are structurally biased against children. The cost of raising a middle class child (all inclusive) is about $3m in NPV terms by the time they stop needing to be fully supported. Society clearly covers some of the educational expenses, employers cover some of the medical expenses but parents absorb a huge burden in lost wages and money spent. What societies of asking of parents is too much of a burden. There needs to be more subsidization if we want to maintain a higher birthrate.
b) In America we have had a government policy for a generation of depressing wages, particularly in areas of the economy that impact the bottom half of males. That's resulted in a huge drop off in family formation for the bottom half of the labor pool. With easy and reliable birth control the birthrate has been declining among this demographic drastically.
c) San Fransisco has high rents a good services for singles and thus disproportionately people without children will want to live there. That's causing immigration of singles in and emigration of family people out.
Obviously all 3 hit San Fransisco but I don't see how San Fransisco can itself address (a) or (b).
Of course it does. More and more we are learning the mechanism by which simple brains work. They are reproducible in software.
What in your opinion is the difference? How can I tell something that looks intelligent from something that is intelligent?
A static system fails to good play. Take the most common situation, computer is in the big blind (i.e. you had a forced blind bet before you were dealt). 1/2 the hands dealt will be less than average. Folding a raise with a substandard hand subsidizes your opponent almost always raising regardless of his cards. So you can't fold. Calling a raise with a substandard hand subsidizes your opponent better hands, he raises when he is good and mucks when he isn't. So you can't call. Reraising with substandard hands makes the whole situation even worse.
There is no static solution against a dynamic opponent in partial information games.