4 ms·
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 (Id
by thelambentonion 10y ago
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
- zump 10y ago> And I try not to worry about it too much :) You miss out on lots of $.
- thelambentonion 10y agoI actually had a conversation about this earlier today, but overall I don't think I mind a whole lot. 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 http://www.clash-lang.org
- zump 10y agoLook up MyHDL.
- dronemallone 10y agoSomething 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 10y agoIt 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!