8 ms·
Google really messed up here, they had an unprecedented opportunity to create a new language for numeric computation and rally the scientific community around t
by yahyaheee 7y ago
Google really messed up here, they had an unprecedented opportunity to create a new language for numeric computation and rally the scientific community around that. They hired Chris Lattner and he basically steamrolled that dream by forking Swift.
I don’t see people running over here to write numerical libraries like you see in Julia, that’s largely because of the crowd around Swift. The language is also a bit verbose and heavy handed for what data scientists would prefer. Latner was too close to Swift to understand this. The blame really falls on google project management.
- deleted 7y ago[deleted]
- nevi-me 7y agoIn hindsight, I wonder if using Swift would seem like a good idea in retrospect. AFAIK NVIDIA has dropped CUDA support on Mac, and outside Mac and a bit of Linux; how much support does Swift have? Even though the article talks about the "why not Julia", which is the highest comment at time of typing ... Choosing a cross-compatible language would have kept more people interested in the long-run. Why should I as a Windows user want to learn a language just to use it with Tensorflow; when I'm not sure if such language support and other tooling will generally come to Windows?
- yahyaheee 7y agoYeah its a very closed ecosystem, that is heavily Apple centric. The Apple war with NVidia is ridiculous, I guess they are just betting on TPUs or AMD to make up the difference. It is also strange that its so tied to Tensorflow rather than being just a better numeric language. Julia is definitely a better option, but I still feel we can do better than that.
- valuearb 7y agoSwift is only 6 years old and is growing rapidly on Linux. Despite IBM bowing out it's server frameworks (vapor and Kitura) continue their development. There are Swift compilers for many platforms.
- pjmlp 6y agoA compiler alone doesn't make an eco-system.
- okareaman 7y agoI don't understand why Swift for Windows has not been updated for 2 years. I guess no one, especially Apple, cares about Swift becoming a general purpose language. For that reason alone, I'm skipping over it, although I hear interesting things about it. https://swiftforwindows.github.io/ https://swiftforwindows.github.io/
- ryuukk_ 7y agowtf are you talking about, Windows support is already here https://github.com/apple/swift/blob/master/docs/Windows.md https://github.com/apple/swift/blob/master/docs/Windows.md https://forums.swift.org/tags/windows https://forums.swift.org/tags/windows https://github.com/apple/swift/pulls?utf8=%E2%9C%93&q=is%3Apr+windows https://github.com/apple/swift/pulls?utf8=%E2%9C%93&q=is%3Ap...
- throwaway333444 7y agoThe next release of swift (5.3) is scheduled to have Windows support (along with more Linux distros) https://swift.org/blog/5-3-release-process/ https://swift.org/blog/5-3-release-process/
- smt88 7y agoI don't agree that Windows support affects Swift being general purpose or not. If a Windows dev can target other platforms using Linux subsystem or containers, the only downside becomes an inability to target Windows desktops and servers, which are not hugely important targets outside of enterprise IT.
- fauigerzigerk 6y agoIf enterprise IT is excluded I wonder what "general purpose" even means.
- smt88 6y agoEnterprise IT is a user/customer category, not a purpose. And I didn't mean it to include apps. I meant that Swift is not suitable for IT depts that must use Windows servers, which is not that common anymore.
- danielscrubs 7y agoGoogle creating a new language? To shut it down in 3 years? Swift will be around in 15 years. It would be Microsofts F#, or Googles Dart all over again. It's a monumental task to create a language that people want to use, and an even bigger task to create tools around it (IDEs, language-specifications, cross platform frameworks, package management). I know this is a hot take but... I doubt Google has the capability to be frank. They created Dart and Go (a.k.a generics ain't necessary). They created Tensorflow 1 which is totally different from Tensorflow 2. Swift may not be the best but Swift is starting to become such a large part of Apple so it will have backing no matter the internal politics. The language is not where the battle will be, it will be the tooling.
- yahyaheee 7y agoI would disagree, first Go has been tremendously successful and yes will have generics soon. The ML community really needs a better language than Python, the current alternatives (Julia, Nim, R) are alright but seem to miss the mark in this arena. I see few data scientists excited about Swift, its too heavy handed and deeply embedded in the Apple iOS community. People are searching for a better language in this space and it's something that often needs a corporate backing. Google is aware of this problem and hired Chris Latner to fix it, its just a bit of unfortunate oversight, I guess we'll keep using Python for now.
- girvo 7y agoJulia is I think perhaps more focused on ML and data analysis, but Nim has some neat tricks up it's sleeves too: https://github.com/mratsim/Arraymancer https://github.com/mratsim/Arraymancer
- yahyaheee 7y agoI like Nim quite a bit, I would put it and Julia as the best contenders at the moment.
- gtycomb 7y agoNim is a languge that has good performance and I had good experience porting an enterprise Python application to Nim (for performance gain). For a new user the risk obviously is the newness of Nim but the Nim team was very helpful and prompt whenever I posted a question. Its a very complete and surprisingly issue-less language. Hopefully Arraymancer will help increase its reach, I wish the implementors all the best.
- ksec 7y agoI am now growing into thinking Swift may be a very good language, but may also happens to be not the best language for anything. And I am not sure if that is a good thing or a bad thing.
- yahyaheee 7y agoYea I don't hate the language I sort of see it as a better Java. I just don't think its right for the ML/Data science community.
- izacus 7y agoBut the question is whether it's worth using it over Kotlin (which is also better Java) - Swift is hamstrung because its primary implementation of standard libraries is limited to single vendor platform. If you try to run it on Linux/Windows, you're forever going to be fighting compatibility quirks stemming from the fact that the main libraries only target the Apple implementation of dependencies. It's a similar situation as Mono users were stuck in.
- yahyaheee 7y agoKotlin is an interesting option, especially now that it compiles to the LLVM. One of the issues I see is the mind space these languages occupy. Kotlin is deeply linked to the Andriod community which oddly feels like baggage. Julia has done a great job at marketing itself as the language built for modern numerical computing by numerical computing people. They have effectively recruited a lot of the scientific community to build libraries for it. I think the language is flawed is some deep ways, but there is a lot to learn in how they positioned themselves.
- danielscrubs 7y agoHow is Julia flawed? I like Kotlin, but the garbage collector isn't really meant for numerical computing I'd guess, and I doubt having to think about LLVM and JVM and JS at the same time is going to work out well for it when it needs such a heavy, heavy focus on performance.
- UncleOxidant 6y agoAgreed. It would have been better for them to back Julia as it was already a language for numerical computing. And it has an LLVM backend. With Google's backing Julia could be way ahead of where it is now.