The Next Decade in Software
The scientists are already hard at work at coming up with predictions for the next 10 years. I thought it would be interesting to extract from the list, the predictions that are directly related to software … along with a few recommendations on how to get started today.
- Augmented Reality
This one is almost already a reality. A number of iPhone apps use the compass, gps, and camera as a viewport to overlay information on top of the world. A few years ago, Johnny Lee posted some amazing videos on how to use cheap consumer hardware to meld real and virtual worlds. It is clear that 3D graphics programming will be very helpful in this field … why not start learning now? - True artificially intelligent computer programs
This one seems to be the most far fetched. Not because the field is not progressing, because it is, but because it’s been promised for so long. The biggest problem I think is lack of a clear goal; you can say you want something that learns, but learns what? There needs to be a catalyst that makes it clear what people really want/need from an intelligence. In my opinion, the game industry is pushing the state of the art here. - Cell phone apps that will act as a health monitor … Sort of an OnStar system for the body
Since the iPhone proved to everyone that you can have a powerful computer in your pocket, new devices have started appearing that try to piggyback off of the success. I’m looking forward to more people making symbiotic peripherals for phones like the iphone, android based devices, and hopefully WinMo if they ever get their act together. Mobile programming will surely be a skill to watch in the next decade. - Cloud computing
I was a little surprised to see a reference to cloud computing in a science article. But it makes sense when you think about it, because scientists need to make increasingly complex models to prove their theories and solve problems, they will need more and more processing power to do it.I don’t think that it will be worth it for the average “you and me” to invest time into learning how to make cloud computing infrastructures. The big 3 (Microsoft, Google, and Amazon) will commoditize these infrastructures and make them easily available … for a price of course. Learning how to make programs that thrive in the clouds however, will prove to be useful. I’ve written some about this topic recently. You can start programming in functional languages like F#, or learn how to program shaders using HLSL to teach your brain how to think in highly parallelizable terms.
Time is always the ultimate author of history, so we will have to wait and see how many of these predictions turn out to be true. But one thing is clear, if you learn how to make games, there is a good chance you will be successful in the next decade
David Stein Said,
December 31, 2009 @ 4:14 pm
1) Augmented reality applications are already here. Do a search for the acrossair iPhone app. Of course, it will come into play in a big way in the ’10s.
2) AI is stuck in the same stalemate it’s been in for 20+ years. Milo is simply a chatbot with a graphical interface: it fails the Turing test in 60 seconds flat.
We now realize that the field isn’t limited by a shortage of computing power – which we now have – but rather by a completely inadequate understanding of the mechanics of intelligence. Neural networks and Bayesian networks simply don’t scale to anything resembling intelligence. The good news is that the field is (FINALLY) undergoing a reboot, so maybe we’ll see some real progress in the (indeterminate) future.
3) Cellphones as health monitors – probably not. Compare the costs of the extra sensors that you’d have to jam into the cellphone (and the disadvantages, e.g., weight, size, and battery draw) on the prospective advantages. We will certainly have in-home health monitoring equipment, but will it be part of your portable device? Probably not.
4) Cloud computing – absolutely, but the basic model will be very different from what any of the major players are proposing. People are (very rightfully) attached to the concept of owning their data, so any company that insists on keeping YOUR data on THEIR servers is going to lose. People will own a huge home fileserver, and all data (email, apps, logs, photos, music, movies, recorded TV) will be stored there. Other than that discrepancy, Microsoft’s Azure platform is probably closest to the mark.
Regards,
David Stein