
What's new in CS Research? - YuriNiyazov
What&#x27;s new in CS Research? When I was going to school in &#x27;06, I was lucky to be taught Deep Learning by Yann LeCun himself. It has taken 10 years for it to become &quot;the hot thing&quot; in the industry. So, my question is, what&#x27;s happening in CS Research right now that will be huge in 10 years?<p>I submitted about a day ago an Ask HN on https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12690794
 and the only comment there rightfully pointed out that the question of what&#x27;s new in CS Research is much more interesting than what&#x27;s new in University CS curriculums.
======
thelambentonion
With the caveat that I don't really know what the next hot thing is going to
be [1], I've found dependently typed programming to be particularly
interesting (Idris being one of the more practical implementations) [2].

The 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](https://eb.host.cs.st-
andrews.ac.uk/drafts/impldtp.pdf)

[3]
[https://www.youtube.com/watch?v=dIxCHQEIGps](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](http://okmij.org/ftp/Haskell/extensible/more.pdf)

~~~
dronemallone
Something I've never understood: what's the deal with all these newfangled
programming languages? Are they somehow better at being translated to
assembly? Every program eventually becomes a bunch of instructions anyway...

~~~
thelambentonion
It depends on what the language developers are after, I suppose. Haskell's
actually not that new [1], and its goal has been to both act both as an
academic language for pushing the boundaries of CS research and as a
foundation for more reliable practical programs.

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](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!

------
zump
Submodular functions.

