5 ms·
Agreed. Right now the only significant research breakthrough I've seen is the work on formal analysis of programs. I have read hundreds of computer science pa
by pnathan 15y ago
Agreed. Right now the only significant research breakthrough I've seen is the work on formal analysis of programs.
I have read hundreds of computer science papers from the 60s, 70s and 80s as part of my academic work, and frankly, everything I'm seeing today was conceptualized and/or invented then. It's staggeringly obvious if you read the sweep of history as written by journal article titles in, say, Software Practice & Experience, between 1970 and 2010. Somewhere in the late 80s things just peter out.
I strongly suspect a few things have come into play here.
* Disdain for formal mathematics by software writers. Mathematics is so absolutely key to heavy-duty breakthroughs in computer science.
* Increasing percentages of academics who never worked in the real world (and consequently knew how to get stuff done or what really matters).
* Lack of the academic industrial research labs such (Hi MS Labs! You are awesome! Keep it up please!). Also, lack of massive DARPA/DoD/DoE & NASA funding.
* The general decline of academic research quality, sacrificed on the altar of metrics (e.g., papers per year) & budget cuts.
* Friction caused by standards and legacy data & code. It's easy to innovate in a greenfield world. When you have to support five gazillion things & have 'batteries included', barriers to adoption are a lot higher.
I suspect major seminal work in the next decade will come from the Haskell crowd, since they are the most mathematics-heavy writers, and it is gaining traction in Microsoft and Google, which have the budget to support offbeat research.
- deleted 15y ago[deleted]
- pointyhat 15y agoThank you - this is my entire line of thought.
- beambot 15y agoSo... you're given a blank check, either as a industrial research lab manager or DARPA program manager. What "revolutionary" research in CS would you champion? It's easy to be critical from the sidelines. There are very smart people still working in this space, including Knuth himself.
- pnathan 15y agoWell, that's a good challenge. As it so happens, I do do research for my Master's, although sadly, it's just evolutionary, due to me not being bright enough, time & funds. Fortunately for my graduation date, I don't have to come up with something seminal. :-) I am working on some parallel debugging technology for an XMOS XCore chip. It's mostly a rehash of techniques...from the 80s. :-) If I had a really revolutionary idea, I would have dug up a PhD program to sponsor me and be working on it, telling it everyone who would listen. I don't have that class of ideas right now. Research is hard, and takes a lot of very bright people collaborating for years and creating a good tribal knowledge to come up with really strong results. The MIT lab is a good example, as is the Bell labs. For an evolutionary approach, I would like to revisit the on-demand compilation to native code of dynamic languages. Getting Python/Ruby/Perl to compile native on the fly would provide an efficiency boost. (Please note, Steel Bank Common Lisp already does this). Another needed research area is a usable and robust certificate authority system. Diginotar/Comodo-style hacks need to stop, ASAP. Yet another evolutionary approach would be to work on a provably secure/levels of trust style system for phones operating systems (c.f. early 80s DARPA research). A more revolutionary research program would be to revisit the WIMP metaphors for computer use. Review the early Stanford/PARC research and take a different jumping off point. I strongly suspect there's a local maximum of awesome between pure CLI and pure WIMP, and we've not gotten there yet. A more ambitious (possibly physically impossible?) project would be to determine how to create massive WiFi ranges: single WiFi hubs that easily cover a mile. Determining how to create, say, 10Gbit Wifi would provide a very nice public good. I've had good success working with CSP-style parallelism, and would love to see more parallel constructions that use it (c.f. occam). That avenue may be the 'normal' way forward for parallel code. None - NONE - of the above technologies is more than a rehash of old tech. SCADA systems are sickeningly insecure/fragile. I would fund heavy-duty research into how to put together secure SCADA systems (Protocols, operating systems, control centers, etc, etc), and have them be a straightforward upgrade. I suspect that satisfying the constraints of SCADA systems would result in some interesting new knowledge. Possibly a distributed yet authoritative CA system would induce some groundbreaking algorithms relating to trust and efficient distributed systems. Automatic testing, verification, and reliability analyses based on Software Contracts instead of HM typing seems like it'd be fruitful to me, but I don't know the state of the art there.