4 ms·
Google may be considering Swift as a ‘first class’ language for Android
- mixedCase 10y agoI'd prefer Go, and it seems weird they would consider Swift first but hey, as long as the JVM dies and we get native code I'm a happy man.
- wrg 10y agoWhy not Rust or Go? The only reason they would pick Swift is because of existing uptake
- seren 10y agoTo entice IOS developers to port their app on Android more easily ?
- wrg 10y agoThis also. It seems purely like a calculated move to undermine iOS as much as possible, but it does make you wonder if it's the Right Thing to do. There are better languages out there that have had much more development take place. And it's not like Google have commit rights or control over Swift. It's sad how they haven't really learned from the Oracle case.
- Grazester 10y agoYou make it sound like this is a sure thing. I have serious doubt that it will happen. ...cant we have Go instead Google?
- hga 10y agoIt seems purely like a calculated move to undermine iOS as much as possible What's your theory behind that? The only one I can think of is that if they make it easy to write an app for both, and Apple does not accept the app or an update, you haven't suffered a complete loss.
- thevibesman 10y ago> It seems purely like a calculated move to undermine iOS as much as possible I really don't see how this is the case; do you consider Microsoft's Project Islandwood[1] to be a move to undermine iOS? Both seem like an attempt to offer developers more choice and a reason to work on the platform. If this is to undermine anything, I think it would be the various 'hybrid'-webapp solutions as writing a Swift app seems like a better way to "write once, run anywhere" than a JavaScript hybrid solution. > And it's not like Google have commit rights or control over Swift. It's sad how they haven't really learned from the Oracle case. I don't see how not having commit rights is an issue. The licensing terms of Java are/were very different from Swift. Getting behind an Apache-licensed open-source language does not necessarily mean Google is not free to control their own version of the language (why would they?). I don't see the copyrightable API issue coming up with Apple and Swift because of how the open source Foundation has been encouraged (and I really think Apple wouldn't mind / will encourage open-source ports of other Frameworks). [1]: https://developer.microsoft.com/en-us/windows/bridges/ios https://developer.microsoft.com/en-us/windows/bridges/ios
- alphacome 10y agoI think so. why bother to learn some new language.
- drivingmenuts 10y agoWon't that require that Google finds some way to get people to actually pay for apps comparable to the rate that IOS users pay for theirs?
- nostrademons 10y agoThe economic calculus is "cost of porting" < "Android userbase" * "Android conversion rate" * price. iOS stats don't figure into that at all; any money from an Android version is strictly marginal revenue. This change is aimed at significantly reducing the cost of porting; Google probably figures that number is a lot easier to move than the Android conversion rate or price, and they've already made significant progress on increasing the Android userbase.
- andybak 10y agoI'm projecting but hopefully because Swift is in some ways 'higher level' than Rust or Go. From my brief examination Swift has slightly more the conciseness, readability, usability and flexibility of dynamic languages. (I'd love to see native Android apps in Python (or Nim) but that's probably never going to happen. Failing that I could live with a language like Swift.)
- TurboHaskal 10y agoSoftware is a popularity contest.
- convivialdingo 10y agoRust is still being designed and Go doesn't have a mature optimizing compiler. Swift has a lot of developer growth, cross-platform library possibilities, and a two optimization pass compiler (SIL and IL).
- Someone 10y agoSwift doesn't have a mature compiler, either. It isn't old enough to have fought enough battles. Also, I wouldn't say the rust language definition is less stable than Swift's, which is still very much in flux (with changes such as the removal of C-style for loops in the pipeline or just released) Also, Swift doesn't do garbage collection. That may cause problems when trying to build a shared GUI famework.
- nostrademons 10y agoSwift is in an interesting position compiler-wise: the frontend is bleeding-edge and often unstable (though many of the crashes, in my experience, were fixed with Swift 2.2), but the backend is rock-solid LLVM, which has had a lot of optimization & stability improvements go into it through Clang and Apple's existing Objective-C toolchain. Rust is in the same position.
- DerekL 10y ago> Also, Swift doesn't do garbage collection. That may cause problems when trying to build a shared GUI framework. Do GUI frameworks require garbage collection? Cocoa doesn't. But the current Android frameworks are written to function with GC, so if Google wants to support Swift or any other non-GC language, they would have write and maintain a second framework along side the old Java one.
- thevibesman 10y ago> But the current Android frameworks are written to function with GC, so if Google wants to support Swift or any other non-GC language, they would have write and maintain a second framework along side the old Java one. While it is likely that this is how it could play out, it is certainly possible to have a garbage collected language and a managed memory language working together in the same program (e.g. a manual memory managed C program can start an internal JVM and pass data between the two languages).
- ridiculous_fish 10y agoOne possible reason is dynamic linking and ABI stability. Go and Rust like to statically link everything, which doesn't work so well with big GUI frameworks. ABI stability and resilience is on the roadmap for Swift 3.0: https://github.com/apple/swift-evolution/blob/master/README.md https://github.com/apple/swift-evolution/blob/master/README....
- alphacome 10y agocan't wait that Google make this decision
- ungzd 10y agoIt will be huge fail for Google. Developers will have to think all time about zigahipstomorphic prepomorphisms, monad transformers and other FP voodoo instead of thinking about how to disrupt the world with new innovative sharing economy mobile chat. Real developers are not nerds, they are innovators and businessmen. Only outsiders are doing mental masturbation with all that monadic stuff. I'd prefer Go, Dart, C, or, better, PHP. It's not as fast as Go, but even more pragmatic, which is more important. Phones are fast nowadays.
- takno 10y agoSeems phenomenally improbable. It would basically require a ground-up rewrite of the entire app layer of Java just so that lazy iOS developers can do an even more half assed job of porting their apps over.
- koder2016 10y agoWon't help performance, that's for sure. Anyway, the post doesn't mention Dart, so has no credibility whatsoever.
- xori 10y agoI'm still surprised that Google hasn't been pushing Dart harder than it has.
- kagia 10y agoThis article should be taken with a good pinch of salt. It seems to be more speculation than anything else...
- jaxondu 10y agoMy first thought. Then looking at what Microsoft is doing by offering compelling tool for cross platform development, then there is a possibility that Google is working to offer its own Xamarin like solution. Can only dream it will be one single GUI API for developing apps for Android, iOS, Windows, WebAssembly and Linux desktops using Swift. If Google has this cross platform GUI API, then many are likely to abandon Cocoa API. Google probably sees API as platform and not language.
- sunstone 10y agoCurly brackets. Yuck.
- x5n1 10y agoIs Swift actually a good language, what's good about it? From a general perspective. Been using Go, and love it. Many innovative changes to basically be a C for our century. What's Swift, what have its designers learned from the past to make a better language?
- ridiculous_fish 10y agoSwift includes a lot of high-level features and modern best practices. Off the top of my head, nice stuff that Swift has that Go does not include generics, value-type collections, Optional instead of implicit nil, algebraic data types through enums, let bindings for immutable values, pattern matching, Unicode support at the grapheme cluster level, a REPL, tuples, try/catch error handling, and functional constructs like map/filter/flatMap.