views:

751

answers:

7

I don't have a computer science background and only have a rudimentary knowledge of what CS is all about. However, I wonder, what are the most significant CS advances of the last five years?

To give you an idea of how clueless I am, I couldn't name one of these advances. But, please don't spare me all the gory details.

I'm not looking for an education in CS or a story about the history of CS. As far as this question is concerned only the past five years matter! :-)

+3  A: 

Also, look at significant new inventions in computing since 1980

Rik
+1  A: 

One definite example I can think of is quantum computing: it's a completely new field of CS, most of the important research has happened in the last 10 years (then again, some very basic research reaches back to th 70s), and while it's not yet practically significant, it most likely will be.

The problem with answering your question is this: theoretical advances nearly always become significant only in hindsight, once they've resulted in a practical application that changes people's lives (because that's how most people measure significance) - and that's often long after the original theoretical work.

The obvious example would be the internet, which existed for decades in obscurity before the WWW came along. I believe that pretty much all advances of huge practical significance in the last 10 years are based one theoretical work that's much older.

Other kinds of significant advances are solutions to well-known unsolved problems and concepts that change a lot of other theoretical work. I'm not aware of anything like that in the last 10 years either, not at the real scientific level - but I'm not a scientist.

Michael Borgwardt
A: 

The IEEE Computer Society has several publications targeted at different types of consumers (general, industry practitioners & managers, academia) across many fields in computer science, software development being one of them. There are some free articles here and there, but with a subscription, you'll be up to speed with all the latest advances (and historical achievements) in CS... the digital archive goes back for decades!

Zach Scrivena
A: 

First, I would vote for the rise of the Agile movement and TDD in particular. It isn't a technical development so much as a codification of processes. However, given that the history of software development has been riddled with failures of formalization (Waterfall method, anyone?) and that Agile and its spin-offs appear to be the first successful process discipline in our field, I'd vote for it first.

Second, as a former ISAPI dll developer (a low-level tech for creating web applications) I think that we sometimes underestimate the importance of web development frameworks (everything from JQuery to ASP.NET). Where once web development was constrained by the limitations of building CGI apps and ISAPI dlls, we now have far more productive ways to create web applications. This has led to an explosion of quite sophisticated web apps. That story began a bit more than 10 years ago, though.

Five to ten years is a bit difficult in general: several very important technologies came on the scene just over 10 years ago but have taken time to unwind and reach maturity.

Update: Note that when I answered, the time frame was 5-10 years.

Mark Brittingham
-1 for yet another "AGILE is great, everything else sucks" answer. My own experience with Agile is that every group of programmers I've worked with who advocated it still managed to waste man-years and millions of dollars producing stuff that doesn't work.
MusiGenesis
Well, you are entitled to your opinion. That's what downvotes are for. My experience has been very different.
Mark Brittingham
regardles of the value of Agile methods, it's not really computer science but, more accurately, software engineering. Apologies if I'm being pedantic...
Rik
(didn't give -1) but totally agree with @MusiGenesis
Ric Tokyo
+1 to counter improper use of downvoting: @[MusiGenesis]: a downvote means "This answer is not helpful" (read the tooltip), not "I don't like this answer" :-) I don't like this answer either, not because Agile doesn't rock (it does when used properly), but because Agile is not CS in the strict sense
Steven A. Lowe
I understand the reservation about calling Agile methods "CS" in the strict sense - and, in hindsight, agree. In my defense, I'll point out that the question was asked by someone admittedly not familiar with the field - likely a management type. So, Agile made sense to me as an answer for him.
Mark Brittingham
+1 because Agile is still hype, but your avatar picture is very cool in a pseudo-Hindu sort of way. :)
MusiGenesis
@Steven: I still think my down-vote was appropriate, because I don't think Agile counts as a computer science advance (regardless of whether or not it's a worthwhile methodology).
MusiGenesis
A: 

Gesture interfaces seem to have evolved rapidly in the last 5 years. While people have been exploring them longer, only recently have we had a successful commercial application: the iPhone and iPod Touch. Microsoft and the research community have also demonstrated some very interesting applications recently. In 20 years, we might look back and think of this as a pretty extraordinary innovation.

