What's new in CS Research?
What's new in CS Research? When I was going to school in '06, I was lucky to be taught Deep Learning by Yann LeCun himself. It has taken 10 years for it to become "the hot thing" in the industry. So, my question is, what's happening in CS Research right now that will be huge in 10 years?
I submitted about a day ago an Ask HN on https://news.ycombinator.com/item?id=12690794 and the only comment there rightfully pointed out that the question of what's new in CS Research is much more interesting than what's new in University CS curriculums.
8 comments
[ 3.0 ms ] story [ 20.9 ms ] threadThe Glasgow Haskell Compiler is also ostensibly a long-lived, continuously updating research project. Simon Peyton Jones summarized the State of GHC recently [3].
[1] And I try not to worry about it too much :)
[2] https://eb.host.cs.st-andrews.ac.uk/drafts/impldtp.pdf
[3] https://www.youtube.com/watch?v=dIxCHQEIGps
[*] Another paper that looks cool, but I can't really make head-or-tail of: http://okmij.org/ftp/Haskell/extensible/more.pdf
You miss out on lots of $.
Chasing the next popular bit of research 10 years in advance is a bit of a fool's errand, so the best you can do is follow along with fields that you think are personally interesting.
For a more serious answer, I do think that FPGAs are going to become much more applicable to general-purpose-computing soon. Most of the tooling and language support around them is pretty archaic, and tools like CλaSH [1] make development much more friendly.
[1] http://www.clash-lang.org
Idris is an experimental language exploring the practical benefits of dependent types, and providing a modular backend for code generation (e.g. it can emit either C or Javascript currently).
I wouldn't say that Haskell is somehow better at being translated to assembly than, say, C. The real power is in the ability for the language to express the author's intent, and for that intent to be reflected in the resultant machine instructions. It's something that's surprisingly difficult to do, and part of why there are so many languages with different syntax and semantics [2].
One way to try and guarantee that the author's intent is translated accurately is to try and add constraints in the form of a strong type system (e.g. Haskell). I think this is a rather neat idea, and at the very least worthy of some time skimming through papers or listening to talks.
As software gets more and more complex, more people are finding that these ideas are useful in non-academic settings. I think my favorite example is Galois' SMACCMpilot project, which seeks to write secure, verified autopilot code in a Haskell DSL [3].
[1] First appeared around 1990
[2] n.b. I'm not a subject matter expert, just an interested hobbyist
[3] http://smaccmpilot.org
[*] Addendum: CS isn't my original field of education, so take all of these opinions with a heaping spoonful of salt. Corrections and clarifications to any of the above would be appreciated!