For example, see "A Computational Model for TensorFlow" https://research.google.com/pubs/pub46196.html
There are tons of interesting things going on in TensorFlow from a programming language perspective. It has optimization at the low level, like CUDA and SIMD back ends via the Eigen library [1] (which is pretty crazy C++ metaprogramming in its own right).
But it also has optimization at the high level / cluster level, e.g. deciding which nodes to put computations on, to minimize data movement across various networks, etc.
It also has multiple front ends. Python is the main one, but IIRC people were developing others (maybe not at Google).
I worked adjacent to the TensorFlow team, and A LOT of people had BOTH ML and PL skills [2]. It's not an either-or thing. It's best when you have the same person with both sets of expertise.
I think a big problem with large parts of the academic PL community is they're not exposed enough to real applications. Difficulty isn't proportional to real-world benefit. It's certainly difficult to invent type systems to statically detect minor problems, but that doesn't mean it's important for creating and maintaining software. (Sorry, had to rant about that.)
Machine learning is a domain rife with programming language problems, but of course it takes a long time to develop that expertise. I'm sure Lattner would be a good person to synthesize knowledge in the different domains.
[1] http://eigen.tuxfamily.org/index.php?title=Main_Page
[2] edit: I should really say ML and distributed computing skills. But most people with distributed computing skills know a decent amount about programming languages; they overlap in MapReduce-type big data frameworks too.
Expression templates aren't that crazy, in the grand scheme of C++ meta programming.
You could probably an invent your own syntax for it (and I'm sure someone has), but that's a small part of the picture.
1.True multithreading.
2.Native support of spread computation to heterogeneous computation devices, across CPU/GPU/Whatever-Chip-You-Call
3.Auto vectorization.
4.PyTorch style autodiff, and should be able to JIT hotspot as the program runs.
5.Native distributed support with built-in primitives.
6.Visualization as standard library, even language primitives.
Google hires a lot of PL PhDs to do work that isn't very related to PL (we joke about PL PhDs working on ads a lot). One could guess that they just make good developers because of their experience, but the specific knowledge might not be much in demand.
I say unfortunate because pretty much all the big data frameworks could be called "cloud dataflow", including TensorFlow itself.
People using Google Cloud might recognize the name of VP Urs Hoezle, who worked on the OO language Self in the 90's with a lot of the same people [3].
And AFAIK that's where v8 came from... Urs hired his former colleague Lars Bak and told him to write a fast JavaScript interpreter for Chrome.
[1] https://research.google.com/pubs/pub35650.html [2] https://research.google.com/pubs/pub43864.html [3] http://dl.acm.org/citation.cfm?id=619798
https://astares.blogspot.com/2012/04/inside-oovm.html
However it apparently wasn't acquired by Google:
http://www.businesswire.com/news/home/20040727005088/en/Esme...
Other discussion:
This doesn't explain his very brief stint at Tesla as head of AutoPilot.
The real challenge with senior positions is adjusting to new environment/dynamics, not to mention the expectations that come from "legend" status. I'm not a legend, but I certainly had a much easier time in the earlier stages in career just focusing on the tech direct. When you're the hot new hire, a certain group at the new company expects a lot form you, while others who have been there longer think it's just hype. (I'm assuming something similar happened at Tesla).
Wish him all the luck on the new adventure! And being an AI geek myself: NO AI cannot solve everything. Not even close. (at least for now)
Sentient machine conversations are straight up funny to me. Still, I can't help get over the cool/geek factor of working on Machine Learning/Deep learning or exploring new algorithms that could significantly improve the field.
Basically it seemed to boil down to him now being a people manager as much as he is an engineer - he really enjoys helping teams of people succeed at complex technical problems. This doesn't surprise me at all, given how the nature of work often changes as one climbs an org tree.
PL is an area with big challenges, but AI has even bigger challenges and the impact in the society is bigger, much bigger, too. I would change the question and ask why anyone shouldn't be interested in AI?
My point is that it is unlikely to make big steps now to advance in PL, but it is very likely you can do it in AI. The last 5 years have been crazy and the people working on it now is much more than few years ago.
Note: most probably you wont be getting human-like AI anytime soon
If we really create AI that is "indistinguishable of human Intelligence", then all questions about human jobs or research become moot, no?
If someone was to create AI that is human-equivalent (aka strong AI) then that would be their final project as a human being. There would be no need for human professional or academic effort after that point.
Creating AI with human level intelligence isn't going to be so great, most people are complete idiots. Creating AI with above human intelligence is a different story.
- AI might not like to work, as we don't like to work
- You suppose that if you create AI then the AI can create a more intelligence AI and this to the infinity. We don't know if the intelligence is unlimited or limited. We might have reach the top intelligence. (note: the more intelligent the brain the slower it is, and a bigger brain does not relate to intelligence)
And it's totally true! A good manager can make anything happen that their team can accomplish, and their impact can be huge. But some people want to actually work on the stuff, not work on the stuff that works on the stuff.
I'm probably wrong although, it's probably an exposure thing.
Now if you are a PL person interested in AI we would love to have you and your expertise!
Oh and if you want to use AI to solve PL problems like program synthesis and program completion, that's cool too.
-- A former PL researcher making AI way more useful via vanilla PL techniques
Also a few other Swift team members used to be part of ANSI C++ comitee.
(Yes I know, he's still involved in Swift. Its a joke. Though Swift really is a terrible programming language).
Of course, that's just speculation.