views:

323

answers:

6

With the recent announcement of Google Wave I started looking into how it worked, I then found that work and research on Real-time Collaborative Editing Systems has been around for some time (the first work was done in 1989).

Google "introduced" MapReduce however that had been around for some time in functional programming as well.

Are there any other techniques / interesting ideas that have been around for a while but the technology isn't there to support it yet? or it has only recently moved into the main stream?

This question sounds like it could be taken in the vein of "tell me the next big thing", however that is not the case I am just curious. For both of the above, when I read or heard about them, they both got my brain thinking about the applications for the technique and it has often helped me progress in my knowledge and understanding of computing.

I'm more interested in the web because that is my area of expertise, however I don't think the question should be limited to it.

So to re-iterate:

Are there any other techniques / interesting ideas that you have heard about but have not hit the main stream yet or the technology isn't there to support it?

A: 

There's a huge opportunity out there for integrating your health record with software. Wii Fit, Google Health, PatientsLikeMe are just the very beginning.

I'll be disappointed if in 10 years we don't have much better integration of everything about your health (that you wish to share) that could be integrated into highly personalized medicines and treatments.

There's a huge amount of good that can come if done right and... unfortunately a lot of bad that can happen if done wrong.

Jeff Moser
Yeah, but the "that you wish to share" is a real sticky point. Just today, a friend said she gets suspicious about "what they're hiding" whenever she sees someone on Facebook who doesn't upload photos. It's hardly a stretch to imagine that employers, insurers, etc. might discriminate (openly or otherwise) against anyone who tries to "hide" their health information instead of "choosing" to share it promiscuously.
Dave Sherohman
+1  A: 

More heavyweight compile-time static checking to either verify safety properties about your program or to find bugs in it ... imagine something like the squiggly lines that Eclipse or Visual Studio already offers (by incrementally parsing and analyzing your code and reporting simple compiler warnings) but WAY more sophisticated. i think it's definitely do-able in the next decade as computing hardware gets cheaper.

for an example project at Microsoft Research, see SLAM:

http://research.microsoft.com/en-us/projects/slam/

Quote from billg on that page:

"Things like even software verification, this has been the Holy Grail of computer science for many decades but now in some very key areas, for example, driver verification we’re building tools that can do actual proof about the software and how it works in order to guarantee the reliability." Bill Gates, April 18, 2002. Keynote address at WinHec 2002

pgb
I agree. Like e.g. lint and daily build have been around for decades, but still not used heavily as they should. On the other hand there are such tools around, but not widely used and some are even "research-heavy", like using SAT solvers etc. Maybe this more relates to social changes yet to come, not technical.
Peter Kofler
+2  A: 

Some of the ideas in Mother of all Demos might be interesting to look at, especially some of the ideas around following each others history

Tom
+1  A: 

Here's a list of things that I think are underexploited by mainstream software products:

  • machine learning and statistical inference. Google and Amazon have both made very effective use of these to make products that are useful, and I think there's a market for search and statistical inference with personal data.
  • language interoperability to make it easier to mix and match code languages within a single application. The .NET and Java set of languages are figuring this out, and there are many times when I'm programming in C++ and have more elegant code to my problem if I could just use a little bit of SQL on my data.
  • more flexible compilers that can use optional static type inference to speed up very specific types of code.

I'm not really sure about great algorithmic breakthroughs though. I think that there's also a market for software that's well-designed and provides a great user experience.

James Thompson
A: 

I personally am waiting for the widespread of ontologies-based semantic reasoners! When they get mainstream they will help solving broad range of problems that require way too much work in todays world.

Almost every kind of enterprise line of business application could benefit from reasoning over its rules / facts / ontologies. Think Prolog * SQL for 21st century.

The problem however is that today's ontology-definition languages are rather limited and truth be spoken the entire segment is too fragmented. Waiting for a giant to invest.

zvolkov
+1  A: 

Operational Transformation has been an academic jewel for like 15 years. Only recently Google Wave is exploiting some of its capabilities, but we anticipate that when it becomes mainstream we will be game changer. We elaborate on the topic here: http://www.corvalius.com/blog/index.php/uncategorized/say-goodbye-to-collaboration/

We are near a fundamental change in how applications behave and Operational Transformation or similar technologies are going to be one of its ingredients.

Red Knight