Slashdot Mirror


Author of Swift Language Chris Lattner is Leaving Apple; We're Interviewing Him (Ask a Question!) (swift.org)

Software developer Chris Lattner, who is the main author of LLVM as well as Apple's Swift programming language, is leaving Apple, he said today. From a post: When we made Swift open source and launched Swift.org we put a lot of effort into defining a strong community structure. This structure has enabled Apple and the amazingly vibrant Swift community to work together to evolve Swift into a powerful, mature language powering software used by hundreds of millions of people. I'm happy to announce that Ted Kremenek will be taking over for me as "Project Lead" for the Swift project, managing the administrative and leadership responsibility for Swift.org. This recognizes the incredible effort he has already been putting into the project, and reflects a decision I've made to leave Apple later this month to pursue an opportunity in another space. We're delighted to share that we are interviewing Lattner, who says he's a "long-time reader/fan of Slashdot." Please leave your question in the comments section. Lattner says he'll talk about "open source (llvm/clang/swift/etc) or personal topics," but has requested that we do not ask him about Apple, which is understandable.

Update: Lattner is joining Tesla.

10 of 339 comments (clear)

  1. Is it because ... by Hognoxious · · Score: 5, Funny

    Is it because you like headphone jacks?

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  2. C# by Anonymous Coward · · Score: 5, Interesting

    What do you think about Microsoft and C# versus the merits of Swift?

  3. as a language designer by superwiz · · Score: 5, Interesting

    Since you have been involved with 2 lauded languages, you are in a good position to answer the following question: "are modern languages forced to rely on language run-time to compensate for the facilities lacking in modern operating systems?" In other words, have the languages tried to compensate for the fact that there are no new OS-level light-weight paradigms to take advantage of multi-core processors?

    --
    Any guest worker system is indistinguishable from indentured servitude.
  4. Future of LLVM? by mveloso · · Score: 5, Interesting

    Where do you see LLVM going?

  5. Re:If this is open source... by carlhaagen · · Score: 5, Insightful

    You may have misunderstood what "open source" means.

  6. Re:Why are strings passed by value? by shmlco · · Score: 5, Informative

    In Swift arrays, dictionaries and strings are structures with value-semantics. As to why, well, to quote the Swift language reference manual: "One of the primary reasons to choose value types over reference types is the ability to more easily reason about your code. If you always get a unique, copied instance, you can trust that no other part of your app is changing the data under the covers. "

    Behind the scenes, however, structures (including strings) are passed by pointer. Swift then uses copy on write so that the objects are completely copied only if and when the program attempts to change a value in them.

    As such, a string parameter to a function has value semantics, but it behaves as if it's an immutable pass-by-reference object from a performance standpoint. Kind of the best of both worlds.

    An exception would be a parameter specified as inout. (e.g. func f(s:inout String) )

    --
    Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
  7. Parallelism by bill_mcgonigle · · Score: 5, Interesting

    Say, about fifteen years ago, there was huge buzz about how languages and compilers were going to take care of the "Moore's Law Problem" by automating the parallelism of every task that could be broken up. With single-static assignment trees and the like the programmer was going to be freed from manually doing the parallelism.

    With manufacturers starting to turn out 32- and 64-core chips, I'm wondering how well did we did on that front. I don't see a ton of software automatically not pegging a core on my CPU's. The ones that aren't quite as bad are mostly just doing a fork() in 2017. Did we get anywhere? Are we almost there? Is software just not compiled right now? Did it turn out to be harder than expected? Were languages not up to the task? Is hardware (e.g. memory access architectures) insufficient? Was the possibility oversold in the first place?

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  8. Any insight into language design choices? by EMB+Numbers · · Score: 5, Interesting

    I am a 25+ year Objective-C programmer and among other topics, I teach "Mobile App Development" and "Comparative Languages" at a university.

    I confess to being perplexed by some Swift language design decisions. For example,

    - Why does Swift have both a "var" keyword and a "let" keyword? One should be sufficient with the other being a default behavior. If a symbol is not declared "var" then just assume it is constant or visa versa. Furthermore, it may not be necessary to have either of the key words because (I think) in every case, the need for variability and mutation should be determinable by the compiler. Type is already being inferred by the compiler, and mutability could reasonably be considered an aspect of type.

    - Why are Swift collection types like Data always mutable? What happened to the concept of immutable containers from Cocoa. [Yes, I know the "bridged" CF types are always mutable, but that was another bad decision IMHO.]

    - Swift is intended to be a "Systems Programming Language", is it not? Yet, there is no support for "volatile" variables needed to support fundamental "system" features like direct memory access from peripheral hardware.

    - Having experienced frustration trying to port high performance graphics code from C/C++/Objective C to Swift, what's up with that? IMHO, Apple's sample code for using OpenGL/GLKit/Metal from Swift leaves the impression that Swift is unsuited to the style of "low level" programming needed/used by OpenGL/GLKit/Metal.

    - Why not support "dynamic runtime features" like the ones provided by the Objective-C language and runtime? It's partly a trick question because Swift is remarkably "dynamic" through use of closures and other features, but why not go "all the way?"

    - Finally, a trivial aesthetic critique: Why "var foo : typename" like Ada and Pascal (IIRC) instead of "var typename foo" like every language that inherited C style syntax? Is there an advantage to the Swift approach that I haven't seen, or was it just an aesthetic choice? Did the choice not produce some IMHO "silly" syntax for method declarations with named parameters?

  9. Questions, and my best wishes. by Volanin · · Score: 5, Interesting

    Since you're the creator of LLVM, I'd like to know, in your opinion what's the greatest advantage of LLVM/Clang over the tradicional and established GNU GCC compiler. Also, what's the greatest advantage of GNU GCC (or if you'd prefer, any other compiler) over LLVM/Clang, something that you'd like to "port" someday?

    Also, since I work mostly with Linux development, what do you see as the greatest advantages of the Apple developer stack (libraries, xcode, etc) that are sorely lacking in the Linux developing scene, that we should strive to copy/implement?

    By the way, and unrelated, congratulations on the Walnut Dining Table you made. It's amazing!
    https://twitter.com/clattner_l...

    --
    If I clone myself, can I call it a thread?
    If a girl winks to us, can I call it a race condition?
  10. Re:What hardware is used for workstations at apple by Anonymous Coward · · Score: 5, Informative

    Posting as AC, as I have in the past worked for Apple. Most developers at Apple have both a desktop and a laptop, usually an iMac and then whatever portable that they picked when the joined (for some developers this is primarily a meeting tool). Depending on what that developer does they then have a collection of other hardware (often pooled with people on their team) for development and testing (e.g.: hardware with diverse GPUs or screen resolutions). And then in other cases one or more prototype machine (sometimes in special secure labs).

    There is a real culture of making sure that the developers run on the shipping hardware, so ordering anything custom (even more RAM) is often a difficult thing. At one point there was a lottery to determine who got to use the latest shipping iPhones and who was forced to use the oldest supported model, to make sure that people were feeling the pain of older hardware. A number of managers were except from that lottery... they got the oldest model by fiat.

    The build clusters used to be Xserves but that was moving to clusters of Mac minis and MacPros. There were some Windows machines around (think iTunes and Quicktime), and I know some groups that did chip-level-design used linux, but standard Apple hardware rules the day.