data tables are functional,that's just the functional "map". rand would be in the state monad in a functional language which is more or less how excel treats it. Iteration is just lazy evaluation f_n depends on g_{n-1} g_n depends on f_{n-1}
So you can create a sequence l = [(f0,g0), (f1,g1),....]
Interesting point, I see. So it is the compiler that isolates state not the programmer and the hope is that the compiler sees a path for parallelizing via. implicit isolation?
I gotta tell you I don't see that working for anything but a trivial program in practice. Synchronizing state like J2EE / J3EE does is hard. It just strikes me as a lot easier to bite the bullet. But the.NET compiler is an excellent compiler.
I understand what the paper is talking about. But what you are describing where the bulk of the code is immutable is easily implemented in a language which protects immutability. Then the exposure to mutability is just the "State Monad" and the lifting from immutable to stateful is easier. The Stateful monad then exposes the objects (or really data) as services.
So why not do the immutable part in a functional language where you don't have to keep cutting against the grain?
For many functional languages a=[ a[:2], 5, a[4:]] wouldn't even be legal. It would only be legal if a is a state. That is a isn't an array but a:: S -> (K,S) where K is an array. Then b is either an alias to a and thus subject to the same state shifts or more likely b is the value of a at one particular state.
Why is color transform on an image hard? That sounds like a classic map-reduce.
a) decompose the image into n pieces b) apply color transform to each piece c) reassemble, note this is a pairwise associative reassemble because of position and thus you don't need complex organization.
Java is a really tough language to make analogies with functional programming. Instead of like French to Spanish or even French to English it is like French to Chinese. J2EE and J3EE have a lot of code so that objects on the client synchronize with objects on the server. Imagine if the default behavior when a client a changed an object was for them to make a copy of the server's object and then change that. Thus they always had their own unique copies and there was no need to synchronize until the end.
A place where you've run into functional concepts most likely though is working with databases. SQL is a functional language. Inside a select, regardless of how big you cannot change data. Thus the RDBMS knows if it faces 200 selects it can execute them in any order safely. Thus you as a programmer have no ability to control the order the RDBMS executes selects in. That's a far better analogy.
Mainstream language have mutable state all over the code. Functional programming's big change on state issues is to careful isolate state. The Microsoft approach means that state needs to be tracked carefully so that it could be isolated by the compiler even if it isn't isolated by the code. Which is likely just as much work as isolating state. And the nice thing about isolating state is once you do it you can make use of all sorts of incredibly powerful functional paradigms like like first class functions (closures, partial execution...) and lazyness (infinite data structures, no need to figure out proper order of evaluation..)
The solution to parallelism is functional programming. And no it is not too hard. Excel is a functional programming language that lots of people know that does a great job isolating state.
GNU/Linux seems to have become a server, and supercomputing OS and a strong environment for mainframe programming. Android appears to be the version of Linux that appeals for consumer devices. And don't forget embedded which is another area where Linux outsells (or gets used much more heavily) than Windows. I don't see any reason to exclude that one either.
In any case at this point there are multiple open source Linux based systems in just about every area of computing and in just about every area of computing at least one flavor is dominant. It turned out 2011 was the year of the Linux desktop.
Whose current strategy? I think there is a lot of Finnish paranoia about Nokia, where a lot of people aren't willing to accept the explanations that seem rather clear: the pieces of the Symbian -> MeeGo strategy were not getting done fast enough and Nokia was in a box they could not get out of. What Elop managed to do was get a lot of money for an OS conversion he was going to have to do anyway. I think he saved the company from bankruptcy.
As far as burning value, things haven't gone well. Nokia's execution is still terrible but that has been to Microsoft's detriment not advantage.
People are actually getting dumber. The accumulated traditions are becoming a problem. Computer literacy has been declining for a decade.
And you don't keep your arms stretched out all the time. You lift your hand from the keyboard to hit the screen once in a while, the same way you lift your hands to hit the mouse.
The layout on the top bar helps to separate out: player from store from device management. I will admit I do like the sidebar with the old layout for familiarity.
Anyway I think the big difference is that more of the functionality is exposed on the interface, sort of like an office application. I think they are assuming that iTunes user base is sort of stable and they can make things less obvious. That's a typical Apple pattern:
lots of new users = aim for obviousness lots of experienced users = decrease obviousness and increase features
He's right. Computer literacy has been dropping for about a decade now among kids. The accumulated historical traditions is getting too much for kids to adapt to.
Take your filesystem. The application / open / use / save / close motif is great for dual floppy. It is a terrible paradigm for single SSD. The majority of people don't understand that filesystem is a "where" type question. I can't understand how that's possible but yes the poster is right, people suck at traditional desktops and the problem is getting worse each year as the young are more distant from the system for which are paradigms are designed.
In terms of what is underneath the interface, I suspect that we are going to move towards database filesystem like you have on minis and mainframes and away from the filesystem being as naive as it is.
I don't think they will relent. They absolutely positively must have a system capable of operating in the new form factors like tablets and phones. If they didn't sell a single license during all of 2013 it would be worth it to force the paradigm shift.
Further Windows 8 on Windows 8 hardware is good and people like it. So there is no reason to relent. The pain so far is:
a) You have to (really should) replace your hardware b) You have to change multiple application workflows.
For Small Business / consumers changing hardware and changing OS are the same thing so (a) isn't a problem. While for enterprise desktops aren't a huge percentage of expenses. (b) is an issue but switching to Linux or OSX is going to be more traumatic, most likely.
I don't know if they EOL Windows 7 when. Windows 7 for enterprise, Windows 8 for SB / Cons is a nice line up. They enterprise side is not in as much danger of being disrupted by iOS and Android so they can afford to more slowly.
1) Nokia is not a subsidiary of Microsoft. 2) You don't connect your phone, I'm not even sure Windows 8 supports phone input at all. What you should be doing though is buying a touchscreen monitor
I don't write/. comments for a PR agency. I'm just a guy who happens to think Balmer is doing the right thing. There are people in the world who disagree with you.
As for features: all applications automatically conform to multiple form factors in terms of both display mechanisms and input mechanisms and thus allow for ubiquitous computing is the shinny feature. http://www.youtube.com/watch?v=a6cNdhOKwi0
Inexpensive capacitive touch screens are new. Resistive touch screens are older. Lots of technologies require upgrades before they go mainstream. But frankly resistive was rather excellent, remember all the people using Palm?
Have you been reading the windows 8 threads on/. for the last year? Lots of people thought they would be a terrible idea. I'm very glad that now that Windows 8 has the right hardware people are starting to see what a step forward it is.
There were several major projects started about a month after Retina laptops came out. Retina for Firefox. Retina for OpenOffice (Libre Office had support day 1). Retina Ubuntu... So now you are just dead wrong. Everyone in the Linux community knows that Apple hardware is a pretty good guide to features they are going to need to support down the road for Linux. Moreover a huge percentage of Linux developers use Apple hardware.
As for the rest about "wasted money" and "shiny" I'll leave that to whomever wants to point out that the 15" retina was and still is a rather good deal compared to x86 laptops with similar features.
There will likely be about 6. Microsoft, some 3rd party, and a few asian ones. I don't see any reason Microsoft would do this, Linux is used heavily on servers. There are driver developers....
Windows 8 is is designed for better hardware. If she were buying a touch enabled ultrabook then it would be a test case. Microsoft shouldn't have allowed 8 on an inexpensive laptop in 2012.
data tables are functional,that's just the functional "map". rand would be in the state monad in a functional language which is more or less how excel treats it. Iteration is just lazy evaluation
f_n depends on g_{n-1}
g_n depends on f_{n-1}
So you can create a sequence l = [(f0,g0), (f1,g1),....]
Interesting point, I see. So it is the compiler that isolates state not the programmer and the hope is that the compiler sees a path for parallelizing via. implicit isolation?
I gotta tell you I don't see that working for anything but a trivial program in practice. Synchronizing state like J2EE / J3EE does is hard. It just strikes me as a lot easier to bite the bullet. But the.NET compiler is an excellent compiler.
I understand what the paper is talking about. But what you are describing where the bulk of the code is immutable is easily implemented in a language which protects immutability. Then the exposure to mutability is just the "State Monad" and the lifting from immutable to stateful is easier. The Stateful monad then exposes the objects (or really data) as services.
So why not do the immutable part in a functional language where you don't have to keep cutting against the grain?
For many functional languages a=[ a[:2], 5, a[4:]] wouldn't even be legal. It would only be legal if a is a state. That is a isn't an array but
a:: S -> (K,S) where K is an array. Then b is either an alias to a and thus subject to the same state shifts or more likely b is the value of a at one particular state.
Why is color transform on an image hard? That sounds like a classic map-reduce.
a) decompose the image into n pieces
b) apply color transform to each piece
c) reassemble, note this is a pairwise associative reassemble because of position and thus you don't need complex organization.
Java is a really tough language to make analogies with functional programming. Instead of like French to Spanish or even French to English it is like French to Chinese. J2EE and J3EE have a lot of code so that objects on the client synchronize with objects on the server. Imagine if the default behavior when a client a changed an object was for them to make a copy of the server's object and then change that. Thus they always had their own unique copies and there was no need to synchronize until the end.
A place where you've run into functional concepts most likely though is working with databases. SQL is a functional language. Inside a select, regardless of how big you cannot change data. Thus the RDBMS knows if it faces 200 selects it can execute them in any order safely. Thus you as a programmer have no ability to control the order the RDBMS executes selects in. That's a far better analogy.
Mainstream language have mutable state all over the code. Functional programming's big change on state issues is to careful isolate state. The Microsoft approach means that state needs to be tracked carefully so that it could be isolated by the compiler even if it isn't isolated by the code. Which is likely just as much work as isolating state. And the nice thing about isolating state is once you do it you can make use of all sorts of incredibly powerful functional paradigms like like first class functions (closures, partial execution...) and lazyness (infinite data structures, no need to figure out proper order of evaluation..)
The solution to parallelism is functional programming. And no it is not too hard. Excel is a functional programming language that lots of people know that does a great job isolating state.
There are lots of alternative DNSes. But you don't need an alternative DNS all you need to do is start running DNS services and
a) Use whatever rules you want
b) Get other people to use your service instead of the ones you are objecting to.
It is perfectly anarcho-democratic. Everyone votes everyday with the DNS settings what DNS they want.
GNU/Linux seems to have become a server, and supercomputing OS and a strong environment for mainframe programming.
Android appears to be the version of Linux that appeals for consumer devices.
And don't forget embedded which is another area where Linux outsells (or gets used much more heavily) than Windows. I don't see any reason to exclude that one either.
In any case at this point there are multiple open source Linux based systems in just about every area of computing and in just about every area of computing at least one flavor is dominant. It turned out 2011 was the year of the Linux desktop.
GNU/Linux doesn't what?
Whose current strategy? I think there is a lot of Finnish paranoia about Nokia, where a lot of people aren't willing to accept the explanations that seem rather clear: the pieces of the Symbian -> MeeGo strategy were not getting done fast enough and Nokia was in a box they could not get out of. What Elop managed to do was get a lot of money for an OS conversion he was going to have to do anyway. I think he saved the company from bankruptcy.
As far as burning value, things haven't gone well. Nokia's execution is still terrible but that has been to Microsoft's detriment not advantage.
Good advice.
People are actually getting dumber. The accumulated traditions are becoming a problem. Computer literacy has been declining for a decade.
And you don't keep your arms stretched out all the time. You lift your hand from the keyboard to hit the screen once in a while, the same way you lift your hands to hit the mouse.
The layout on the top bar helps to separate out: player from store from device management. I will admit I do like the sidebar with the old layout for familiarity.
Anyway I think the big difference is that more of the functionality is exposed on the interface, sort of like an office application. I think they are assuming that iTunes user base is sort of stable and they can make things less obvious. That's a typical Apple pattern:
lots of new users = aim for obviousness
lots of experienced users = decrease obviousness and increase features
He's right. Computer literacy has been dropping for about a decade now among kids. The accumulated historical traditions is getting too much for kids to adapt to.
Take your filesystem. The application / open / use / save / close motif is great for dual floppy. It is a terrible paradigm for single SSD. The majority of people don't understand that filesystem is a "where" type question. I can't understand how that's possible but yes the poster is right, people suck at traditional desktops and the problem is getting worse each year as the young are more distant from the system for which are paradigms are designed.
In terms of what is underneath the interface, I suspect that we are going to move towards database filesystem like you have on minis and mainframes and away from the filesystem being as naive as it is.
I don't think they will relent. They absolutely positively must have a system capable of operating in the new form factors like tablets and phones. If they didn't sell a single license during all of 2013 it would be worth it to force the paradigm shift.
Further Windows 8 on Windows 8 hardware is good and people like it. So there is no reason to relent. The pain so far is:
a) You have to (really should) replace your hardware
b) You have to change multiple application workflows.
For Small Business / consumers changing hardware and changing OS are the same thing so (a) isn't a problem. While for enterprise desktops aren't a huge percentage of expenses. (b) is an issue but switching to Linux or OSX is going to be more traumatic, most likely.
I don't know if they EOL Windows 7 when. Windows 7 for enterprise, Windows 8 for SB / Cons is a nice line up. They enterprise side is not in as much danger of being disrupted by iOS and Android so they can afford to more slowly.
1) Nokia is not a subsidiary of Microsoft.
2) You don't connect your phone, I'm not even sure Windows 8 supports phone input at all. What you should be doing though is buying a touchscreen monitor
I don't write /. comments for a PR agency. I'm just a guy who happens to think Balmer is doing the right thing. There are people in the world who disagree with you.
As for features: all applications automatically conform to multiple form factors in terms of both display mechanisms and input mechanisms and thus allow for ubiquitous computing is the shinny feature. http://www.youtube.com/watch?v=a6cNdhOKwi0
No 2000 was not the peak:
http://static.guim.co.uk/sys-images/Technology/Pix/pictures/2009/7/30/1248970573155/Microsoft-chart-001.jpg
Inexpensive capacitive touch screens are new. Resistive touch screens are older. Lots of technologies require upgrades before they go mainstream. But frankly resistive was rather excellent, remember all the people using Palm?
Have you been reading the windows 8 threads on /. for the last year? Lots of people thought they would be a terrible idea. I'm very glad that now that Windows 8 has the right hardware people are starting to see what a step forward it is.
Medical monitors are high-dpi displays. But Apple is the only company aiming them at mainstream users.
There were several major projects started about a month after Retina laptops came out. Retina for Firefox. Retina for OpenOffice (Libre Office had support day 1). Retina Ubuntu... So now you are just dead wrong. Everyone in the Linux community knows that Apple hardware is a pretty good guide to features they are going to need to support down the road for Linux. Moreover a huge percentage of Linux developers use Apple hardware.
As for the rest about "wasted money" and "shiny" I'll leave that to whomever wants to point out that the 15" retina was and still is a rather good deal compared to x86 laptops with similar features.
There will likely be about 6. Microsoft, some 3rd party, and a few asian ones. I don't see any reason Microsoft would do this, Linux is used heavily on servers. There are driver developers....
Windows 8 is is designed for better hardware. If she were buying a touch enabled ultrabook then it would be a test case. Microsoft shouldn't have allowed 8 on an inexpensive laptop in 2012.