His work has been distinguished by the melding of language safety, reliability and clarity, that is, not merely having sophisticated constructs that help the guarantee correctness, but also making code simple, beautiful and easy to read. Ultimately writing safe code depends on the ability of the programmer to comprehend it, so creating a programming environment that's successful on all fronts is a foundational achievement.
A notable example: LLVM enabled ARC, a beautifully simple approach to memory management that removed much (not all) of the need for the developer to implement details in code, while providing high efficiency and, perhaps even more importantly, predictable performance (no garbage collection pauses). These are all essential for safety-critical realtime software.
A GC algorithm known since the early days of Lisp GC research and used in languages like Mesa/Cedar in the late 70's.
I can think of lots of other examples, like how VB, Delphi and C++ Builder interfaced with COM in the mid-90's.
Yes, ARC PR made automatic memory management to those without background in compiler research more easy to accept, specially if they weren't aware of the stability issues that trying to implement a tracing GC in Objective-C semantics meant.
However it goes without saying, that Lattner is really brilliant and his work on LLVM as a compiler building tool, as well as, clang in regards to improving the status quo of C static analysis tooling and compiler error messages, is really notable.
In regards to ARC, maybe also in terms of PR, as now there is a whole generation of developers that thinks reference counting isn't garbage collection.
One curious thing is how similar Swift is to modern Pascal, ie Delphi. It has many other influences, and it is certainly not Pascal with another syntax, but reading the Apple guide when Swift was released gave frequent moments of deja-vu.
On the subject of COM, yes. If you think COM means ATL you should try it in a language designed to work with interfaces and reference counting inbuilt - Delphi has COM interfaces as first-class language primitives, and a heap of classes and other code making COM quite straightforward. Much of this even spills into C++Builder, though since it's a different language it's not as clean as in Delphi. Still miles past ATL though.
Re ARC: I think the thing that makes it appealing is it's conceptually simple, completely deterministic, and can be traced by reading code rather than understanding an environment's implementation. Delphi does ARC now too, and if you've ever wanted ARC in C++, C++Builder optionally supports it for some classes. ARC is not yet on Windows for either language, we're talking just iOS, Android and soon Linux here.
(Disclosure: I recently started working at Embarcadero on C++Builder. This is a personal comment only. But liking the languages Embarcadero makes was one main reason I joined.)
Lattner is a well known expert on compilers. Having used Swift since its inception, I would call into question the reliability of the Swift LLVM compiler. In its current state (3.0.2) its absolutely terrible and does not back up the sentiment; "But fast-moving Silicon Valley needs a fundamental shift in quality standards when it comes to safety-critical software, and if you look closely, Lattner has been leading this charge at the language and compiler level".
So, yes I can see why one would call Lattner at the forefront of making more reliable compilers and pushing shifts in quality standards in fast-moving Silicon Valley. It is an awesome achievement to create a new language that improves both readability and safety and even more awesome to get it mainstreamed so quickly.
There are a few people who I would like to trade places with. Lattner is one of them, Musk is another. They both fulfill different parts of my long-held dreams. So I consider them to both be quite awesome. Its cool that they'll be working together too I guess.
Not that dev'ing should rise to that level, but it isn't the typical level most developers work at. Also, if he is more of a "software correctness and reliability" guy as abalone says he is, then yes, that is the right direction.
It is not fair to judge Lattner's ability or commitment to safety based upon Xcode and Swift. One of these predates him, the other is the result of his decisions (no doubt) but also countless decisions of others, including those above his pay grade at Apple.
Xcode is basically the evolution of something designed for NEXT. Swift is a solution to various problems in application development. I'm not aware if he (et.al.) had real time processing or safety critical devices in mind with 3.0.2.
One idea to get correcter code is clean code layout (I heard good things about the LLVM code base), simple to read code and compilers that exploit theoretical knowledge we gained over years of compiler and type theory research. I think Chris Lattner has expertise in all of them (or at least knows about their importance, contributions and drawbacks), and if want to build a full-blown self-driving car it is important to have no indeterminism in your car, and advanced languages and compilers help to guarantee specific statements about your code.
So it absolutely makes sense to invest in your compiler research team for safety, as our security, reliability and correctness expectations will rise (which is good) in particular for self-driving cars (they are not just DNNs).
One of the concepts is to prevent the use of any dynamic behavior, which means you don't need any garbage collection at all. Because garbage collection is not predictable. It can be good and bad, but even a good one is not predictable.
Embedded design and development is completely different to classical IT. For IT that sounds archaic. But it always proved right at the end.
And regarding memory allocation in reliable automotive systems: Yes, the best practice would be not to allocate at all to get to some deterministic behavior. However I've seen lots of projects where "don't allocate" is implemented as "don't allocate with malloc", and you find dozens of custom memory allocators and pools throughout the code. Some of those designs are probably less reliable and safe than using a garbage collected language would be.
No garbage collection means more fragmentation though which can be an issue at some point perf-wise, there's no free lunch.
so build the autopilot and other systems in haskell?
This move increases his compensation and clout. Post-Tesla, he'll only have VP or founder titles elsewhere, never anything lower-level (unless he gets his old job back). The change must be welcoming, too.
That Apple could not retain him speaks volumes of the company they've become. They're a conglomerate at the intersection of tech and fashion. Groundbreaking engineering is not always given its proper due (or compensation) because there's only so many seats at the table. They've become rigidly corporate and not particularly inspiring.
Good luck to him, and good job taking a chance. Working for someone with a vision other than "thin" must be a welcoming change.
This is so spot on. I would kill for a thicker phone with a less vibrant display that would last 2x as long on a single charge. They're pushing stuff that the consumer doesn't want (thinner/less battery volume, no headphone jack) in order to make money. It reminds me a lot of the TV industry pushing 3D TV's. I don't know a single person who has ever watched, let alone regularly, any 3D content on their 3D TV. It's a technology that few wanted but was pushed to drive sales.
But how do you know that people don't want this? All the people who told me they were switching to Android because of the headphone jack ended up with iPhone 7s anyways and love them. And now it seems that Samsung's next phone is going to ditch the jack too. Not to mention the numbers aren't really in favor of suggesting this change is hugely unpopular.
Sorry if this sounds naive (and it's not intended as veiled criticism), but could it not be the case just that he is more valuable to Tesla so they are able to justify offering him more compensation?
http://www.motortrend.com/news/apple-car-dead-software-shift...
Or it could be just that there 100s of engineers and tech leads working on Swift/Xcode/LLVM and giving enormous compensation to one because (s)he is famous engineer and wanted to leave does not really make sense. Unlike marketing or sales writing core software does not seem to be star driven, or at least I hope so.
Well said. Apple would have made the strides it did in its developer platform had it not been for Lattner. It does seem that the company has different priorities than it did when he was hired
He is an inspirational leader and talented people want to work with him. It appears it will be harder and harder to attract and keep talent at Apple with out a leader like Steve Jobs.
While Tesla is still on the upward rocket phase while they are still figuring out their product/market. Much more exciting for the type of talent who are looking to make a big impact on the world.
Steve Jobs brought that life back into Apple when he rejoined and maintained that environment through various product launches over many years.
I'm not sure I'd want them to still pretend they are the same company or not, rather they should work on the talent they have. Just like how basketball teams rebuild after losing their star players, you rebuild around new talent instead of clinging on to past glory.
Chris Lattner has been at Apple for over 11 years. He shepherded LLVM, Clang, lldb, and Swift. All while climbing the ranks to Director. A huge number of engineers would simply be ready to think about and do something different after that much time.
You might say that Elon answers "Why Tesla?" but in no way can you claim an answer to "Why leave Apple?".
(I have no inside knowledge, I've just been in the industry long enough to have gone through this myself).
Seems obvious, doesn't it? Nothing interesting going on.
Under Jobs, terms like "courage" and "innovation" used to mean something, like kicking sand in the face of the entire mobile phone industry and competing against their own bestselling product. Tim Cook's idea of "courage" involves selecting a headphone jack in a CAD tool and hitting the Delete key. And "innovation" means late nights at the office pushing the limits of dongle engineering.
This is a convenient narrative when Tesla makes a high profile hire but they've also lost a lot of talented engineers and I don't remember the convention wisdom being that it was because of Elon's shortcomings.
I can't even imagine what Musk would do with Apple's $200 billion in cash. I think he would've been much more daring with that money than even Steve Jobs would've been.
But I think Apple missed its shot, and the merger of Tesla and Solar City probably sealed that for good. Now Musk is probably already seeing a 10-20x larger combined Tesla/Solar City company in his head, 10 years from now, and a potential merger with a bigger Space X as well.
So from his point of view, it probably won't be worth it anymore for him. He would probably have to take over a declining iPhone market and deal with that at the same time as dealing with explosive growth at Tesla and an imminent launch of SpaceX' big rocket to Mars.
On the other hand there would be hundreds of billions of dollars he could get access to, so I wouldn't say it's impossible to happen anymore either. However, at least to me, this would only be interesting from the "let's give Musk unlimited money and see what he can do wit it" point of view. Otherwise, I would rather see Tesla/SpaceX be on their own, than join an Apple/Tesla/SpaceX megacorp.
I'm not knowledgable enough about the psychological/sociological aspects of this but I wonder if it's possible to maintain that kind of culture when you have $200 billion sitting in the bank. It might lead to a kind of resource curse that some countries suffer from.
I wonder if there have been studies done on this at the corporate level.
It's questionable if he would be the profit-maximizing CEO choice for Apple though.
Perhaps he wouldn't even want the job (if we ignore the cash), because the smartphone and computer industry is maturing, i.e. tougher competition, decreasing rate of innovation, maintenance mode ahead.
My favourite bosses were engineers first.
And for the iPhone Vs Electric Car comparison. Oh well may be i am old school, if BMW or other Car makers made a Electric Car ( assuming we have to choose a e-car ) i would choose them over Tesla any day. The interior quality of Tesla just dont compare well. The iPhone was truly a revolutionary product, in that many people tried smartphone before but they have ALL FAILED. This is speaking from someone who has used pretty much all smart phone prior to iPhone introduction.
If anything i say the difference is Elon Musk lack of taste.
It's well documented that Android was going to be Blackberry-ish, then they pivoted to be iPhone-ish after the original iPhone announcement. Think the App Store and things like Uber, which exist primarily as mobile apps.
Yes, he might change the world if/once he gets to Mars, but most of his stuff is a marketing tech demo.
Bell Labs changed the world. Tesla did not.
Most engineers wouldn't have thought about having proportionally spaced fonts back in the 80's when personal computers only had 80 x 24 fixed withd character green phosphor displays.
When Jobs dropped out of regular college and dropped back in to take the classes he was truly interested in, he took calligraphy; years later that lead to the Mac being for first personal computer (the LISA had it too, but that was the $10,000 predecessor to the Mac) to have proportionally spaced, bitmap display.
That's not something Woz (or someone like him) would have prioritized for a brand new computing platform.
Tangential, but I really hate the term "poach" when referring to recruiting employees.
We shouldn't think of hiring people as "poaching", because employees are not property. You can't "poach" an employee because there's no ownership, and employees should be free to make their own decisions regarding their employment opportunities.
[1] http://www.morganstanley.com/profiles/bjarne-stroustrup-mana...
In the typical enterprise, whose domain isn't selling software products, C++ tends to be mostly used as infrastructure language for .NET/Java/JS native libraries or interacting with their runtime APIs.
[1] https://www.nvidia.com/object/tesla-and-nvidia.html [2] https://www.nvidia.com/object/audi-and-nvidia.html [3] http://docs.nvidia.com/cuda/nvvm-ir-spec/#axzz4VMqXIKfo
My guess would be that Tesla's ambitions are set on controlling the whole stack. Something along the lines of a custom software toolchain for tailor-built silicon.
[1] http://llvm.org/devmtg/2014-10/Slides/Baker-CustomHardwareSt...
Given it's largely a field for intellectuals, sticking at the one thing for a long time can become repetitive and boring; losing the challenge and the appeal.
I'm reminded of their loss of both Avie Tevanian and Bertrand Serlet.
Now, the new mystery: What does this mean for Apple's car project?
Yes, I realize he probably didn't have much (or anything) to do with it (whatever it really even is). There are going to be some batshit crazy theories though, and I can't wait to see how this affects Apple's stock price.
I don't think we can derive much about their project from this hire tbh.
So his new work will have a lot to do with his inters ;)
All of those ("programming languages, compilers, debuggers, operating systems, graphics, and other system software") imply interest in tools for software development, where here they'd mostly be developing software (self driving engines etc), period.
Plus, I think the latest rumors say Apple has given up on making a car anyway, and it's working on a Waymo competitor of sorts.
This has gotten so much coverage on the back of ... nothing really.
Because that was also part of the parents framing for the conflict.
Pure lucky, but my reasoning was that it is difficult for a compiler (etc) engineer like him to find a better job than the one he was doing at Apple: developers' tools, compiler infrastructure, a new programming language, Coding playground and so on.
http://venturebeat.com/2015/10/08/elon-musk-if-you-dont-make...
This is awful though. People can't really think spending time on autopilot for rich people sports cars is more important than the LLVM compiler infrastructure.
Give me a break!
Even if tesla invents cool new batteries and changes the way we think about power all of that stuff still has to run on software, that the compiler infrastructure depends on...
But seriously, exciting news for Tesla.