4 ms·
It seemed like Swift looked like a promising language for data science a few years ago. I'm not familiar with Swift. Can anyone provide additional context as
by MrPowers 6y ago
It seemed like Swift looked like a promising language for data science a few years ago. I'm not familiar with Swift. Can anyone provide additional context as to why the language seemed promising for data?
- SatvikBeri 6y agoI disagree with the pitch, but the pitch I heard when this was announced was: * Swift lets you write code that's as concise as Python while still being fast, and therefore allows you to get away from the problem of having to write ML code in multiple languages (TensorFlow is actually mostly C++, which makes it difficult for a Python developer to debug.) * That the lack of static typing is a major pain point in Python, and Swift's type system would help write code with fewer errors.
- deleted 6y ago[deleted]
- ljm 6y ago> Swift lets you write code that's as concise as Python while still being fast, > (TensorFlow is actually mostly C++, which makes it difficult for a Python developer to debug.) To be honest, if I had to choose between Python and Swift I'd still choose Python. Swift is a nice evolution from Obj-C and all but it is nowhere near as simple as Python, or Ruby, or PHP, or Javascript, or Kotlin. And Apple's documentation of these things is pretty woeful at the best of times lately. I also disagree with the pitch, is what I'm saying.
- aplummer 6y agoTo say that Swift is "nowhere near as simple" as Javascript or Kotlin is a very strange opinion to me, and I have experience with all 3. Simple as in syntax, memory management, or in what regard? I can't think of a single example where Swift is not equivalent or better. Do you have the same criticism of Scala?
- ljm 6y agoI do. Scala is insanely complicated once you inherit a codebase full of implicits and custom operators.
- The_rationalist 6y agoSwift has no traced garbage collector which means you cannot represent circular data structure/references. Also swift support for interfaces (protocol) is sub-par with today standards
- andrekandre 6y ago> Also swift support for interfaces (protocol) is sub-par with today standards interesting, what could be added/changed to make it better?
- The_rationalist 6y agoNo support for default implementation methods. No support for generics in protocol. There might be workarounds but for a newcomer, this is a red flag of reinventing a basic and universal construct (interfaces) in a sub-par one, this show a dangerous mentality from the swift vm devs, what else did they wrongfully reinvent in a sub-par way?
- liuliu 6y agoThere is support for default implementation method in protocol for a while now. Generics are supported through associated types.
- skohan 6y agoI think considering swift as merely an evolution of obj-c is a drastic underestimation. Swift is a very nice language in its own right. Having spent time with most of the languages you've mentioned, while the learning curve might be a bit steeper, I think Swift is much easier to manage a medium or large project with than any of those options with the exception of maybe Kotlin, and personally I find some of the design choices a bit better in Swift than in Kotlin.
- int_19h 6y ago> TensorFlow is actually mostly C++, which makes it difficult for a Python developer to debug. I'm curious if you've seen https://docs.microsoft.com/en-us/visualstudio/python/debugging-mixed-mode-c-cpp-python-in-visual-studio https://docs.microsoft.com/en-us/visualstudio/python/debuggi..., and if so, to what extent it helps with C++/Python interop in TensorFlow context?