Mark Brittingham
While an interesting UI method, how is this related to Computer Science?
Roger Pate
@Roger Pate Computer UI is within the domain of Computer Science.
csj
lol - I guess Roger still throws switches on the front of his PDP-8/e like *real* developers do. None of that sissy stuff worrying about GUIs!
Mark Brittingham
@csj, @Mark: Programming has to deal with *much* more than just computer science. Everything that concerns programmers and users doesn't suddenly become computer science. "Computer science is no more about computers than astronomy is about telescopes." – Edsger Dijkstra
Roger Pate
@Roger Pate: Telescopes may not be within the domain of astronomy, but Computer UI is within the domain of Computer Science.
csj
@csj: "Computer science (CS) is the systematic study of algorithmic methods for representing and transforming information, including their theory, design, implementation, application, and efficiency. ... Other important topics in computer science include computer graphics, databases, networks and protocols, numerical methods, operating systems, parallel computing, simulation and modeling, and software engineering." http://www.eng.buffalo.edu/ue/cus/ugdo/csvce/
Roger Pate
@Roger Pate: Gesture Interfaces rely on pattern recognition which most certainly has required the "systematic study of algorithmic methods for representing and transforming information."
csj
@Roger Pate: I think the folks at Buffalo would be surprised to find that Human Computer Interface (HCI) work is not part of "software engineering" nor is it a method for "transforming information" - I guess it only counts if I write a *program* to transform the information; not if I interact with the computer to do so using a UI. The folks in the Association of Computing Machinery's Special Interest Group on Computer Human Interaction (SIGCHI) - of which I was a long-time member - would *also* be very surprised that they are not in the field of computer science.
Mark Brittingham
@Roger Pate: Do we need to include the people doing work in natural language processing? After all, its entire purpose is to provide a *user interface* to humans in their native communication medium. Seriously, you are welcome to dig your heels in and insist that you are right: I'm certainly not worried about the downvote. But you should recognize that you are "right" only for those people who agree to split hairs in exactly the manner that you dictate and not for huge swaths of people who work on UI research in the field of Computer Science (like my old dept. at Bell Labs).
Mark Brittingham
@csj: And? If you want to post an answer about pattern recognition, then please do. That would be a different answer from this.
Roger Pate
@Mark: There are applications of NLP that don't involve UI. There are many smart people who work with computers and scientific theories but *don't* work with computer science. Folks in the SIGCHI describe themselves as an "interdisciplinary group .. of computer scientists, software engineers, psychologists, interaction designers, graphic designers, sociologists, and anthropologists, just to name some of the domains ... brought together by a shared understanding that designing useful and usable technology is an interdisciplinary process" http://www.acm.org/sigs/sigs#026
Roger Pate
@Mark: Notice in particular how carefully the SIGCHI description separates "computer scientists", "software engineers", and "interaction designers" and how they state "interdisciplinary" *twice*.
Roger Pate
@Roger Pate: Hidden Markov Models (HMM), when studied in their purist form, are Math, not CS. Pattern Recognition (PR), which can make use of HMM, in my opinion, would then fall under CS - though you are right that PR, when broadly discussed, is not the same topic as we are discussing here. However, the refinement of PR algorithms for the purpose of Gesture Pattern recognition, again in my opinion, would be CS AND on topic for this comment thread. Perhaps implementations of Gesture Pattern recognition algorithms are Software Engineering, and not CS.
csj
@Roger - you realize how silly this all is, right? So, the SIGCHI people who are computer scientists - do they just do the *algorithms* side? Do they avoid implementation (which they leave to software engineers, I guess) so that no one will suspect them of not being true "computer scientists"? I *think* that my publications in signal processing (O(n) single-connected components) and mechanical theorem proving (probabilistic logical connectives) qualify me as a CS guy. But you are making me doubt myself because I did UI design and dev as well - *thinking I was doing CS research.*
Mark Brittingham
@Roger - You are reading a lot into SIGCHI's description if you think that they are "carefully separating" computer scientists, engineers, etc. HCI *is* interdisciplinary and people from a variety of fields are interested in it-including computer scientists. But saying that the evolution of gesture interfaces (or any alternative interface) has nothing to do with Computer Science is bizarre. You may want to tell that to the SUNY Buffalo professors such as Dr. Corso, Dr. Fu, and Dr. Kesavadas - who all include the study of HCI in their profiles. Or don't you consider them "Computer Scientists"?
Mark Brittingham
@Roger - I hope you see this as all in fun... It is truly pretty silly. If you look through my answers, you'll certainly see that I don't mind being wrong and learning from others...so I really am not just digging my heels in. I'm just enjoying the banter, really.
Mark Brittingham
It does not surprise me that professors study (and teach) several related fields or that degree programs require classes from other fields. I doubt anyone (including you and me) would exclusively study compsci. That doesn't make our work (e.g. the professors' work in HCI, your UI design/dev) any less useful or less valuable merely because the "compsci" label isn't applicable. However, this is silly, especially with your insinuations against my character that I'm elitist (the PDP comment) and stubborn (the heel digging comment).
Roger Pate
@Roger - I just thought it was a funny image (about flipping switches on the PDP). And I apologize. Think of it as friendly ribbing. CS people *are* known for the passion of their opinions with respect to technical issues and I'm digging in my heels just as much. So, please don't take my comments as insinuating anything bad about your character. If I thought you were of bad character, I'd have just ignored the whole thread.
Mark Brittingham
@Mark - The PDP-8 comment brought back memories of building one from a kit. After months of twisting wires and reducing boolean logic, there was nothing more satisfying than entering a program in pure binary and getting it working.
csj
+2  A: 

CS is to broad by now to give a general answer to your question. So I stick to theoretical CS: The PCP-Theorem. You can read more e.g. here. Note: this is quite involved mathematically.

mdm
A: 

I would include the massive importance that social networking sites now have in people's lives. Even 5 years ago, while they existed, I'm not sure many people realized how necessary Facebook and Twitter were going to become. More social science than computer science possibly .... this is my first post so forgive me if I've made some massive blunder ;)

topaz
The advent of social networking sites is a change in how computers are used, rather than an advance in computer science. CS covers the mathematical basis of computing, the theoretical aspects. This answer isn't a massive blunder, but it doesn't really address the question.
outis