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.
Update: Lattner is joining Tesla.
Is it because you like headphone jacks?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Would you be able to Taylor Swift to my needs?
How cross-platform is Swift ?
Are the GUI libraries platform-dependent or independent ?
I.E: can i write a single Swift program with a GUI that will compile, work the same and look similar on multiple platforms: Linux, Mac OS, Real Unix-es & BSDs, AIX, Windows ?
1% APY, No fees, Online Bank https://captl1.co/2uIErYq Don't let your $$$ sit in a no-interest acct.
What do you think about Microsoft and C# versus the merits of Swift?
Strings are immutable pass-by-reference objects in most modern languages. Why did you make this decision?
Has it become a shell of what it once was?
Do you view SWIFT as a replacement or compliment to obj-c?
What are your thoughts on Libreboot and the recent controversy involving the Free Software Foundation?
Its been commented on that Swift tutorials look IDENTICAL to Groovy tutorials to the point that you even use the same variable names in examples (http://glaforge.appspot.com/article/apple-s-swift-programming-language-inspired-by-groovy). When created a Python to Swift converter, I responded 'wouldn't it have been easier to do a 'Swift to Groovy' converter??? To which developers replied, well naturally.
So how much of Swift was inspired by Groovy? Both come from more high-end language and look and act almost identical.
Do you actually believe any of this?
What hardware is used for workstations at apple?
Mac pro's?
Mac pro's with non apple cpu upgrades?
Imac's?
Laptops?
Currently, when I create a iOS app, Swift libraries are copied into the bundle. Any idea when the Swift libraries will be bundled with the operating system and not within the app?
This creates a problem with developers who want to distribute third party frameworks and also increases app size.
I much appreciated your work with Swift. Cheers!
Why did Swift NOT have exception handling in the first couple of versions?
--- Andy West http://andywest.org
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.
Where do you see LLVM going?
You may have misunderstood what "open source" means.
He left his job at Apple, so you are interviewing him? I don't think Chris wants to work at Slashdot all that much. Good luck anyway.
-- the computer doesn't want any beer, no matter how much you think it does. NEVER, EVER feed your computer beer.
Does this mean the Visual Studio based "write once run anywhere" encapsulated in microsoft xamarin won?
For those working on Swift/LLVM outside of Apple it would be nice to know if Apple is changing its investment in the projects. Is the number of people working on LLVM/Swift at Apple changing?
Or is it apples and oranges?
C# is well-established, and Microsoft has shown that it's very willing to adapt C# as necessary to support new techniques. I wouldn't be surprised at all if C# inherited good ideas from Swift.
I'm more interested in what Chris has to say about Rust, another much-newer language that's much closer in age to Swift, but also different from established languages like C#, C++ and Java.
Chris, what are your general thoughts about Rust as a programming language?
Seeing as it fits somewhere between languages like C++ and Swift/Go/C#/Java, some programmers find it to be impractical and ill-positioned. While it did get a huge amount of hype at various programming discussion forums in the recent past, a lot of this has died off, perhaps because of people becoming disillusioned with it.
What do you think its prospects for the future are like?
While a language like Swift has the backing of Apple, and Go has the backing of Google, and C# has the backing of Microsoft, do you think that Rust being backed by a much smaller and perhaps less-resilient organization (Mozilla) is a liability that should discourage the use of Rust for serious, long-term software projects?
Also, while Swift has a very reasonable code of conduct, what are your thoughts about Rust's community, including its rather extreme focus on its code of conduct? Some people, even those who support strict codes of conduct, see Rust's as being tyrannical. Within the Rust community, it's almost like social causes are considered more important than programming or software development. What are your thoughts about the unusual control that the Rust project tries to exert over its community?
Thank you for your time, Chris, and thank you so much for the awesome contributions you've made to LLVM, Clang and Swift!
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)
As someone who has been involved with the development of programming languages, do you think it is still possible to come up with a modern-day replacement for BASIC that can operate in modern GUI environments? It seems like all attempts since went went GUI (aside from maybe early VisualBASIC and Hypercard) have been too complicated, and all attempts have been platform-specific or abandoned. With the emphasis on coding in schools, it seems like it would be helpful to have a good, simple, introductory language like we had in BASIC.
Why is the parent comment modded down?
It may be provocatively worded, but those questions are relevant and on-topic.
Lattner is/was an important and high-ranking individual within Apple. I'm sure he has lots of relevant insight into the current and future states of Apple.
Even if he can't currently say much, he should at least be given the parent comments questions for consideration. I, and I'm sure many others here, would like to see how he'd respond.
Like I say to the whiners on github who are constantly asking for the windows version, pull request or shut the fuck up.
Probably because the article states he won't be answering Apple questions. He probably can't even if he wanted, Apple is like Scientology and would hunt him down.
Unless there is an exceptional and compelling business justification, Apple uses the same Macs that customers buy at the Apple Store; and for various good reasons, employees are strongly discouraged from upgraded the components.
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?
It means that the source code is openly available. The end.
Open source means that the source code is available and you can modify it and redistribute it with minimal conditions.
It does not mean "portable", which already had a word describing the concept, namely "portable"!
Most open source software ends up ported to other platforms, because as the source is available, it's relatively easy for someone to do it if the original maintainer doesn't want to, but that doesn't make them the same thing.
You can read more about open source here. The related concept of Free Software (mostly a matter of emphasis - open source advocates tend to focus on the benefits of a community driven development matter, while free software advocates tend to focus on the right to have and to share knowledge) is described fairly well here. While the two philosophies are frequently considered rivals, software categorized as free software is virtually always also open source, and vice versa.
You are not alone. This is not normal. None of this is normal.
YOU and the mods may have misunderstood what Open Source means. Even RMS allows GNU software to run on Windows, although he probably does so for pragmatic reasons. Other Open Source license authors care even less, and allow their code to be integrated right into Windows.
When is Apple going to toss macOS (aka OS X) over to the open source community, drop desktop (and possibly) laptop HW completely, and focus solely on mobile HW, iOS, and very thin cars.
Did you find any inspiration from the Ada programming language? Also, what are your thoughts about the general move away from low-level programming and strong-typing?
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?
Its been commented on that Swift tutorials look IDENTICAL to Groovy tutorials to the point that you even use the same variable names in examples (http://glaforge.appspot.com/article/apple-s-swift-programming-language-inspired-by-groovy). When created a Python to Swift converter, I responded 'wouldn't it have been easier to do a 'Swift to Groovy' converter??? To which developers replied, well naturally. So how much of Swift was inspired by Groovy? Both come from more high-end language and look and act almost identical.
This is my sig. There are many like it but this one is mine.
you forgot the obvious: iPad
Do you see Swift emerging to be a language for runtime-based metaprogramming in the near future? Swift is touted as a static, type-safe, systems programming language (and it is, for the most part), but we know it features a rich runtime internally. Will Swift programs shift to a hybrid compiled/interpreted model? I understand that Swift is about compiler smarts, features like high level SIL optimization and WMO optimizations make it a brilliantly performant language; however as the complexity of software increases, would a hybrid model, where certain Swift code is generated, optimized and given the JIT treatment, not be better?
I'll phrase my question in his preferred, more-readable syntax:
What.Will?.He?.Do?.At?.His?.New?.Venture?
My questions have to do with prog lang projects and the Social Justice phenomenon that has become so prevalent lately, including within many modern prog lang projects.
(Please, let's keep the discussion here civil. I'm not interested in debating the merits or lack thereof of Social Justice. I want us to focus solely on the social phenomenon and how it relates to running large prog lang projects with many contributors.)
1) As a prog lang project leader, do you think that Social Justice needs to be a part of a modern prog lang project?
2) Are there more divisions now that Social Justice highlights things like race and gender more than ever before, back when we were all just programmers working together and we didnt' care about things like race or gender?
3) Does it make sense for a prog lang project to focus so much on things like race and gender, especially for open source projects where the contributors are spread around the world and never actually see or directly interact with each other?
4) Does the focus on social issues distract from important technical issues?
5) Do harsh Codes of Conduct prevent the passionate, heated and sometimes rough & tumble technical discussions that are needed to create great works of software?
6) What does your wife, who has also been involved with llvm, think about the role and impact of Social Justice on prog lang projects?
What are your views on metaprogramming? Do you see us shifting to a hybrid compiled/interpreted Swift code model? Swift is a compiler-smarts language, but is compiler smarts enough?
Is there any hope for VLIW architectures? The general consensus seems to be that Itanium tanked because the compiler technology wasn't able to make the leap needed. Linus complained about the Itanium ISA exposing the pipelines to assembly developers. What are the challenges from a compiler writers perspective with VLIW?
Having been on campus many times and knowing a bunch of hardware people, it's my understanding outside of specific testing, the hardware team, a few special installs, and some servers, nobody has anything other than regular machines. The special installs are no different than the kind of special installs that integrated have already done - like making an iMac 27 into a flush-mounted wall device with a touch screen.
This is really an XCode question. But why does XCode not have a native package manager? I've programmed commercial programs with both Visual Studio and XCode and I can say that NuGet is fantastic for C# and really helps boost the C# ecosystem. Why is there nothing like that for XCode.
Perl and Python also have great external libraries (as probably do other languages that I have never really used)
Oh and BTW why does refactoring of Swift code suck compared to Objective-C?
I am Slashdot. Are you Slashdot as well?
Why is the Operating System Resource Center gone from your site on nondot.org/sabre?
There are a couple mirrors that date back to 2006 but what happened to the main site?
Pain is merely failure leaving the body
Most open source software ends up ported to other platforms, because as the source is available, it's relatively easy for someone to do it if the original maintainer doesn't want to, but that doesn't make them the same thing.
If you're putting out Open Source software for Linux and Mac, a Windows version shouldn't be that difficult. Especially since Apple has Windows development teams on hand to do the work.
Hi,
Do you see Swift bring used for developing Android Apps?
Do you see Swift being used for server side programming?
RMS didn't "allow" software to run on Windows, someone ported it to Windows. (Kind of a big difference.)
You (or someone else) are free to pull the source and do a Windows port.
Like these guys did....
http://www.infoworld.com/artic...
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
YOU and the mods may have misunderstood what Open Source means.
Someone doesn’t know the difference between “open source” and “cross-platform.” The source code is open and available to you, so if you want it on Windows, then port it to Windows. Open source doesn’t require that someone else do the work of porting the software to your pet platform; that’s just your own laziness.
Let's skip the boring technical details, and ask some juicier insider info.
Apple has done great things for LLVM/Clang. I believe you were the key conductor in this. Does it mean you leaving we can expect less in this regard in the future, or are you just passing the torch in there, keeping it capable hands (aka there's not much left for you to do)?
Or some other change of circumstances?
Open source doesnâ(TM)t require that someone else do the work of porting the software to your pet platform; thatâ(TM)s just your own laziness.
If a CORPORATION can put out the Linux and Mac versions, and have Windows developers on staff, porting to Windows shouldn't be a problem.
I recently watched the ESPN 30 for 30 about you. Do people really still hate you that much?
Are you joining the US Cabinet, by any chance?
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.
As a frequent user of several LLVM-based projects I was curious if you could contrast where it stands today with your current vision of it when you first began, and also was curious whether your departure will impact LLVM's development.
Will there always be a need for general-purpose, multi-paradigm, compiled programming language[s] to be developed or do you think we'll eventually get to a point where the existing list is good enough?
Do you see these questions as Optionals?
Boxers or briefs?
Thank you for your awesome work on LLVM and Swift. Where are you off to now? Any thoughts on Jai?
If I have it right, swiftc translates code to Swift Intermediate Language, in which several optimizations occur, which is then translated to LLVM's Intermediate Language, which gets its own optimizations before being translated to an .o file.
In retrospect, are these 2 similar but separate levels an unfortunate hack/necessary compromise, or still an nice design decision? I'd think it would have been better if swift's optimizations could be done in a single intermediate representation and streamline two compilation phases into one, but perhaps wrong. Do you foresee a future giant refactoring of swift compiler & LLVM that introduces a redesigned IL that obviates the need for a separate SIL??
Also, what are your opinions on the Mill CPU?
no sig, no plan, no clue
Ouch! I just walked into a goalpost.
I swear it wasn't there before.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
My biggest surprise with Swift was the removal of the pre and post increment and decrement (++ and --) in Swift 3. These are well defined and commonly used operators — heck, the name of one of the most popular languages is a word-play on the post-increment operator. In fact, you'd be hard-pressed to find another modern language out there that does not have them.
My real issue is that they are part of the coding part of my brain — when I want to increment, I automatically type "++". Sure, Xcode will offer to "fix" it for me; but that means that Xcode knows what I mean!
At the center of my issue is there is meaning beyond "add one" or "subtract one" in those operators: increment is a concept that, yes, when applied to a number, is equivalent to adding one to that number; but when the developer (e.g., me) sees the increment operator, there is immediate communication of what is transpiring without having to (visually — again, it's the developer to whom I am referring) parse an equation, then further determine if it is really an arithmetic operation or an increment. For instance, I don't think a language called "c += 1" would have caught on.
The problem of conflating incrementing and decrementing with addition and subtraction becomes even worse when considering operator overloading. For example, if I am creating a class where it is meaningful to increment or decrement but not to support full-blown addition or subtraction, without ++ and --, I am stuck with implementing addition and subtraction methods that throw runtime exceptions when given values other than 1.
You may counter that everybody can easily get along without them. Well, if you did, I would respond that, no, I am running into this all of the time and it drives me a bit nuts (ok, a bit more nuts).
Basically, the solution to encountering these handy, meaningful, and otherwise universally available operators should not be "stop using them" — especially when Swift used to have them!
So, I guess my question is not "why were they removed?", but rather "what can I do to get them re-added?"
I work in the semiconductor industry and our ASIC designs have seen a few large jumps in productivity:
- Transistors and custom layouts transitioned to standard cell flows and automated P&R.
- Design using logic blocks transitioned to synthesized design using RTL with HDLs.
- Most recently, we are synthesizing circuits directly from C language.
In the same timeframe, programming has remained more or less the same as it always was. New languages offer only incremental productivity improvements, and most of the big problems from 10 or 20 years ago remain big problems. Programmers still have to deal with syntax issues in various languages, and if I want parallel execution in my code, I have to design for it from the beginning.
Software is helping us design our ASIC circuits from higher and higher level abstractions. But software doesn't seem to be helping us write our software. The abstractions aren't much higher level.
Do you know of any initiatives that could produce a step-function increase (say 5-10x) in coding productivity for average engineers?
When I first heard rumors about what became Swift, that's what I was hoping for. But it turned out to be just another programming language.
Will Apple still be around in 10 years?
Ouch! I just walked into a goalpost.
That's no goalpost.
*zips up pants*
Governance of the Swift project is firmly under the control of Apple, as stated here. How can Swift ever be a true community project if Apple controls it? Look no further than Java to see what can go wrong when a corporation controls a language.
When all you have is a hammer, every problem starts to look like a thumb.
Clusters of Mac Minis and MacBook Pros must be "fun" to remotely administer with no lights-out management.
HOLY FUCK!
I just saw this: https://www.tesla.com/blog/welcome-chris-lattner
Chris, can you confirm?! Is this true?! Are you going to be working with Tesla?!
So, how much did Elon cough up to break you loose from Apple? Will the Autopilot software be rewritten in Swift? Do you have an AI background that we never knew about? Fill us in!
Suppose you have a few hundred lines of code to type in, and you're not changing any existing code.
What tool do you recommend for getting that code typed in, fast and accurately?
The iWork for the web guys have a stockpile of old XServers and have a KVM port for non-Apple hardware, that is about the only Non-supported OS X usecase you will find.
I've been writing Mac and iOS apps with Objective-C for a long time. One of my favorite things about Objective-C is the ability to use C and C++ APIs easily from within my app. Why is Swift even needed at all? What about it is actually better than Objective-C from the standpoint of someone who is already highly proficient in Objective-C and C++?
Avoid Missing Ball for High Score
What what I say to the whiners who ask for open source versions for Windows, 'you can find it next to Microsofts open source version of Windows'
This is my sig. There are many like it but this one is mine.
So why Tesla? What makes you a better choice than say, George Hotz ( except that he may not be sane)?
Do you have AI dev experience?
Pain is merely failure leaving the body
As I see, when you delivered Swift it was headed on a different direction that it is now. What it was simplicity it is now complexity and obscurity. Apple is making Swift confuse and unreadable. What do you think?
If a Windows version shouldn't be that difficult, YOU do it. That's the point of open source.
You really missed the whole "do not ask him about Apple" part, didn't you?
Do you see yourself creating another language ?
What problems do you see that new languages still need to address?
Was the changing focus at Apple part of your reasons for leaving ?
Thank you for you open source contributions !!!
You're either dumber than an ashtray, or you're a troll.
Swift is a nice and powerful language but I would like your opinion on Julia and why or when should i use Swift instead of Julia (outside of iOS development)?
RTFA. It says nothing about Chris leaving Apple. It says he is passing on leadership/responsibility of Swift to someone else.
Just because I flush my toilet does not mean that Kim Jil Un is in charge of my response to functional programming ( even though defecation does line up with "pure" functional programming styles )
Why? Are you retiring? Going to Google (like a lot of competent engineers)? Creating your own structure? ....
Slashdot, fix the reply notifications... You won't get away with it...
How many H1B Visa holders replaced you?
I most like their legacy of Steve Job, and most hate their obsession with fags, indo-chimps, and n1ggers.
I hear you're moving on to work at Tesla as VP of Autopilot Software. Congratulations!
What three things excite you the most about Tesla?
Use my userscript to add story images to Slashdot. There's no going back.
Why, oh fucking WHY is their Python Code in the repository? Hasn't the world had enough of it, yet?
Hey KID! Yeah you, get the fuck off my lawn!
How involved are you personally with machine learning / AI? And a couple follow-up questions if I may, what do you think made you the primary (and final) candidate for VP of Autopilot Software at Tesla? Finally, is the Autopilot engineering team the same team developing full autonomy (level 4) capability? Thanks for taking the time to answer these questions and best of luck at Tesla!
Where's the Windows version of Swift?
Waiting for someone who's not a jackass to write it. I'd start with the Ubuntu version:
https://swift.org/download/#re...
Do you have ESP?
What people say about you
he's a huge douche nozzle
Expect to be overworked at Tesla... :/
Non sequitur: Your facts are uncoordinated.
What do you think of Tim Cook as Apple CEO, and is it the (real) reason you're running away?
Slashdot, fix the reply notifications... You won't get away with it...
Chris, you mentioned you'd continue to be involved with Swift; I've recently been taking some classes involving deep learning / neural networks, and as a result my old dislike of Python is certainly coming to a middle.
Does your moving to head up the Autopilot Software division provide any indication that deep learning libraries may make their way into Swift so that some of us could engage in deep learning research and trials using that platform as a base rather than Python?
I fully support languages that are good the job they do rather than just trying to do everything with one language, but still...
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I don't understand why alt-right slashdotters use reference to butt sex in the most derogatory why when in reality butt sex is the most pleasurable of all sexing.
Why dud you make Swift a curly brace language, especially as it seems you admire Python? One thing Python shows is that C style syntax is not the ultimate. I suppose you were in a hurry to get to the interesting stuff and just grabbed onto curly brace syntax?
I'd like to see a real programming language that can be taught to elementary school students, not toy stuff like Logo or Scratch. These days, seems Python comes the closest to that ideal. Some still seriously recommend C/C++ for the kids.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
1) is the fact that it seems we NEED them.
Do we? Why would anyone that is a jerk not simply ignore a code of conduct and do what they liked anyway?
Is there a concrete example anywhere of a code of conduct stopping anything, ever?
You could come back and say "it gives us reasons to reject someone". Yes but you could have done that ANYWAY without a COC and treating everyone with the presumption of assholishnes to begin with.
That's the real problem I have with the whole COC frenzy, is that most of us are adults, and do not need a COC - it is insulting to present something like this as if we need it.
Kinda like laws.
It's nothing like a law, because it doesn't mean anything. A real law has a whole structure behind it built around judgement and enforcement of the law. The closest thing any COC has is essentially a kangaroo court that can only handle contention badly, and possibly in ways that are ACTUALLY illegal.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Swift is in fact more confusing and convoluted to read than the ubiquitous C++.
I've done a lot of C++ in the past and a lot of Swift in the present. At its worst Swift is 10x more readable than the average C++ code. Even if for some reason you are looking at the name managed output of class/method names in the debugger just compare that to the multi-page joy that was (is?) template class debugger output...
Just the fact that Swift does not support multiple inheritance lends it the automatic win.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I know you said native, but for the benefit of others who may not know much about the Xcode ecosystem, you can use the venerable CocoaPods, or the less venerable but more enjoyable Carthage. These both have extremely wide support (CP moreso). CP will generate a whole workspace for you and everything.
Looking forward, almost certainly Xcode will integrate the Swift Package Manager which is still in early days, but you can see it coming down the pike soon, probably official integration this year at WWDC.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
So if I'm not mistaken you started work on LLVM when you were at the University of Illinois and did much of the initial work as part of your Master's Thesis. My question is thus: Has the it's purpose changed at some point along the way? Is it still what you planned it to be when you were at University or have changes occurred along the way as it's become such an integral part of many commercial products by a myriad of companies. The reason why I'm asking is that a lot of projects and products born in academia go trough some major changes in both purpose and functionality as they mature and expand beyond the realm of academia.
I do apologize if I come off as a completely ignorant buffoon as I'm personally more of a GCC person and haven't really ever looked into the development history of LLVM.
Fix your shit
For everyone.
Can you tell us more about your position at Tesla ? What exciting stuff will you do with Autopilot ?
Do you intend to open-source (parts of) it ?
I have my opinion about the respective merits of Rust vs Swift, both being relatively new languages with interesting takes on safety, elegance and performance. What's your take on it ? Retrospectively, what would you have done differently in Swift that Rust got right, and what do you think Rust misses that you put in Swift ?
If you're putting out Open Source software for Linux and Mac, a Windows version shouldn't be that difficult.
Both Linux and MacOS (as well as iOS) are operating systems derived from Unix. In fact, a program developed against the Unix specification that does not use any platform-specific APIs will instantly compile and run on both systems. Windows is different.
The parent has a point. Open Source has no need to be portable, but at the end of the day popular OS projects are always ported, either because people make them portable, or because people branch the code to make their system-specific version. Since Swift is being massively popular, why is this not happening?
My bet here is that the language relies on heavy dependencies towards the closed Apple ecosystem, and is thus no better than an 'open source' graphics driver that relies on a massive blob of closed binary code. And then it would be Apple who doesn't understand what "open source" means.
Why are Apple users mainly brainwashed morons?
And you abuse this situation and profit from this?
Or other tools?
In the last couple release of Xcode, the overall stability and quality has degraded and the product has become frustrating to use. For example, syntax highlighting on projects with both swift and obj-c is all but broken most the time, clicking into a variable takes you to the wrong place, and the app crashes frequently as a result of "infinite build loops".
Has the complexity of the monumental task of making this all work together caught up with the ability to deliver a great IDE? When will we see Xcode slide back into shape?
Do you run Linux in any station? If yes, which distro? Which pros and cons about Linux desktop distros?
That's as asinine as saying just because my neighbor has a snow shovel and I do not, he should clear my sidewalk when he clears mine after and snowstorm. No he has generously offered to lend me his snow shovel if I should ask but he's not going to do the work. Expecting someone who open sourced something to put it on the platform of your choice is equally selfish. Why don't you learn Windows APIs, C#, etc and do it yourself.
Well, there's spam egg sausage and spam, that's not got much spam in it.
Expecting someone who open sourced something to put it on the platform of your choice is equally selfish.
How far would Java have gotten if it only ran on Sun SPARC systems?
Why don't you learn Windows APIs, C#, etc and do it yourself.
I don't have to. Someone else did a Cygwin port.
If a Windows version shouldn't be that difficult, YOU do it. That's the point of open source.
I'm not a CORPORATION with the resources to develop a new programming and put it out on multiple platforms.
You're either dumber than an ashtray, or you're a troll.
My question is perfectly valid. No reason to insult me for asking a question.
Windows is different.
I used to work in the video game industry when the PlayStation 2 (Linux-based), xBox (Windows-based) and GameCube (probably Linux-based) were current gen consoles. The developers would code on the PlayStation 2, and then port to the other consoles from the same codebase. A generalized bug fixed for the PlayStation 2 got fixed for the other platforms. Nintendo rejected anything that looked like a PlayStation 2 port, which required more work for the GameCube version than the Xbox version. Using a common codebase for multiple platforms with different operating systems was doable. That Apple is unwilling to do a Windows port suggests that they didn't something wrong.
In the case of Sun, that was Sun's choice which is the point you are missing. Open source software is under any obligation to port. Did Linus make sure that Linux runs on Windows machines? No he puts out the kernel and other people port to all sorts of hardware. Does RMS ensure that GNU works under Windows? No. Does Canonical make sure that Unity works on OS X or Windows? No. These are choices.
Secondly using Cygwin is not porting to Windows. That's running Linux in a VM in Windows.
Well, there's spam egg sausage and spam, that's not got much spam in it.
In the case of Sun, that was Sun's choice which is the point you are missing.
You're missing my point. Apple is a CORPORATION just like Sun back in the day. Apple has Windows developers since they put out iTunes for Windows. If Apple want their Open Source language to be successful, they should port it to Windows. They're not lacking the resources like Linus, RMS and Canonical.
Secondly using Cygwin is not porting to Windows. That's running Linux in a VM in Windows.
If I can use it on Windows, then its a Windows program. I'm not a purist.
I didn't suggest you put it out on multiple platforms. I suggested you port it to Windows, just Windows, since you claimed it wouldn't be difficult.
Now you're saying it is so difficult only a company could do it. Make your mind up.
As to doing it on your own, if it's too much work for your, get help. GitHub is there for you to both host the code and run the development as a team effort.
He's a miserable failure.
And pulling millions of cash from what's left of Apple's fanbase.
What a shame.
I suggested you port it to Windows, just Windows, since you claimed it wouldn't be difficult.
For APPLE this shouldn't be difficult.
Now you're saying it is so difficult only a company could do it.
I'm talking about APPLE. A multi-billion-dollar COPORATION with tons of Linux, Mac and Windows developers on staff.
Apple developed this programming l
Make your mind up.
Learn to read.
As to doing it on your own, if it's too much work for your, get help. GitHub is there for you to both host the code and run the development as a team effort.
I'll let Apple know that they need help on the Windows port.
It's not Apple's job to do a Window's port.
Open source only means that the souce is open, and available for who ever wants to take on the task.
Clearly you are not up to it. Therefore you'll have to do without.
If you're putting out Open Source software for Linux and Mac, a Windows version shouldn't be that difficult.
If that's true and Apple still hasn't done it, then you can assume Apple doesn't care about the Windows platform. I doubt many people would argue with that assumption.
Especially since Apple has Windows development teams on hand to do the work.
I assume those development teams are doing things that are valuable to Apple's bottom line.
Since it is open source, you can do it if you want. Or Microsoft can do it.
Anyway, if you want it more than Apple and Microsoft then you can build it yourself. That's what open source gives you---the ability to take the code and run with it however you want.
You could even look for like-minded developers to help you. That's how open source communities get started.
But crying on Slashdot? That gets you nothing except ridicule.
---
According to the latest ruleset, this post should be modded as Vorpal Flamebait +5.
It's not Apple's job to do a Window's port.
Maybe Microsoft can do it since they're interested in Open Source programming languages. For example, Objective-C for Windows.
https://github.com/Microsoft/WinObjC/
Clearly you are not up to it.
You're right. I only care about Swift as an end user. It's not worth my time as a programmer to do someone else's job to port their programming language to a popular platform.
Therefore you'll have to do without.
I'll use the Cygwin port.
But crying on Slashdot? That gets you nothing except ridicule.
I asked a question. I don't understand why everyone is acting so butthurt about it.
Windows is completely irrelevant to the success of Swift.
Very interesting. Thanks for sharing!
It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
Edsger W. Dijkstra
What does this mean:
* Prefer method and function names that make use sites form grammatical English phrases. [sic]
Can't it be two things?
> Open source means being available on all platforms (i.e., Linux, Mac and Windows).
Um... who told you that??
What you seem to be completely missing is that nobody has the obligation to do the port you want done. You may think Apple would be better off if it did a port, but apparently the people running the project at Apple don't agree. Apple has the resources to do the port, but it isn't free for them either, and they can set their own priorities which do not have to agree with yours.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Because you seem to think that Apple should do what you want, and you don't seem to get the point of Open Source. You can reasonably ask questions like "Is there a Windows version?" or "When will there be a Windows version?" or "Why isn't there a Windows version?". You asked "Where's the Windows version?" and then acted like Apple had some sort of obligation to provide one.
The point of Open Source, here, is that you don't have to rely on Apple to come up with a port. Somebody else can. You can start a project to do it. It doesn't mean anybody has an obligation or made a commitment to do anything with the code.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
You can reasonably ask questions like "Is there a Windows version?" or "When will there be a Windows version?" or "Why isn't there a Windows version?". You asked "Where's the Windows version?" [...]
Those are all the same question.
[...] and then acted like Apple had some sort of obligation to provide one.
If Apple wants Swift to be a successful language, it should be on all the major platforms. Apple doesn't lack the resources to do this, so it shouldn't be unreasonable to ask for a Windows version. It is unreasonable to portray me as the villain for asking the question. Of course, Swift could end up in quiet obscurity like Objective-C and Microsoft can support it for Windows via Open Source.
Apple does want Swift to be a successful language... for developing Mac and iOS apps.
They're not stupid. They are not about to give the competition any help if they can avoid it.
They're not stupid. They are not about to give the competition any help if they can avoid it.
If that was the case, they shouldn't have released Swift as open source.
> If that was the case, they shouldn't have released Swift as open source.
Very possible. Maybe a good question for Lattner is why did they do that?
"HEY Lattner! Why did you make Swift open source?"
Why not? There are benefits to releasing something as Open Source, and there are disadvantages. Very few people outside the Apple ecosystem cared about Objective-C. My guess would be that Apple is being helpful towards serious Mac/iOS developers, who will have Macs and will be able to run the Apple version, and don't care about anyone else.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
You're missing my point. Apple is a CORPORATION just like Sun back in the day. Apple has Windows developers since they put out iTunes for Windows.
Wow you really are dense. Apple has Windows developers. So what?
If Apple want their Open Source language to be successful, they should port it to Windows.
That's probably the most idiotic thing you've said. Was Java "ported" to Windows? No. Sun wrote a VM for Java. That's it. Java never was "ported". I don't think you know what "ported" means.
They're not lacking the resources like Linus, RMS and Canonical.
Again another idiotic thing you've said. You've missed the point again. Having resources != having the will or desire. Apple doesn't want to do it. That's why they open sourced it. So that others could.
If I can use it on Windows, then its a Windows program. I'm not a purist.
Um no. I think your understanding of computer programs is sorely lacking. Running something in Cygwin in Windows is not a "port" of that program.
Well, there's spam egg sausage and spam, that's not got much spam in it.
Were do you see Swift heading?
Does Swift want to become a modern feasible replacement for other cross-plattform technologies like Qt or is it focussed on Apple plattdorms?
Were/are there plans to build a full-blown cross-plattform application layer ecosystem for Swift, including IDE and a plattform agnostic standard lib or is this a thing left to anyone wanting to it themselves?
Thanks for answers. And good luck at and for Tesla!
We suffer more in our imagination than in reality. - Seneca
Sun wrote a VM for Java. That's it. Java never was "ported". I don't think you know what "ported" means.
You can't have Java without the VM. No VM, no Java. Hence, Sun "ported" Java to Windows, Mac and Linux.
I think your understanding of computer programs is sorely lacking.
I made the president's list for maintaining a 4.0 GPA in computer programming after I graduated from community college. That took me five years because I was taking two classes per semester, working 60+ hours per week as a video game tester and teaching Sunday school. I'm not a professional software developer. I went into IT support to use my programming background to help users solve difficult problems made difficult by professional software developers.
Running something in Cygwin in Windows is not a "port" of that program.
Swift for Cygwin and Windows is called a "port" on the swift-dev list. The Cygwin port requires a hack to compile the binary for distribution. The Windows port requires more effort for a native binary.
https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20160418/001790.html
So you think Apple is helping make Swift popular by open sourcing it, yet you say it can't be successful unless they do a Windows version.
Which is it? Will Swift help the competition or not without a Windows version?
You can't have Java without the VM. No VM, no Java. Hence, Sun "ported" Java to Windows, Mac and Linux.
Again, please learn what the term "porting" means. One of the strongest features of Java was the fact you didn't have to "port" it to different environments. "Write once" was a feature.
I made the president's list for maintaining a 4.0 GPA in computer programming after I graduated from community college. That took me five years because I was taking two classes per semester, working 60+ hours per week as a video game tester and teaching Sunday school. I'm not a professional software developer. I went into IT support to use my programming background to help users solve difficult problems made difficult by professional software developers.
So after five years at a community college, you finally graduated. But you don't actually work as a programmer. I guess this explains why you don't understand basic concepts of programming.
Swift for Cygwin and Windows is called a "port" on the swift-dev list. The Cygwin port requires a hack to compile the binary for distribution. The Windows port requires more effort for a native binary.
Wow. So much wrong in that understanding. Cygwin is a VM. Please look what that is. Swift is a programming language. Please look that up as well.
Well, there's spam egg sausage and spam, that's not got much spam in it.
One of the strongest features of Java was the fact you didn't have to "port" it to different environments. "Write once" was a feature.
That's misleading. The language is write once. But unless someone ports the JVM, you can't run the language on a different system.
So after five years at a community college, you finally graduated.
Because I was working 60 hours as a video game tester and teaching Sunday school. Some people would find it impossible to take two or three classes on top of a schedule like that and still get straight A's for five years in a row.
But you don't actually work as a programmer.
These days I write PowerShell scripts to automate InfoSec tasks. I would prefer to use Python but the three-letter government agency I work for is a Windows shop.
I guess this explains why you don't understand basic concepts of programming.
As a lead video game tester for three years, I worked closely with developers around the world. Because I was taking classes in computer programming, I was able to narrow the scope of the bug reports to the actual problem. On one occasion I was allowed to look at the code and found a bug that way.
IT support for Fortune 500 companies was no different. I get tickets, look at problems, talk to users and developers, and find solutions that no one else can. I even walked a CS graduate on how to turn on his workstation over the phone since cubicle farms don't have people standing around to turn on workstations like university computer labs do.
Wow. So much wrong in that understanding.
I'll provide the link for the Swift-Windows releases below. Please read through the instructions carefully. Note that you will need to download swift-cygwin-20160913-bin.tar.gz for Cygwin or swift-mingw-20160815-bin.7z for Windows. You won't be able to run Swift the programming language without those binaries.
https://github.com/tinysun212/swift-windows/releases
Once you have the binaries installed, you can use swift for immediate mode and swiftc for compiling. If this look familiar, it's similar to java and javac for Java programs.
Go to Java.com. Click download. Click the "see all Java downloads" link.
You dont see just one installer, you see separate ports for Windows, Mac OS X, Linux and Solaris.
Once on a conference, I talked to Casey Liss (co-host of the ATP podcast). He's now an iOS developer, but at the time was still a .NET developer. He explained the basics of LINQ to me. Basically, it's an extension of the language for querying the database. In other languages, including Swift and Objective-C, you'll type your query in quotes. The compiler has no idea what's between the quotes, it's just a string for all it cares.
In C# with LINQ, the compiler offers code completion and type checking for queries and I thought that was great. I know Swift and Objective-C have Core Data, but LINQ is much more integrated. Why doesn't have Swift something like that?
8 of 13 people found this answer helpful. Did you?
Hi Chris,
I just wanted to say that it's really great that libc++abi.dylib: terminating with uncaught exception of type NSException
libsystem_c.dylib`__abort:
0x18131340c : adrp x8, 149589
0x181313410 : add x8, x8, #0 ; =0
0x181313414 : ldr x9, [x8, #8]
0x181313418 : cbnz x9, 0x181313428 ;
0x18131341c : adrp x9, 27
0x181313420 : add x9, x9, #1393 ; =1393
0x181313424 : str x9, [x8, #8]
0x181313428 : stp x20, x19, [sp, #-32]!
0x18131342c : stp x29, x30, [sp, #16]
0x181313430 : add x29, sp, #16 ; =16
0x181313434 : sub sp, sp, #32 ; =32
0x181313438 : add x8, sp, #16 ; =16
0x18131343c : add x19, x8, #8 ; =8
0x181313440 : movn w20, #0
0x181313444 : stp xzr, x20, [sp, #16]
0x181313448 : orr w0, wzr, #0x6
0x18131344c : add x1, sp, #16 ; =16
0x181313450 : movz x2, #0
0x181313454 : bl 0x1812c254c ; sigaction
0x181313458 : ldr w8, [sp, #24]
0x18131345c : and w8, w8, #0xffffffdf
0x181313460 : str w8, [sp, #24]
0x181313464 : str w20, [sp, #12]
0x181313468 : orr w0, wzr, #0x3
0x18131346c : add x1, sp, #12 ; =12
0x181313470 : movz x2, #0
0x181313474 : bl 0x18132880c ; symbol stub for: __printf_arginfo_n
0x181313478 : orr w0, wzr, #0x1
0x18131347c : bl 0x181467470 ; __pthread_workqueue_setkill
0x181313480 : orr w0, wzr, #0x3
0x181313484 : mov x1, x19
0x181313488 : movz x2, #0
0x18131348c : bl 0x18146585c ; pthread_sigmask
0x181313490 : bl 0x18146a908 ; pthread_self
0x181313494 : orr w1, wzr, #0x6
0x181313498 : bl 0x1814673e0 ; pthread_kill
0x18131349c : movz w0, #0x2710
0x1813134a0 : bl 0x1812efb3c ; usleep$NOCANCEL
0x1813134a4 : orr w8, wzr, #0xffffffe7
0x1813134a8 : str w8, [sp, #24]
0x1813134ac : orr w0, wzr, #0x3
0x1813134b0 : mov x1, x19
0x1813134b4 : movz x2, #0
0x1813134b8 : bl 0x18132880c ; symbol stub for: __printf_arginfo_n
-> 0x1813134bc : brk #0x1
8 of 13 people found this answer helpful. Did you?
That's misleading. The language is write once. But unless someone ports the JVM, you can't run the language on a different system.
No it's factual. You don't seem to understand that your knowledge is lacking. The language is open source which was done by Sun. The VM may not be. Sun is not the only one to put out a VM. Microsoft did. IBM did. Depending on the processor used, VMs for Java were released by other parties. Sun open sourced the language. They also put out a VM that works with Windows. Apple has open sourced Swift the language. They are not releasing VMs for Windows.
These days I write PowerShell scripts to automate InfoSec tasks. I would prefer to use Python but the three-letter government agency I work for is a Windows shop.
This still doesn't explain your lack of understanding of programming.
Well, there's spam egg sausage and spam, that's not got much spam in it.
This still doesn't explain your lack of understanding of programming.
I understand programming quite well. It's your argument that's lacking.
> Both Linux and MacOS (as well as iOS) are operating systems derived from Unix.
MacOS and iOS are derived from Unix.
Linux is... shall we say, inspired by Unix.