4 ms·
Most application developers won't worry about concurrent program design. Ever. More and more applications are becoming layered each year, and all of the hard wo
by rabidgnat 16y ago
Most application developers won't worry about concurrent program design. Ever. More and more applications are becoming layered each year, and all of the hard work is done on the server side. Drawing an application's chrome takes little power in comparison.
Concurrent programming ends up in the data center, fussed over by the (relatively) small core of engineers and software developers. Everyone else just queries this data and makes it look good. Concurrently fetching data doesn't need a paradigm shift, just a good library. If you still need a few threads, you can use the same crummy techniques we've always used.
Cloud computing will alter Moore's Law on most devices. Devices may need twice as many transistors every 18 months, but the transistors are no longer on your desktop. They're mostly in some data center.
- commieneko 16y agoSomeone has seen a vision of the future; and it is bright, shiny, orderly, and ... beautiful!!! In my 30 years in and out of the software development world, I've seen _many_ visions of the future. In particular I've been reading about the death of the desktop application since, well, since before desktop applications were around. Anytime someone starts to tell me that the future is going to be X, then my response is, yes, the future may include X, but it will also include a bunch of old stuff, and a bunch of stuff that no one has foreseen. Entropy increases until a given system falls apart and is replaced by something better that works ... at least as well. Usually. (See Ted Nelson's vision of Xanadu, that which was supposed to _prevent_ the World Wide Web.) And the duct tape and bailing wire holding it all together is ... wait for it ... faster processing speeds, more and better storage, faster networks, desktop apps, plug ins, scripts, prayer, and lots and lots of consulting fees. (edit: I forgot to add faith, hope and charity as well.) Don't get me wrong, your vision _is_ beautiful. It's worth believing in and probably worth working toward. Some version of it will probably crawl, writhing noisily and messily, from the sea of change. Just don't bet the farm on a particular version of it. Edit: I will also add this in direct response. My desktop computers are quickly _becoming_ my data center. I'm spending most of my face time with mobile devices: laptops, smart phone/pda music player, and, of course, my beloved beautiful iPad... So I hereby create the new buzz term PDC. Personal Desktop Cloud. Bask in its glory and power.
- rabidgnat 16y agoIt's not some silly vision of the future, but an oversimplified version of today! A brief and incomplete list of applications I use in a typical day: Remote storage and/or processing: GMail, Google Docs, Weather.com, Reddit.com, Hacker News, Outlook web client, Google.com, DuckDuckGo, Delicious, Facebook, Github, tens of blogs/articles, online help documentation for, well, everything Local storage and/or processing: Windows+Linux, Firefox, Chrome, Outlook, Visual Studio, Emacs, Python (or other dynamic languages), Acrobat, Amarok, random Unix utilities, various games Most of my applications exist solely to present data stored elsewhere. I see no reason the trend won't continue: for instance, why would I compile C++ code on my machine when I can farm it out? Why would I store flat code files on my machine when I can have synthesized views of the code I need to see at one time? Split up by time, most of my attention is spent manipulating or displaying data from somewhere else (or that could be stored somewhere else) Games show that there are exceptions
- kenjackson 16y agoEven if all that is true, the server apps have to be written by somebody. They don't get written by themselves. It's not like whole program optimization of your C++ application in the cloud just magically happens. The same team that wrote the C++ app on your desktop is going to need to figure out to optimized across your application, and in some cases it is more difficult as they 'll be dealing with multithreading within a box and multiprocssing across boxes on the server. And then they have to work on optimizing data transfer, from one cloud to another (since presumably the cloud you build on isn't the cloud you debug or edit on). The world just got more complex, not simpler for devs.
- rabidgnat 16y agoBut my original point is that there's one dev team in the middle of this dealing with concurrency, and any number of remote applications that can use it through a library because someone else worried about the hard parts. There isn't a day of reckoning where developers as a group worry about efficient concurrent computation, it's the few guys in the center.
- loup-vaillant 16y agoSo, you centralize the real work, so the average computer just have to worry about eye candy. Scary. http://www.softwarefreedom.org/news/2010/feb/01/freedom-cloud-software-freedom-privacy-and-securit/ http://www.softwarefreedom.org/news/2010/feb/01/freedom-clou... On the other hand, free parallel libraries that execute on my computer are perfectly OK.