I'm much more thrilled about Swift the about Go. Sure Go has a head start in server-side department, but from what I know of Swift I'd much rather write webapps in it then in Go.
Many webapps have a kind of "highlevelness" to them, and Swift nicely addresses that with it's features. Go is somehow on a kind of feature diet that's just not my cup of tea. And in terms of low-high-level-ness it I put it somewhere in between Swift and the obviously low-level Rust.
Honestly, there are some libraries for swift which are shockingly authentic clones of go's channel + routine syntax. Abstractions like that are not swifts problem.
I understand it more like: Go force one concurrency model on me (like Node.js or Erlang), and Swift is a general purpose language that --over time-- will allow me to use any kind of concurrency model (like C/C++/Haskell/etc.).
Oh, and syntax-wise I like both of 'm. I was not referring to syntax much, mostly to capabilities.
> I wonder if Apple is positionning it as a competitor to Google's Go?
They're giving themselves the option to get out of the computer hardware business if the car takes off without killing their phone business. Think about it. Right now if they killed off the MBP then most devs would switch to Android and they'd lose their iPhone monopoly. But if Swift gains traction as an open platform, they have the option to stop making hardware and open source or license OS X while still maintaining the dominant position in the smartphone market.
I'm not saying that Apple will definitely get out of hardware. But with Intel's rate of innovation slowing down and the R&D for each generation of chips getting exponentially more expensive, one possible future is that the business is not profitable enough to justify the resource drain.
I don't see that happening ever. It's not just that computers are the core of their business identity/culture, but there is too much cross culture of hardware ideas for them to want to ditch it. They're free to try some new widget idea in a MacBook then refine it if it works before adding it to the phone or scrap it if it's flawed without having millions of iPhone users get upset about it. Most of the other handset makers don't have this to test with.
I think they will co-exist as separate languages for separate problem-solving approaches. Go has first class support for channels and duck-type interfaces, for starters.
I would think Google should be more worried than Apple at this point, since Swift works on iOS but Go support in Android is second-class. In fact, there are significant efforts to run Swift on Android which places it at least on par with Go there (and, obviously, ahead on iOS).